CMAKE_<LANG>_FLAGS_<NAME> doesn't get set!!
Tested with: cmake version 3.12.0 and cmake version 3.11.2
I have the following variables defined:
if ((CMAKE_C_COMPILER_ID MATCHES "(GNU|Clang)") AND NOT MINGW)
set(CMAKE_C_FLAGS_ADDRESSSANITIZER "-g -ggdb -O1 -fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_CXX_FLAGS_ADDRESSSANITIZER "-g -ggdb -O1 -fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_SHARED_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address")
set(CMAKE_MODULE_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address")
set(CMAKE_EXEC_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address")
endif()
If I run cmake -DCMAKE_BUILD_TYPE=AddressSanitizer
, the values get defined, but the flags not assigned!
$ grep ADDRESSSANITIZER CMakeCache.txt
//Flags used by the CXX compiler during ADDRESSSANITIZER builds.
CMAKE_CXX_FLAGS_ADDRESSSANITIZER:STRING=
//Flags used by the C compiler during ADDRESSSANITIZER builds.
CMAKE_C_FLAGS_ADDRESSSANITIZER:STRING=
//Flags used by the linker during ADDRESSSANITIZER builds.
CMAKE_EXE_LINKER_FLAGS_ADDRESSSANITIZER:STRING=
// ADDRESSSANITIZER builds.
CMAKE_MODULE_LINKER_FLAGS_ADDRESSSANITIZER:STRING=
// during ADDRESSSANITIZER builds.
CMAKE_SHARED_LINKER_FLAGS_ADDRESSSANITIZER:STRING=
// during ADDRESSSANITIZER builds.
CMAKE_STATIC_LINKER_FLAGS_ADDRESSSANITIZER:STRING=
I don't find any documentation which shows and example how they need to be set correctly. However this looks like a bug to me.