mirror of
https://github.com/DaveGamble/cJSON.git
synced 2023-08-10 21:13:26 +03:00
CMake: Fix per target disabling of compiler flags
The compiler flag detection was working incorrectly.
This commit is contained in:
parent
c597601cf1
commit
76e5296d0d
@ -1,8 +1,6 @@
|
|||||||
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
|
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
|
||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
|
||||||
subdirs(tests fuzzing)
|
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
project(cJSON C)
|
project(cJSON C)
|
||||||
@ -78,10 +76,13 @@ foreach(compiler_flag ${custom_compiler_flags})
|
|||||||
|
|
||||||
CHECK_C_COMPILER_FLAG(${compiler_flag} "FLAG_SUPPORTED_${current_variable}")
|
CHECK_C_COMPILER_FLAG(${compiler_flag} "FLAG_SUPPORTED_${current_variable}")
|
||||||
if (FLAG_SUPPORTED_${current_variable})
|
if (FLAG_SUPPORTED_${current_variable})
|
||||||
|
list(APPEND supported_compiler_flags)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${compiler_flag}")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${compiler_flag}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${supported_compiler_flags}")
|
||||||
|
|
||||||
#variables for pkg-config
|
#variables for pkg-config
|
||||||
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||||
set(libdir "${CMAKE_INSTALL_LIBDIR}")
|
set(libdir "${CMAKE_INSTALL_LIBDIR}")
|
||||||
@ -168,9 +169,9 @@ if(ENABLE_CJSON_TEST)
|
|||||||
target_link_libraries("${TEST_CJSON}" "${CJSON_LIB}")
|
target_link_libraries("${TEST_CJSON}" "${CJSON_LIB}")
|
||||||
|
|
||||||
add_test(NAME ${TEST_CJSON} COMMAND "${CMAKE_CURRENT_BINARY_DIR}/${TEST_CJSON}")
|
add_test(NAME ${TEST_CJSON} COMMAND "${CMAKE_CURRENT_BINARY_DIR}/${TEST_CJSON}")
|
||||||
|
|
||||||
# Disable -fsanitize=float-divide-by-zero for cJSON_test
|
# Disable -fsanitize=float-divide-by-zero for cJSON_test
|
||||||
list(FIND custom_compiler_flags "-fsanitize=float-divide-by-zero" float_divide_by_zero_found)
|
if (FLAG_SUPPORTED_fsanitizefloatdividebyzero)
|
||||||
if (float_divide_by_zero_found)
|
|
||||||
target_compile_options(${TEST_CJSON} PRIVATE "-fno-sanitize=float-divide-by-zero")
|
target_compile_options(${TEST_CJSON} PRIVATE "-fno-sanitize=float-divide-by-zero")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -185,6 +186,8 @@ if(ENABLE_CJSON_TEST)
|
|||||||
#"check" target that automatically builds everything and runs the tests
|
#"check" target that automatically builds everything and runs the tests
|
||||||
add_custom_target(check
|
add_custom_target(check
|
||||||
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
|
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
|
||||||
DEPENDS ${unity_tests} ${TEST_CJSON} ${TEST_CJSON_UTILS})
|
DEPENDS ${TEST_CJSON} ${TEST_CJSON_UTILS})
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(tests)
|
||||||
|
add_subdirectory(fuzzing)
|
||||||
|
@ -2,13 +2,11 @@ if(ENABLE_CJSON_TEST)
|
|||||||
add_library(unity unity/src/unity.c)
|
add_library(unity unity/src/unity.c)
|
||||||
|
|
||||||
# Disable -Werror for Unity
|
# Disable -Werror for Unity
|
||||||
list(FIND custom_compiler_flags "-Werror" werror_found)
|
if (FLAG_SUPPORTED_Werror)
|
||||||
if (werror_found)
|
|
||||||
target_compile_options(unity PRIVATE "-Wno-error")
|
target_compile_options(unity PRIVATE "-Wno-error")
|
||||||
endif()
|
endif()
|
||||||
# Disable -fvisibility=hidden for Unity
|
# Disable -fvisibility=hidden for Unity
|
||||||
list(FIND custom_compiler_flags "-fvisibility=hidden" visibility_found)
|
if (FLAG_SUPPORTED_fvisibilityhidden)
|
||||||
if (visibility_found)
|
|
||||||
target_compile_options(unity PRIVATE "-fvisibility=default")
|
target_compile_options(unity PRIVATE "-fvisibility=default")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -57,4 +55,6 @@ if(ENABLE_CJSON_TEST)
|
|||||||
COMMAND "./${unity_test}")
|
COMMAND "./${unity_test}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
add_dependencies(check ${unity_tests})
|
||||||
endif()
|
endif()
|
||||||
|
Loading…
Reference in New Issue
Block a user