cmake: Use C99 and define GNU and POSIX flags directly at source files

Fixes #50
This commit is contained in:
Andreas Schneider 2023-01-29 15:53:44 +01:00
parent 91b66f83c8
commit 2df2d3a3ce
4 changed files with 20 additions and 4 deletions

View File

@ -16,7 +16,7 @@ if (UNIX)
endif()
endif()
add_c_compiler_flag("-std=gnu99" SUPPORTED_COMPILER_FLAGS)
add_c_compiler_flag("-std=c99" SUPPORTED_COMPILER_FLAGS)
add_c_compiler_flag("-Wpedantic" SUPPORTED_COMPILER_FLAGS)
add_c_compiler_flag("-Wall" SUPPORTED_COMPILER_FLAGS)
add_c_compiler_flag("-Wshadow" SUPPORTED_COMPILER_FLAGS)

View File

@ -1,7 +1,11 @@
add_library(proc_uptime proc_uptime.c)
add_executable(uptime uptime.c)
target_compile_options(uptime PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
target_compile_options(uptime
PRIVATE
${DEFAULT_C_COMPILE_FLAGS}
-D_GNU_SOURCE
-D_XOPEN_SOURCE=600)
target_link_libraries(uptime proc_uptime)
set_property(TARGET
uptime
@ -11,7 +15,7 @@ set_property(TARGET
add_cmocka_test(test_uptime
SOURCES test_uptime.c
COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE -D_XOPEN_SOURCE=600
LINK_LIBRARIES cmocka::cmocka)
set_property(TARGET
test_uptime

View File

@ -33,6 +33,12 @@ target_compile_options(cmocka
PRIVATE
${DEFAULT_C_COMPILE_FLAGS}
-DHAVE_CONFIG_H)
target_compile_definitions(cmocka
PRIVATE
_GNU_SOURCE
_XOPEN_SOURCE=700)
if (CMOCKA_PLATFORM_INCLUDE)
target_compile_options(cmocka
PRIVATE
@ -80,6 +86,12 @@ if (UNIT_TESTING)
PRIVATE
${DEFAULT_C_COMPILE_FLAGS}
-DHAVE_CONFIG_H)
target_compile_definitions(cmocka-static
PRIVATE
_GNU_SOURCE
_XOPEN_SOURCE=700)
if (CMOCKA_PLATFORM_INCLUDE)
target_compile_options(cmocka-static
PRIVATE

View File

@ -58,7 +58,7 @@ endif()
foreach(_CMOCKA_TEST ${CMOCKA_TESTS})
add_cmocka_test(${_CMOCKA_TEST}
SOURCES ${_CMOCKA_TEST}.c
COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE -D_XOPEN_SOURCE=700
LINK_LIBRARIES cmocka::static
LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
target_include_directories(${_CMOCKA_TEST} PRIVATE ${cmocka_BINARY_DIR})