Author: brane
Date: Tue Jul 3 09:19:15 2018
New Revision: 1834935
URL: http://svn.apache.org/viewvc?rev=1834935&view=rev
Log:
Some of the OpenSSL symbols that we perform configure checks for exist
only as macros in version 1.1.0, so adjust the CMake build to look for
these symbols in headers, not just in libraries.
* build/SerfChecks.cmake
(_CheckSymbol): New function.
(CheckFunctionMacro): New feature test macro.
* CMakeLists.txt: Change feature tests.
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=1834935&r1=1834934&r2=1834935&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Tue Jul 3 09:19:15 2018
@@ -210,10 +210,12 @@ CheckNotFunction("X509_get0_notAfter" "S
CheckNotFunction("X509_STORE_CTX_get0_chain" "SERF_NO_SSL_X509_GET0_CHAIN" ${OPENSSL_LIBRARIES}
${SERF_STANDARD_LIBRARIES})
CheckNotFunction("ASN1_STRING_get0_data" "SERF_NO_SSL_ASN1_STRING_GET0_DATA" ${OPENSSL_LIBRARIES}
${SERF_STANDARD_LIBRARIES})
CheckFunction("CRYPTO_set_locking_callback" "SERF_HAVE_SSL_LOCKING_CALLBACKS" ${OPENSSL_LIBRARIES}
${SERF_STANDARD_LIBRARIES})
-CheckFunction("OPENSSL_malloc_init" "SERF_HAVE_OPENSSL_MALLOC_INIT" ${OPENSSL_LIBRARIES}
${SERF_STANDARD_LIBRARIES})
-CheckFunction("SSL_library_init" "SERF_HAVE_OPENSSL_SSL_LIBRARY_INIT" ${OPENSSL_LIBRARIES}
${SERF_STANDARD_LIBRARIES})
CheckFunction("OpenSSL_version_num" "SERF_HAVE_OPENSSL_VERSION_NUM" ${OPENSSL_LIBRARIES}
${SERF_STANDARD_LIBRARIES})
CheckFunction("SSL_set_alpn_protos" "SERF_HAVE_OPENSSL_ALPN" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES})
+CheckFunctionMacro("OPENSSL_malloc_init" "SERF_HAVE_OPENSSL_MALLOC_INIT" "openssl/crypto.h"
+ "${OPENSSL_INCLUDE_DIR}" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES})
+CheckFunctionMacro("SSL_library_init" "SERF_HAVE_OPENSSL_SSL_LIBRARY_INIT" "openssl/ssl.h"
+ "${OPENSSL_INCLUDE_DIR}" ${OPENSSL_LIBRARIES} ${SERF_STANDARD_LIBRARIES})
CheckHeader("openssl/applink.c" "SERF_HAVE_OPENSSL_APPLINK_C" ${OPENSSL_INCLUDE_DIR})
CheckHeader("stdbool.h" "HAVE_STDBOOL_H=1")
CheckType("OSSL_HANDSHAKE_STATE" "openssl/ssl.h" "SERF_HAVE_OSSL_HANDSHAKE_STATE" ${OPENSSL_INCLUDE_DIR})
Modified: serf/trunk/build/SerfChecks.cmake
URL: http://svn.apache.org/viewvc/serf/trunk/build/SerfChecks.cmake?rev=1834935&r1=1834934&r2=1834935&view=diff
==============================================================================
--- serf/trunk/build/SerfChecks.cmake (original)
+++ serf/trunk/build/SerfChecks.cmake Tue Jul 3 09:19:15 2018
@@ -19,6 +19,7 @@
include(CheckFunctionExists)
include(CheckIncludeFile)
+include(CheckSymbolExists)
include(CheckTypeSize)
function(_CheckFunction var_ name_ libraries_)
@@ -29,7 +30,7 @@ function(_CheckFunction var_ name_ libra
endif()
check_function_exists("${name_}" "serf_foundit_${name_}_")
- if(${serf_foundit_${name_}_})
+ if(serf_foundit_${name_}_)
set("${var_}" TRUE PARENT_SCOPE)
else()
set("${var_}" FALSE PARENT_SCOPE)
@@ -52,6 +53,35 @@ macro(CheckNotFunction name_ symbol_)
endmacro(CheckNotFunction)
+function(_CheckSymbol var_ name_ header_ includes_)
+ if(includes_)
+ set(CMAKE_REQUIRED_INCLUDES "${includes_}")
+ else()
+ unset(CMAKE_REQUIRED_INCLUDES)
+ endif()
+
+ check_symbol_exists("${name_}" "${header_}" "serf_foundit_symbol_${name_}_")
+ if(serf_foundit_symbol_${name_}_)
+ set("${var_}" TRUE PARENT_SCOPE)
+ else()
+ set("${var_}" FALSE PARENT_SCOPE)
+ endif()
+ unset(CMAKE_REQUIRED_INCLUDES)
+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_}")
+ endif()
+ endif()
+endmacro(CheckFunctionMacro)
+
+
function(_CheckHeader var_ name_ includes_)
if(includes_)
set(CMAKE_REQUIRED_INCLUDES "${includes_}")
|