Ver código fonte

Compile flags will now be set per-source file.

Thus C can be mixed with Fortran and the objects can be build with different
compilers, not both may support AddressSanitizer.
master
Alexander Haase 8 anos atrás
pai
commit
f62b5858ac
1 arquivos alterados com 19 adições e 3 exclusões
  1. +19
    -3
      cmake/FindASan.cmake

+ 19
- 3
cmake/FindASan.cmake Ver arquivo

@@ -115,13 +115,29 @@ if (ASan_FOUND)
endif ()



function (sanitize_address TARGET)
if (NOT SANITIZE_ADDRESS)
if (NOT SANITIZE_ADDRESS OR NOT ASan_FOUND)
return()
endif ()

set_property(TARGET ${TARGET} APPEND_STRING PROPERTY
COMPILE_FLAGS " ${ASAN_C_FLAGS}")
get_property(ENABLED_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
get_target_property(SOURCE_FILES ${TARGET} SOURCES)
foreach (SOURCE_FILE ${SOURCE_FILES})
foreach (LANG ${ENABLED_LANGUAGES})
get_filename_component(FILE_EXT "${SOURCE_FILE}" EXT)
string(TOLOWER "${FILE_EXT}" FILE_EXT)
string(SUBSTRING "${FILE_EXT}" 1 -1 FILE_EXT)
list(FIND CMAKE_${LANG}_SOURCE_FILE_EXTENSIONS "${FILE_EXT}" TEMP)
if (NOT ${TEMP} EQUAL -1)
if (DEFINED ASAN_${LANG}_FLAGS})
set_property(SOURCE ${SOURCE_FILE} APPEND_STRING PROPERTY
COMPILE_FLAGS " ${ASAN_${LANG}_FLAGS}")
endif ()
endif ()
endforeach()
endforeach (SOURCE_FILE)

set_property(TARGET ${TARGET} APPEND_STRING PROPERTY
LINK_FLAGS " ${ASAN_C_FLAGS}")
endfunction ()

Carregando…
Cancelar
Salvar