1
0
Fork 0

Implement DESKTOP_APP_ASAN on Linux

This commit is contained in:
Ilya Fedin 2024-04-05 01:49:57 +04:00 committed by John Preston
parent 9f1b85aa9d
commit ad70bff651
3 changed files with 16 additions and 1 deletions

View file

@ -19,6 +19,8 @@ function(generate_gir target_name namespace deps src_target_name)
BYPRODUCTS BYPRODUCTS
${gen_file} ${gen_file}
COMMAND COMMAND
env
$<$<BOOL:${DESKTOP_APP_ASAN}>:LDFLAGS=-fsanitize=address>
${DESKTOP_APP_GIRSCANNER} ${DESKTOP_APP_GIRSCANNER}
--quiet --quiet
-n -n

View file

@ -122,6 +122,19 @@ if (DESKTOP_APP_USE_ALLOCATION_TRACER)
) )
endif() endif()
if (DESKTOP_APP_ASAN)
target_compile_options(common_options INTERFACE -fsanitize=address)
target_link_options(common_options INTERFACE -fsanitize=address)
if (NOT DESKTOP_APP_USE_PACKAGED)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_link_options(common_options INTERFACE -static-libasan)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_link_options(common_options INTERFACE -static-libsan)
endif()
endif()
endif()
target_link_libraries(common_options target_link_libraries(common_options
INTERFACE INTERFACE
${CMAKE_DL_LIBS} ${CMAKE_DL_LIBS}

View file

@ -32,7 +32,7 @@ option(DESKTOP_APP_ASAN "Enable address sanitizer" OFF)
cmake_dependent_option(DESKTOP_APP_USE_ENCHANT "Use Enchant instead of bundled Hunspell." OFF LINUX OFF) cmake_dependent_option(DESKTOP_APP_USE_ENCHANT "Use Enchant instead of bundled Hunspell." OFF LINUX OFF)
cmake_dependent_option(DESKTOP_APP_USE_CLD3 "Disable system text language recognition and use bundled cld3 only." OFF APPLE ON) cmake_dependent_option(DESKTOP_APP_USE_CLD3 "Disable system text language recognition and use bundled cld3 only." OFF APPLE ON)
cmake_dependent_option(DESKTOP_APP_NO_PDB "Disable PDB file generation." OFF WIN32 OFF) cmake_dependent_option(DESKTOP_APP_NO_PDB "Disable PDB file generation." OFF WIN32 OFF)
cmake_dependent_option(DESKTOP_APP_DISABLE_SCUDO "Disable scudo, use system malloc." OFF LINUX OFF) cmake_dependent_option(DESKTOP_APP_DISABLE_SCUDO "Disable scudo, use system malloc." OFF "LINUX; NOT DESKTOP_APP_ASAN" ON)
if (APPLE AND NOT DEFINED DESKTOP_APP_MAC_ARCH) if (APPLE AND NOT DEFINED DESKTOP_APP_MAC_ARCH)
if (DEFINED CMAKE_OSX_ARCHITECTURES) if (DEFINED CMAKE_OSX_ARCHITECTURES)