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)