forked from KjellKod/g3log
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto generate macro defintions in a file. This way you don't have to …
…re-state them in your library if no options are given a blank file will be generated
- Loading branch information
Kjell Hedstrom
authored and
Kjell Hedstrom
committed
Jul 13, 2015
1 parent
3e5da34
commit 78103cb
Showing
8 changed files
with
154 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,4 +6,5 @@ nbproject/* | |
build_clang | ||
build_travis | ||
gtest-1.7.0 | ||
definitions.hpp | ||
*~ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,15 @@ | ||
# g3log is a KjellKod Logger | ||
# 2015 @author Kjell Hedström, [email protected] | ||
# ================================================================== | ||
# 2015 by KjellKod.cc. This is PUBLIC DOMAIN to use at your own | ||
# risk and comes with no warranties. | ||
# | ||
# This code is yours to share, use and modify with no strings attached | ||
# and no restrictions or obligations. | ||
# =================================================================== | ||
|
||
|
||
|
||
SET(LOG_SRC ${g3log_SOURCE_DIR}/src) | ||
include_directories(${LOG_SRC}) | ||
SET(ACTIVE_CPP0xx_DIR "Release") | ||
|
@@ -51,9 +63,6 @@ IF (MSVC OR MINGW) | |
MESSAGE("") | ||
ENDIF() | ||
|
||
|
||
|
||
|
||
# GENERIC STEPS | ||
file(GLOB SRC_FILES ${LOG_SRC}/*.h ${LOG_SRC}/*.hpp ${LOG_SRC}/*.cpp ${LOG_SRC}/*.ipp) | ||
file(GLOB HEADER_FILES ${LOG_SRC}/*.h ${LOG_SRC}/*.hpp) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
# g3log is a KjellKod Logger | ||
# 2011 @author Kjell Hedström, [email protected] | ||
# 2010 @author Kjell Hedström, [email protected] | ||
# ================================================================== | ||
# 2010 by KjellKod.cc. This is PUBLIC DOMAIN to use at your own | ||
# risk and comes with no warranties. | ||
|
@@ -47,7 +47,7 @@ | |
# | ||
# ============================================================================ | ||
|
||
cmake_minimum_required (VERSION 2.8) | ||
cmake_minimum_required (VERSION 3.2) | ||
ENABLE_LANGUAGE(CXX) | ||
set(CMAKE_BUILD_TYPE Release) | ||
|
||
|
@@ -67,44 +67,46 @@ endif() | |
|
||
|
||
|
||
# ========================================================================= | ||
# G3LOG BUILD | ||
#========================================================================== | ||
INCLUDE (${g3log_SOURCE_DIR}/Build.cmake) | ||
|
||
|
||
|
||
|
||
# ============================================================================ | ||
# G3LOG OPTIONAL FEATURES | ||
# ============================================================================ | ||
# Dynamic logging: ENABLE WITH: -DUSE_DYNAMIC_LOGGING_LEVELS=ON : run-type turn on/off levels | ||
# DBUG instead of DEBUG logging level: ENABLE WITH: -DCHANGE_G3LOG_DEBUG_TO_DBUG=ON | ||
INCLUDE (${g3log_SOURCE_DIR}/Options.cmake) | ||
|
||
|
||
# ========================================================================= | ||
# G3 Macro definitions in Options.cmake are written to file | ||
# this avoids having to re-state your definitions in your source code | ||
# or compile options | ||
#========================================================================== | ||
INCLUDE (${g3log_SOURCE_DIR}/GenerateMacroDefinitionsFile.cmake) | ||
|
||
# ========================================================================= | ||
# G3LOG BUILD | ||
#========================================================================== | ||
INCLUDE (${g3log_SOURCE_DIR}/Build.cmake) | ||
|
||
|
||
|
||
# ============================================================================ | ||
# EXAMPLE OPTIONS: By defauls is ON. This will create 'g3log-FATAL-* examples' | ||
# ============================================================================ | ||
# DISABLE WITH: -DUSE_FATAL_EXAMPLE=OFF | ||
# DISABLE WITH: -DADD_FATAL_EXAMPLE=OFF | ||
INCLUDE (${g3log_SOURCE_DIR}/example/Example.cmake) | ||
|
||
|
||
|
||
# ============================================================================ | ||
# PERFORMANCE TEST OPTIONS: Performance operations for g3log | ||
# ============================================================================ | ||
# ENABLE WITH: -USE_G3LOG_PERFORMANCE=ON | ||
# ENABLE WITH: -DADD_G3LOG_PERFORMANCE=ON | ||
INCLUDE (${g3log_SOURCE_DIR}/test_performance/Performance.cmake) | ||
|
||
|
||
|
||
# ========================================================================== | ||
# UNIT TEST OPTIONS: | ||
# ============================================================================ | ||
# ENABLE WITH: -DUSE_G2LOG_UNIT_TEST=ON | ||
# ENABLE WITH: -DADD_G2LOG_UNIT_TEST=ON | ||
INCLUDE (${g3log_SOURCE_DIR}/test_unit/Test.cmake) | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Prerequisite : Options.cmake should run first | ||
|
||
SET(HEADER "/** ========================================================================== | ||
* Original code made by Robert Engeln. Given as a PUBLIC DOMAIN dedication for | ||
* the benefit of g3log. It was originally published at: | ||
* http://code-freeze.blogspot.com/2012/01/generating-stack-traces-from-c.html | ||
* 2014-2015: adapted for g3log by Kjell Hedstrom (KjellKod). | ||
* | ||
* This is PUBLIC DOMAIN to use at your own risk and comes | ||
* with no warranties. This code is yours to share, use and modify with no | ||
* strings attached and no restrictions or obligations. | ||
* | ||
* For more information see g3log/LICENSE or refer refer to http://unlicense.org | ||
* ============================================================================*/") | ||
|
||
|
||
|
||
|
||
MESSAGE("COMPILE_DEFINITIONS: ${G3_DEFINITIONS}") | ||
MESSAGE("End of COMPILE_DEFINITIONS") | ||
FILE(WRITE g3log/definitions.hpp "// AUTO GENERATED MACRO DEFINITIONS FOR G3LOG\n\n") | ||
FILE(APPEND g3log/definitions.hpp ${HEADER}"\n") | ||
FILE(APPEND g3log/definitions.hpp "#pragma once\n\n") | ||
|
||
FOREACH(definition ${G3_DEFINITIONS} ) | ||
FILE(APPEND g3log/definitions.hpp "#define ${definition}\n") | ||
ENDFOREACH(definition) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,32 @@ | ||
# g3log is a KjellKod Logger | ||
# 2015 @author Kjell Hedström, [email protected] | ||
# ================================================================== | ||
# 2015 by KjellKod.cc. This is PUBLIC DOMAIN to use at your own | ||
# risk and comes with no warranties. | ||
# | ||
# This code is yours to share, use and modify with no strings attached | ||
# and no restrictions or obligations. | ||
# =================================================================== | ||
|
||
|
||
|
||
|
||
|
||
# Used for generating a macro definitions file that is to be included | ||
# that way you do not have to re-state the Options.cmake definitions when | ||
# compiling your binary (if done in a separate build step from the g3log library) | ||
SET(G3_DEFINITIONS "") | ||
|
||
|
||
# -DUSE_DYNAMIC_LOGGING_LEVELS=ON : run-type turn on/off levels | ||
option (USE_DYNAMIC_LOGGING_LEVELS | ||
"Turn ON/OFF log levels. An disabled level will not push logs of that level to the sink. By default dynamic logging is disabled" OFF) | ||
IF(USE_DYNAMIC_LOGGING_LEVELS) | ||
LIST(APPEND G3_DEFINITIONS G2_DYNAMIC_LOGGING) | ||
add_definitions(-DG2_DYNAMIC_LOGGING) | ||
MESSAGE("-DUSE_DYNAMIC_LOGGING_LEVELS=ON") | ||
MESSAGE("\tDynamic logging levels can be turned on. Make sure to have \n\t\t[#define G2_DYNAMIC_LOGGING 1] in your source code") | ||
MESSAGE("\t\tUse [g2::setLogLevel(LEVEL boolean)] to enable/disable logging on specified levels") | ||
MESSAGE("\tDynamic logging levels can be turned on. Make sure to have [#define G2_DYNAMIC_LOGGING 1] in your source code") | ||
MESSAGE("\tUse [g2::setLogLevel(LEVEL boolean)] to enable/disable logging on specified levels\n\n") | ||
ELSE() | ||
MESSAGE("-DUSE_DYNAMIC_LOGGING_LEVELS=OFF") | ||
ENDIF(USE_DYNAMIC_LOGGING_LEVELS) | ||
|
@@ -18,12 +39,12 @@ ENDIF(USE_DYNAMIC_LOGGING_LEVELS) | |
option (CHANGE_G3LOG_DEBUG_TO_DBUG | ||
"Use DBUG logging level instead of DEBUG. By default DEBUG is the debugging level" OFF) | ||
IF(CHANGE_G3LOG_DEBUG_TO_DBUG) | ||
LIST(APPEND G3_DEFINITIONS CHANGE_G3LOG_DEBUG_TO_DBUG) | ||
add_definitions(-DCHANGE_G3LOG_DEBUG_TO_DBUG) | ||
MESSAGE("-DCHANGE_G3LOG_DEBUG_TO_DBUG=ON") | ||
MESSAGE("\tDBUG instead of DEBUG logging level can be used. Make sure to have \n\t\t[#define CHANGE_G3LOG_DEBUG_TO_DBUG 1] in your source code") | ||
MESSAGE("-DCHANGE_G3LOG_DEBUG_TO_DBUG=ON DBUG instead of DEBUG logging level can be used. Make sure to have:") | ||
MESSAGE(" [#define CHANGE_G3LOG_DEBUG_TO_DBUG 1] in your source code") | ||
ELSE() | ||
MESSAGE("-DCHANGE_G3LOG_DEBUG_TO_DBUG=OFF") | ||
MESSAGE("\tDebuggin logging level is 'DEBUG'") | ||
MESSAGE("-DCHANGE_G3LOG_DEBUG_TO_DBUG=OFF \t(Debuggin logging level is 'DEBUG')") | ||
ENDIF(CHANGE_G3LOG_DEBUG_TO_DBUG) | ||
|
||
|
||
|
@@ -35,13 +56,14 @@ option (ENABLE_FATAL_SIGNALHANDLING | |
"Vectored exception / crash handling with improved stack trace" ON) | ||
|
||
IF(NOT ENABLE_FATAL_SIGNALHANDLING) | ||
LIST(APPEND G3_DEFINITIONS DISABLE_FATAL_SIGNALHANDLING) | ||
add_definitions(-DDISABLE_FATAL_SIGNALHANDLING) | ||
MESSAGE("-DENABLE_FATAL_SIGNALHANDLING=OFF\t\t\tFatal signal handler is disabled. Make sure to have \n\t\t[#define DISABLE_FATAL_SIGNALHANDLING 1] in your source code") | ||
MESSAGE("-DENABLE_FATAL_SIGNALHANDLING=OFF Fatal signal handler is disabled. Make sure to have:") | ||
MESSAGE(" [#define DISABLE_FATAL_SIGNALHANDLING 1] in your source code") | ||
ELSE() | ||
MESSAGE("-DENABLE_FATAL_SIGNALHANDLING=ON\t\t\tFatal signal handler is enabled") | ||
MESSAGE("-DENABLE_FATAL_SIGNALHANDLING=ON\tFatal signal handler is enabled") | ||
ENDIF(NOT ENABLE_FATAL_SIGNALHANDLING) | ||
|
||
|
||
# WINDOWS OPTIONS | ||
IF (MSVC OR MINGW) | ||
# -DENABLE_VECTORED_EXCEPTIONHANDLING=ON : defualt change the | ||
|
@@ -52,8 +74,10 @@ IF (MSVC OR MINGW) | |
"Vectored exception / crash handling with improved stack trace" ON) | ||
|
||
IF(NOT ENABLE_VECTORED_EXCEPTIONHANDLING) | ||
LIST(APPEND G3_DEFINITIONS DISABLE_VECTORED_EXCEPTIONHANDLING) | ||
add_definitions(-DDISABLE_VECTORED_EXCEPTIONHANDLING) | ||
MESSAGE("-DENABLE_VECTORED_EXCEPTIONHANDLING=OFF\t\t\tVectored exception handling is disabled. Make sure to have \n\t\t[#define DISABLE_VECTORED_EXCEPTIONHANDLING 1] in your source code") | ||
MESSAGE("-DENABLE_VECTORED_EXCEPTIONHANDLING=OFF Vectored exception handling is disabled. Make sure to have:") | ||
MESSaGE(" [#define DISABLE_VECTORED_EXCEPTIONHANDLING 1] in your source code") | ||
|
||
ELSE() | ||
MESSAGE("-DENABLE_VECTORED_EXCEPTIONHANDLING=ON\t\t\tVectored exception handling is enabled") | ||
|
@@ -68,12 +92,20 @@ IF (MSVC OR MINGW) | |
option (DEBUG_BREAK_AT_FATAL_SIGNAL | ||
"Enable Visual Studio break point when receiving a fatal exception. In __DEBUG mode only" ON) | ||
IF(DEBUG_BREAK_AT_FATAL_SIGNAL) | ||
LIST(APPEND G3_DEFINITIONS DEBUG_BREAK_AT_FATAL_SIGNAL) | ||
add_definitions(-DDEBUG_BREAK_AT_FATAL_SIGNAL) | ||
MESSAGE("-DDEBUG_BREAK_AT_FATAL_SIGNAL=ON\t\t\tBreak point for fatal signal is enabled for __DEBUG.Make sure to have \n\t\t[#define DEBUG_BREAK_AT_FATAL_SIGNAL 1] in your source code") | ||
MESSAGE("-DDEBUG_BREAK_AT_FATAL_SIGNAL=ON Break point for fatal signal is enabled for __DEBUG.Make sure to have:") | ||
MESSAGE(" [#define DEBUG_BREAK_AT_FATAL_SIGNAL 1] in your source code") | ||
ELSE() | ||
MESSAGE("-DDEBUG_BREAK_AT_FATAL_SIGNAL=OFF\t\t\tBreak point for fatal signal is disabled") | ||
ENDIF(DEBUG_BREAK_AT_FATAL_SIGNAL) | ||
|
||
ENDIF (MSVC OR MINGW) | ||
|
||
MESSAGE("\n\n\n") | ||
|
||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,18 @@ | ||
# ============================================================== | ||
# g3log is a KjellKod Logger | ||
# 2015 @author Kjell Hedström, [email protected] | ||
# ================================================================== | ||
# 2015 by KjellKod.cc. This is PUBLIC DOMAIN to use at your own | ||
# risk and comes with no warranties. | ||
# | ||
# This code is yours to share, use and modify with no strings attached | ||
# and no restrictions or obligations. | ||
# =================================================================== | ||
|
||
|
||
|
||
|
||
|
||
# ============================================================== | ||
# -DUSE_SIMPLE_EXAMPLE=OFF : to turn off the fatal examples | ||
# | ||
# | ||
|
@@ -10,12 +24,11 @@ | |
|
||
|
||
set(DIR_EXAMPLE ${g3log_SOURCE_DIR}/example) | ||
option (USE_FATAL_EXAMPLE "Fatal (fatal-crashes/contract) examples " ON) | ||
|
||
option (ADD_FATAL_EXAMPLE "Fatal (fatal-crashes/contract) examples " ON) | ||
|
||
IF (USE_FATAL_EXAMPLE) | ||
|
||
MESSAGE("-DUSE_FATAL_EXAMPLE=ON\t\t\tg3log-FATAL- [contract][sigsegv][choice] are examples of when g3log comes in handy") | ||
IF (ADD_FATAL_EXAMPLE) | ||
MESSAGE("-DADD_FATAL_EXAMPLE=ON\t\t[contract][sigsegv][fatal choice] are examples of when g3log comes in handy") | ||
include_directories (${DIR_EXAMPLE}) | ||
add_executable(g3log-FATAL-contract ${DIR_EXAMPLE}/main_contract.cpp) | ||
add_executable(g3log-FATAL-sigsegv ${DIR_EXAMPLE}/main_sigsegv.cpp) | ||
|
@@ -25,5 +38,5 @@ | |
target_link_libraries(g3log-FATAL-sigsegv ${G3LOG_LIBRARY}) | ||
target_link_libraries(g3log-FATAL-choice ${G3LOG_LIBRARY}) | ||
ELSE() | ||
MESSAGE("-DUSE_SIMPLE_EXAMPLE=OFF") | ||
ENDIF (USE_FATAL_EXAMPLE) | ||
MESSAGE("-DADD_SIMPLE_EXAMPLE=OFF") | ||
ENDIF (ADD_FATAL_EXAMPLE) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,29 @@ | ||
# 2. performance test (average + worst case) for KjellKod's g3log | ||
# g3log is a KjellKod Logger | ||
# 2015 @author Kjell Hedström, [email protected] | ||
# ================================================================== | ||
# 2015 by KjellKod.cc. This is PUBLIC DOMAIN to use at your own | ||
# risk and comes with no warranties. | ||
# | ||
# This code is yours to share, use and modify with no strings attached | ||
# and no restrictions or obligations. | ||
# =================================================================== | ||
|
||
|
||
|
||
|
||
# . performance test (average + worst case) for KjellKod's g3log | ||
# Do 'cmake -DUSE_G3LOG_PERFORMANCE=ON' to enable this | ||
option (USE_G3LOG_PERFORMANCE "g3log performance test" OFF) | ||
option (ADD_G3LOG_PERFORMANCE "g3log performance test" OFF) | ||
|
||
|
||
|
||
|
||
# 2. create the g3log's performance tests | ||
# create the g3log's performance tests | ||
# ========================= | ||
IF (USE_G3LOG_PERFORMANCE) | ||
IF (ADD_G3LOG_BENCH_PERFORMANCE) | ||
set(DIR_PERFORMANCE ${g3log_SOURCE_DIR}/test_performance) | ||
|
||
MESSAGE("-DUSE_G3LOG_PERFORMANCE=ON") | ||
MESSAGE("-DADD_G3LOG_BENCH_PERFORMANCE=ON") | ||
include_directories (${DIR_PERFORMANCE}) | ||
|
||
# MEAN PERFORMANCE TEST | ||
|
@@ -33,8 +46,8 @@ | |
${G3LOG_LIBRARY} ${PLATFORM_LINK_LIBRIES}) | ||
|
||
ELSE() | ||
MESSAGE("-DUSE_G3LOG_PERFORMANCE=OFF") | ||
ENDIF(USE_G3LOG_PERFORMANCE) | ||
MESSAGE("-DADD_G3LOG_BENCH_PERFORMANCE=OFF") | ||
ENDIF(ADD_G3LOG_BENCH_PERFORMANCE) | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,12 @@ | ||
# -DUSE_G3LOG_UNIT_TEST=ON : unit tests | ||
# g3log is a KjellKod Logger | ||
# 2015 @author Kjell Hedström, [email protected] | ||
# ================================================================== | ||
# 2015 by KjellKod.cc. This is PUBLIC DOMAIN to use at your own | ||
# risk and comes with no warranties. | ||
# | ||
# | ||
option (USE_G3LOG_UNIT_TEST | ||
"Turn ON/OFF unit tests for G3Log" OFF) | ||
|
||
# This code is yours to share, use and modify with no strings attached | ||
# and no restrictions or obligations. | ||
# =================================================================== | ||
|
||
|
||
# ============================================================================ | ||
|
@@ -20,14 +23,14 @@ option (USE_G3LOG_UNIT_TEST | |
|
||
# Unit test for g3log (cmake -DUSE_G3LOG_UNIT_TEST=ON ..) | ||
# remember to unzip gtest at g3log/3rdParty/gtest | ||
option (USE_G3LOG_UNIT_TEST "g3log unit tests" OFF) | ||
option (ADD_G3LOG_UNIT_TEST "g3log unit tests" OFF) | ||
|
||
|
||
# 4. create the unit tests for g3log --- ONLY TESTED THE UNIT TEST ON LINUX | ||
# ========================= | ||
IF (USE_G3LOG_UNIT_TEST) | ||
IF (ADD_G3LOG_UNIT_TEST) | ||
set(DIR_UNIT_TEST ${g3log_SOURCE_DIR}/test_unit) | ||
MESSAGE("-DUSE_G3LOG_UNIT_TEST=ON") | ||
MESSAGE("-DADD_G3LOG_UNIT_TEST=ON") | ||
set(GTEST_DIR ${g3log_SOURCE_DIR}/3rdParty/gtest/gtest-1.7.0) | ||
set(GTEST_INCLUDE_DIRECTORIES ${GTEST_DIR}/include ${GTEST_DIR} ${GTEST_DIR}/src) | ||
include_directories(${GTEST_INCLUDE_DIRECTORIES}) | ||
|
@@ -76,5 +79,5 @@ option (USE_G3LOG_UNIT_TEST | |
target_link_libraries(test_dynamic_loaded_shared_lib ${G3LOG_SHARED_LIBRARY} -ldl gtest_170_lib ) | ||
ENDIF() | ||
ELSE() | ||
MESSAGE("-DUSE_G3LOG_UNIT_TEST=OFF") | ||
ENDIF (USE_G3LOG_UNIT_TEST) | ||
MESSAGE("-DADD_G3LOG_UNIT_TEST=OFF") | ||
ENDIF (ADD_G3LOG_UNIT_TEST) |