Author: brane
Date: Fri May 30 14:18:57 2025
New Revision: 1925983
URL: http://svn.apache.org/viewvc?rev=1925983&view=rev
Log:
Make the CMake summary more correct by looking at preprocessor defines. The
mere fact that we found a library is not enough, nor is a platform check.
* CMakeLists.txt: Use add_compile_definitions instead of add_definitions.
In the summary, look at the COMPILE_DEFINITIONS property to see if
we'll build support for Brotli, GSSAPI, SSPI.
* build/SerfChecks.cmake: Use add_compile_definitions, as above.
Modified:
serf/trunk/CMakeLists.txt
serf/trunk/build/SerfChecks.cmake
Modified: serf/trunk/CMakeLists.txt
URL:
http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1925983&r1=1925982&r2=1925983&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Fri May 30 14:18:57 2025
@@ -212,7 +212,7 @@ if(SERF_WINDOWS)
"secur32.lib"
"ws2_32.lib"
)
- add_definitions("-DSERF_HAVE_SSPI")
+ add_compile_definitions("SERF_HAVE_SSPI")
endif(SERF_WINDOWS)
# Process build options for dependency search
@@ -243,7 +243,7 @@ if(BROTLI_FOUND)
list(APPEND SERF_PRIVATE_TARGETS BROTLI::DECODE)
endif()
if(GSSAPI_FOUND)
- add_definitions("-DSERF_HAVE_GSSAPI")
+ add_compile_definitions("SERF_HAVE_GSSAPI")
list(APPEND SERF_PRIVATE_TARGETS KRB5::GSSAPI)
endif()
@@ -281,8 +281,12 @@ CheckFunctionMacro("SSL_library_init" "S
CheckHeader("stdbool.h" "HAVE_STDBOOL_H=1")
CheckType("OSSL_HANDSHAKE_STATE" "openssl/ssl.h"
"SERF_HAVE_OSSL_HANDSHAKE_STATE" ${OPENSSL_INCLUDE_DIR})
if(BROTLI_FOUND)
- CheckType("BrotliDecoderResult" "brotli/decode.h"
"SERF_HAVE_BROTLI_DECODE_H" ${BROTLI_INCLUDES})
- CheckFunction("BrotliDecoderTakeOutput" "SERF_HAVE_BROTLI" BROTLI::DECODE
${SERF_STANDARD_LIBRARIES})
+ CheckType("BrotliDecoderResult" "brotli/decode.h"
"SERF_HAVE_BROTLI_DECODER_RESULT" ${BROTLI_INCLUDES})
+ # Check for the function only if the type check succeeded.
+ get_directory_property(_cdef COMPILE_DEFINITIONS)
+ if("SERF_HAVE_BROTLI_DECODER_RESULT" IN_LIST _cdef)
+ CheckFunction("BrotliDecoderTakeOutput" "SERF_HAVE_BROTLI" BROTLI::DECODE
${SERF_STANDARD_LIBRARIES})
+ endif()
endif()
if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
@@ -291,19 +295,19 @@ endif()
# Process other build options
if(DEBUG)
- add_definitions("-DDEBUG" "-D_DEBUG")
+ add_compile_definitions("DEBUG" "_DEBUG")
endif()
if(DISABLE_LOGGING)
- add_definitions("-DSERF_DISABLE_LOGGING")
+ add_compile_definitions("SERF_DISABLE_LOGGING")
endif()
if(ENABLE_SLOW_TESTS)
- add_definitions("-DSERF_TEST_DEFLATE_4GBPLUS_BUCKETS")
+ add_compile_definitions("SERF_TEST_DEFLATE_4GBPLUS_BUCKETS")
endif()
# Define OPENSSL_NO_STDIO to prevent using _fp() API.
-add_definitions("-DOPENSSL_NO_STDIO")
+add_compile_definitions("OPENSSL_NO_STDIO")
# Set common compiler flags
if(NOT MSVC)
@@ -322,18 +326,17 @@ else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4127")
# Assignment within conditional expression
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4706")
-
# 'function' undefined; assuming extern returning int
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /we4013")
- add_definitions(
- "/DWIN32" "/DWIN32_LEAN_AND_MEAN"
- "/DNOUSER" "/DNOGDI" "/DNONLS" "/DNOCRYPT"
- "/D_CRT_SECURE_NO_WARNINGS"
- "/D_CRT_NONSTDC_NO_WARNINGS"
+ add_compile_definitions(
+ "WIN32" "WIN32_LEAN_AND_MEAN"
+ "NOUSER" "NOGDI" "NONLS" "NOCRYPT"
+ "_CRT_SECURE_NO_WARNINGS"
+ "_CRT_NONSTDC_NO_WARNINGS"
)
if(SERF_WIN64)
- add_definitions("/DWIN64")
+ add_compile_definitions("WIN64")
endif()
set(CMAKE_IMPORT_LIBRARY_PREFIX "${SERF_INSTALL_LIBRARIES}")
@@ -435,27 +438,33 @@ endif()
# Summary
-macro(_onoff _var _value _negate)
- if(${_negate})
- if(NOT ${_value})
- set(${_var} ON)
- else()
- set(${_var} OFF)
- endif()
- else()
- if(${_value})
- set(${_var} ON)
- else()
- set(${_var} OFF)
- endif()
- endif()
-endmacro(_onoff)
-_onoff(_build_shared SKIP_SHARED TRUE)
-_onoff(_build_static SKIP_STATIC TRUE)
-_onoff(_build_tests SKIP_TESTS TRUE)
-_onoff(_have_brotli BROTLI_FOUND FALSE)
-_onoff(_have_gssapi GSSAPI_FOUND FALSE)
-_onoff(_have_sspi SERF_WINDOWS FALSE)
+set(_build_shared OFF)
+set(_build_static OFF)
+set(_build_tests OFF)
+set(_have_brotli OFF)
+set(_have_gssapi OFF)
+set(_have_sspi OFF)
+
+if(NOT SKIP_SHARED)
+ set(_build_shared ON)
+endif()
+if(NOT SKIP_STATIC)
+ set(_build_static ON)
+endif()
+if(NOT SKIP_TESTS)
+ set(_build_tests ON)
+endif()
+
+get_directory_property(_cdef COMPILE_DEFINITIONS)
+if("SERF_HAVE_BROTLI" IN_LIST _cdef)
+ set(_have_brotli ON)
+endif()
+if("SERF_HAVE_GSSAPI" IN_LIST _cdef)
+ set(_have_gssapi ON)
+endif()
+if("SERF_HAVE_SSPI" IN_LIST _cdef)
+ set(_have_sspi ON)
+endif()
message(STATUS "Summary:")
message(STATUS " Version ................... : ${SERF_VERSION}")
Modified: serf/trunk/build/SerfChecks.cmake
URL:
http://svn.apache.org/viewvc/serf/trunk/build/SerfChecks.cmake?rev=1925983&r1=1925982&r2=1925983&view=diff
==============================================================================
--- serf/trunk/build/SerfChecks.cmake (original)
+++ serf/trunk/build/SerfChecks.cmake Fri May 30 14:18:57 2025
@@ -39,16 +39,16 @@ function(_CheckFunction var_ name_ libra
endfunction(_CheckFunction)
macro(CheckFunction name_ symbol_)
- _CheckFunction("serf_feature_CheckFunction_${name}_" "${name_}" "${ARGN}")
- if("${serf_feature_CheckFunction_${name}_}")
- add_definitions("-D${symbol_}")
+ _CheckFunction("serf_feature_CheckFunction_${name_}_" "${name_}" "${ARGN}")
+ if("${serf_feature_CheckFunction_${name_}_}")
+ add_compile_definitions("${symbol_}")
endif()
endmacro(CheckFunction)
macro(CheckNotFunction name_ symbol_)
- _CheckFunction("serf_feature_CheckNotFunction_${name}_" "${name_}" "${ARGN}")
- if(NOT "${serf_feature_CheckNotFunction_${name}_}")
- add_definitions("-D${symbol_}")
+ _CheckFunction("serf_feature_CheckNotFunction_${name_}_" "${name_}"
"${ARGN}")
+ if(NOT "${serf_feature_CheckNotFunction_${name_}_}")
+ add_compile_definitions("${symbol_}")
endif()
endmacro(CheckNotFunction)
@@ -70,13 +70,13 @@ function(_CheckSymbol var_ name_ header_
endfunction(_CheckSymbol)
macro(CheckFunctionMacro name_ symbol_ header_ includes_)
- _CheckFunction("serf_feature_CheckFunctionMacro_${name}_" "${name_}"
"${ARGN}")
- if("${serf_feature_CheckFunctionMacro_${name}_}")
- add_definitions("-D${symbol_}")
- else()
- _CheckSymbol("serf_feature_CheckFunctionMacro_${name}_" "${name_}"
"${header_}" "${includes_}")
- if("${serf_feature_CheckFunctionMacro_${name}_}")
- add_definitions("-D${symbol_}")
+ _CheckFunction("serf_feature_CheckFunctionMacro_${name_}_" "${name_}"
"${ARGN}")
+ if("${serf_feature_CheckFunctionMacro_${name_}_}")
+ add_compile_definitions("${symbol_}")
+ else()
+ _CheckSymbol("serf_feature_CheckFunctionMacro_${name_}_" "${name_}"
"${header_}" "${includes_}")
+ if("${serf_feature_CheckFunctionMacro_${name_}_}")
+ add_compile_definitions("${symbol_}")
endif()
endif()
endmacro(CheckFunctionMacro)
@@ -99,9 +99,9 @@ function(_CheckHeader var_ name_ include
endfunction(_CheckHeader)
macro(CheckHeader name_ symbol_)
- _CheckHeader("serf_feature_CheckHeader_${name}_" "${name_}" "${ARGN}")
- if("${serf_feature_CheckHeader_${name}_}")
- add_definitions("-D${symbol_}")
+ _CheckHeader("serf_feature_CheckHeader_${name_}_" "${name_}" "${ARGN}")
+ if("${serf_feature_CheckHeader_${name_}_}")
+ add_compile_definitions("${symbol_}")
endif()
endmacro(CheckHeader)
@@ -130,8 +130,8 @@ function(_CheckType var_ name_ header_ i
endfunction(_CheckType)
macro(CheckType name_ header_ symbol_)
- _CheckType("serf_feature_CheckType_${name}_" "${name_}" "${header_}"
"${ARGN}")
- if("${serf_feature_CheckType_${name}_}")
- add_definitions("-D${symbol_}")
+ _CheckType("serf_feature_CheckType_${name_}_" "${name_}" "${header_}"
"${ARGN}")
+ if("${serf_feature_CheckType_${name_}_}")
+ add_compile_definitions("${symbol_}")
endif()
endmacro(CheckType)