diff options
author | Alois Klink <alois@aloisklink.com> | 2022-10-31 19:39:16 +0000 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2022-11-30 09:57:01 +0100 |
commit | cf1aef204da37274836fcba42dc7a4f777a3ab93 (patch) | |
tree | b4e41306f307dfdaa02011194845dfbbf2899ecd | |
parent | defe7b4fdced1cdce1596c76dee6e8e1e5e6e681 (diff) | |
download | cmocka-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.txt | 2 |
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) |