CMakeLists.txt: add compil option KICAD_STDLIB_LIGHT_DEBUG, useful when KICAD_STDLIB_DEBUG cannot be used.
KICAD_STDLIB_DEBUG option generate intrusive tests and asserts, and on Windows, generate crashed not captured by GDB. KICAD_STDLIB_LIGHT_DEBUG generate less intrusive tests and asserts. it adds only -Wp,-D_GLIBCXX_ASSERTIONS and that generate less asserts. Add also the new build options in dialog about.
This commit is contained in:
parent
5aa48e523d
commit
38fc51c3b6
|
@ -108,6 +108,7 @@ option( KICAD_SPICE
|
||||||
"Build KiCad with internal Spice simulator."
|
"Build KiCad with internal Spice simulator."
|
||||||
ON )
|
ON )
|
||||||
|
|
||||||
|
# Not supported by all platforms (for instance mingw)
|
||||||
option( KICAD_SANITIZE
|
option( KICAD_SANITIZE
|
||||||
"Build KiCad with sanitizer options. WARNING: Not compatible with gold linker"
|
"Build KiCad with sanitizer options. WARNING: Not compatible with gold linker"
|
||||||
OFF )
|
OFF )
|
||||||
|
@ -116,6 +117,10 @@ option( KICAD_STDLIB_DEBUG
|
||||||
"Build KiCad with libstdc++ debug flags enabled."
|
"Build KiCad with libstdc++ debug flags enabled."
|
||||||
OFF )
|
OFF )
|
||||||
|
|
||||||
|
option( KICAD_STDLIB_LIGHT_DEBUG
|
||||||
|
"Build KiCad with libstdc++ with -Wp,-D_GLIBCXX_ASSERTIONS flag enabled. Not as intrusive as KICAD_STDLIB_DEBUG"
|
||||||
|
OFF )
|
||||||
|
|
||||||
option( KICAD_BUILD_PARALLEL_CL_MP
|
option( KICAD_BUILD_PARALLEL_CL_MP
|
||||||
"Build in parallel using the /MP compiler option (default OFF for safety reasons)"
|
"Build in parallel using the /MP compiler option (default OFF for safety reasons)"
|
||||||
OFF )
|
OFF )
|
||||||
|
@ -329,13 +334,20 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
||||||
set( CMAKE_C_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG" )
|
set( CMAKE_C_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG" )
|
||||||
set( CMAKE_CXX_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG -Wno-deprecated-declarations" )
|
set( CMAKE_CXX_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG -Wno-deprecated-declarations" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( KICAD_SANITIZE )
|
if( KICAD_SANITIZE )
|
||||||
|
add_definitions( -DKICAD_SANITIZE )
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_SANITIZE_VECTOR -fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer" )
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_SANITIZE_VECTOR -fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( KICAD_STDLIB_DEBUG )
|
if( KICAD_STDLIB_DEBUG )
|
||||||
|
add_definitions( -DKICAD_STDLIB_DEBUG )
|
||||||
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG" )
|
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG" )
|
||||||
|
elseif( KICAD_STDLIB_LIGHT_DEBUG )
|
||||||
|
# useless if KICAD_STDLIB_DEBUG is ON.
|
||||||
|
# this option makes some controls to trap out of bound memory access.
|
||||||
|
add_definitions( -DKICAD_STDLIB_LIGHT_DEBUG )
|
||||||
|
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wp,-D_GLIBCXX_ASSERTIONS" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( MINGW )
|
if( MINGW )
|
||||||
|
|
|
@ -589,6 +589,28 @@ void DIALOG_ABOUT::buildVersionInfoData( wxString& aMsg, bool aFormatHtml )
|
||||||
#else
|
#else
|
||||||
aMsg << OFF;
|
aMsg << OFF;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
aMsg << indent4 << "KICAD_STDLIB_DEBUG=";
|
||||||
|
#ifdef KICAD_STDLIB_DEBUG
|
||||||
|
aMsg << ON;
|
||||||
|
#else
|
||||||
|
aMsg << OFF;
|
||||||
|
aMsg << indent4 << "KICAD_STDLIB_LIGHT_DEBUG=";
|
||||||
|
#ifdef KICAD_STDLIB_LIGHT_DEBUG
|
||||||
|
aMsg << ON;
|
||||||
|
#else
|
||||||
|
aMsg << OFF;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
aMsg << indent4 << "KICAD_SANITIZE=";
|
||||||
|
#ifdef KICAD_SANITIZE
|
||||||
|
aMsg << ON;
|
||||||
|
#else
|
||||||
|
aMsg << OFF;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue