11cmake_minimum_required (VERSION 3.0 )
2+ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} /cmake)
23
34# Config options
45option (BUILD_EXAMPLES "Build the examples." ON )
@@ -15,47 +16,25 @@ else()
1516 set (CMAKE_C_STANDARD 99)
1617endif ()
1718
18- include (CheckCCompilerFlag )
19- function (add_if_flag_works flag )
20- CHECK_C_COMPILER_FLAG ("${flag} " COMPILER_HAS_THOSE_TOGGLES )
21- set (outcome "Failed" )
22- if (COMPILER_HAS_THOSE_TOGGLES)
23- foreach (var ${ARGN} )
24- set (${var} "${flag} ${${var} }" PARENT_SCOPE )
25- endforeach ()
26- set (outcome "works" )
27- endif ()
28- message (STATUS "Testing if ${flag} can be used -- ${outcome} " )
29- endfunction ()
30-
31- add_if_flag_works (-Werror=pointer-arith CMAKE_C_FLAGS )
32- add_if_flag_works (-Werror=implicit-function-declaration CMAKE_C_FLAGS )
19+ include (AddIfFlagCompiles )
20+ add_if_flag_compiles (-Werror=pointer-arith CMAKE_C_FLAGS )
21+ add_if_flag_compiles (-Werror=implicit-function-declaration CMAKE_C_FLAGS )
3322# src/external/jar_xm.h does shady stuff
34- add_if_flag_works (-fno-strict-aliasing CMAKE_C_FLAGS )
23+ add_if_flag_compiles (-fno-strict-aliasing CMAKE_C_FLAGS )
3524
36- message (STATUS "Testing if file system supports symlinks" )
37- execute_process (
38- COMMAND ${CMAKE_COMMAND} -E create_symlink CMakeLists.txt "${CMAKE_CURRENT_BINARY_DIR} /TestingIfSymlinkWorks"
39- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
40- RESULT_VARIABLE FILESYSTEM_LACKS_SYMLINKS
41- )
42- If (FILESYSTEM_LACKS_SYMLINKS)
43- message (STATUS "Testing if file system supports symlinks -- unsupported" )
44- else ()
45- message (STATUS "Testing if file system supports symlinks -- supported" )
46- endif ()
25+ include (CheckFileSystemSymlinkSupport )
4726
4827if (ENABLE_ASAN)
49- add_if_flag_works (-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
50- add_if_flag_works (-fsanitize=address CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
28+ add_if_flag_compiles (-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
29+ add_if_flag_compiles (-fsanitize=address CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
5130endif ()
5231if (ENABLE_UBSAN)
53- add_if_flag_works (-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
54- add_if_flag_works (-fsanitize=undefined CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
32+ add_if_flag_compiles (-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
33+ add_if_flag_compiles (-fsanitize=undefined CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
5534endif ()
5635if (ENABLE_MSAN)
57- add_if_flag_works (-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
58- add_if_flag_works (-fsanitize=memory CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
36+ add_if_flag_compiles (-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
37+ add_if_flag_compiles (-fsanitize=memory CMAKE_C_FLAGS CMAKE_LINKER_FLAGS )
5938endif ()
6039
6140if (ENABLE_MSAN AND ENABLE_ASAN)
0 commit comments