summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlois Klink <alois@aloisklink.com>2022-10-31 19:39:16 +0000
committerAndreas Schneider <asn@cryptomilk.org>2022-11-30 09:57:01 +0100
commitcf1aef204da37274836fcba42dc7a4f777a3ab93 (patch)
treeb4e41306f307dfdaa02011194845dfbbf2899ecd
parentdefe7b4fdced1cdce1596c76dee6e8e1e5e6e681 (diff)
downloadcmocka-cf1aef204da37274836fcba42dc7a4f777a3ab93.zip
cmocka-cf1aef204da37274836fcba42dc7a4f777a3ab93.tar.gz
cmocka-cf1aef204da37274836fcba42dc7a4f777a3ab93.tar.bz2
cmake: build cmocka with C_EXTENSIONS set to ON
When compiling code with CMake [`C_EXTENSIONS` `OFF`][1], (e.g. using `-std=c11` instead of `-std=gnu11`), only standard ISO C is available in C headers like `<setjmp.h>`. Because cmocka uses POSIX extension functions, we need to set `_POSIX_C_SOURCE` to the appropriate level before including these headers. On gcc/clang, this is enabled by default when C_EXTENSIONS ON. Fixes https://gitlab.com/cmocka/cmocka/-/issues/50, e.g. using cmocka from a project that has C_EXTENSIONS OFF. [1]: https://cmake.org/cmake/help/latest/prop_tgt/C_EXTENSIONS.html Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--src/CMakeLists.txt2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index dca07a3..9a1e582 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -47,6 +47,8 @@ set_target_properties(cmocka PROPERTIES
LINK_FLAGS "${DEFAULT_LINK_FLAGS}"
C_STANDARD 99
C_STANDARD_REQUIRED ON
+ # cmocka uses POSIX-2008 C extensions
+ C_EXTENSIONS ON
)
add_library(cmocka::cmocka ALIAS cmocka)