From 46fbc423d30d427b1bfabcaa21b5d2edc400cd5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20B=C3=B6ger?= <mail@lboeger.de> Date: Wed, 2 Jun 2021 10:53:58 +0100 Subject: [PATCH] shorten preprocessor configuration --- CMakeLists.txt | 53 +++++++++++++------------------------------------- 1 file changed, 14 insertions(+), 39 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e7e0d24..63c53a8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,16 +70,24 @@ endif() add_library(libchibi-common INTERFACE) -if (NOT BUILD_SHARED_LIBS) - target_compile_definitions(libchibi-common INTERFACE SEXP_STATIC_LIBRARY=1) -elseif(WIN32) - target_compile_definitions(libchibi-common INTERFACE BUILDING_DLL=1) -endif() +target_compile_definitions(libchibi-common + INTERFACE + SEXP_STATIC_LIBRARY=$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>> + BUILDING_DLL=$<AND:$<PLATFORM_ID:Windows>,$<BOOL:${BUILD_SHARED_LIBS}>> + SEXP_USE_DL=$<BOOL:${BUILD_SHARED_LIBS}> + SEXP_USE_INTTYPES=$<BOOL:${HAVE_STDINT_H}> + SEXP_USE_NTPGETTIME=$<BOOL:HAVE_NTP_GETTIME> + SEXP_USE_GREEN_THREADS=$<BOOL:HAVE_POLL_H> + SEXP_USE_STRING_STREAMS=$<NOT:$<BOOL:${CYGWIN}>> + SEXP_USE_BOEHM=$<BOOL:${SEXP_USE_BOEHM}>) target_compile_options(libchibi-common INTERFACE $<$<C_COMPILER_ID:GNU>:-Wall> - $<$<OR:$<C_COMPILER_ID:AppleClang>,$<C_COMPILER_ID:Clang>>:-Wall>) + $<$<OR:$<C_COMPILER_ID:AppleClang>,$<C_COMPILER_ID:Clang>>:-Wall> + $<$<CONFIG:SANITIZER>:-g + -fsanitize=address,undefined,integer-divide-by-zero,float-divide-by-zero,float-cast-overflow,return + -fno-omit-frame-pointer>) target_include_directories(libchibi-common INTERFACE @@ -88,44 +96,11 @@ target_include_directories(libchibi-common $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) -if (NOT BUILD_SHARED_LIBS) - target_compile_definitions(libchibi-common INTERFACE SEXP_USE_DL=0) -else() - target_compile_definitions(libchibi-common INTERFACE SEXP_USE_DL=1) -endif() - -if(HAVE_STDINT_H) - target_compile_definitions(libchibi-common INTERFACE SEXP_USE_INTTYPES) -endif() - -if(HAVE_NTP_GETTIME) - target_compile_definitions(libchibi-common INTERFACE SEXP_USE_NTPGETTIME) -endif() - -if(NOT HAVE_POLL_H) - # Disable green threads: It depends on non-blocking I/O - target_compile_definitions(libchibi-common INTERFACE SEXP_USE_GREEN_THREADS=0) -endif() - -if(CYGWIN) - target_compile_definitions(libchibi-common INTERFACE SEXP_USE_STRING_STREAMS=0) -endif() - -if(SEXP_USE_BOEHM) - target_compile_definitions(libchibi-common INTERFACE SEXP_USE_BOEHM=1) -endif() - target_link_libraries(libchibi-common INTERFACE ${BOEHMGC} $<$<CONFIG:SANITIZER>:-fsanitize=address,undefined> $<$<PLATFORM_ID:Windows>:ws2_32>) -target_compile_options(libchibi-common - INTERFACE - $<$<CONFIG:SANITIZER>:-g - -fsanitize=address,undefined,integer-divide-by-zero,float-divide-by-zero,float-cast-overflow,return - -fno-omit-frame-pointer>) - # # Sources #