Author: brane Date: Fri Jun 29 10:14:32 2018 New Revision: 1834663 URL: http://svn.apache.org/viewvc?rev=1834663&view=rev Log: Find (optional) Expat library for linking with static APR-Util.
* CMakeLists.txt: Add option EXPAT. * build/APRCommon.cmake (_apru_version): Also return the minor version. * build/FindAPR.cmake: Adjust call to _apru_version. * build/FindAPRUtil.cmake: Try to find the Expat library appropriate to the discovered version of APR-Util. Modified: serf/trunk/CMakeLists.txt serf/trunk/build/APRCommon.cmake serf/trunk/build/FindAPR.cmake serf/trunk/build/FindAPRUtil.cmake Modified: serf/trunk/CMakeLists.txt URL: http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1834663&r1=1834662&r2=1834663&view=diff ============================================================================== --- serf/trunk/CMakeLists.txt (original) +++ serf/trunk/CMakeLists.txt Fri Jun 29 10:14:32 2018 @@ -43,6 +43,7 @@ option(BROTLI "Path to Brotli's install option(DEBUG "Enable debugging info and strict compile warnings" OFF) option(DISABLE_LOGGING "Disable the logging framework at compile time" OFF) option(ENABLE_SLOW_TESTS "Enable long-running unit tests" OFF) +option(EXPAT "Windows: optional path to Expat's install area for APR_STATIC" OFF) option(APR_STATIC "Windows: Link with static APR/-Util libraries" OFF) option(OPENSSL_STATIC "Windows: Link with static OpenSSL libraries" OFF) @@ -143,6 +144,10 @@ if(BROTLI) message(WARNING "option BROTLI is not implemented yet") endif() +if(EXPAT) + set(PC_EXPAT_INCLUDE_DIRS "${EXPAT}/include") + set(PC_EXPAT_LIBRARY_DIRS "${EXPAT}/lib") +endif() # Find dependencies find_package(OpenSSL) Modified: serf/trunk/build/APRCommon.cmake URL: http://svn.apache.org/viewvc/serf/trunk/build/APRCommon.cmake?rev=1834663&r1=1834662&r2=1834663&view=diff ============================================================================== --- serf/trunk/build/APRCommon.cmake (original) +++ serf/trunk/build/APRCommon.cmake Fri Jun 29 10:14:32 2018 @@ -47,7 +47,7 @@ function(_apru_config _program _varname endif() endfunction(_apru_config) -function(_apru_version _version_varname _major_varname _header _prefix) +function(_apru_version _version_varname _major_varname _minor_varname _header _prefix) file(STRINGS ${_header} _apru_major REGEX "^ *# *define +${_prefix}_MAJOR_VERSION +[0-9]+.*$") file(STRINGS ${_header} _apru_minor @@ -59,6 +59,7 @@ function(_apru_version _version_varname string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_patch ${_apru_patch}) set(${_version_varname} "${_apru_major}.${_apru_minor}.${_apru_patch}" PARENT_SCOPE) set(${_major_varname} ${_apru_major} PARENT_SCOPE) + set(${_minor_varname} ${_apru_minor} PARENT_SCOPE) endfunction(_apru_version) function(_apru_find_dll _varname _dllname) Modified: serf/trunk/build/FindAPR.cmake URL: http://svn.apache.org/viewvc/serf/trunk/build/FindAPR.cmake?rev=1834663&r1=1834662&r2=1834663&view=diff ============================================================================== --- serf/trunk/build/FindAPR.cmake (original) +++ serf/trunk/build/FindAPR.cmake Fri Jun 29 10:14:32 2018 @@ -48,7 +48,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows message(FATAL_ERROR "apr_version.h was not found in ${APR_INCLUDES}") endif() - _apru_version(APR_VERSION _apr_major "${APR_INCLUDES}/apr_version.h" "APR") + _apru_version(APR_VERSION _apr_major _apr_minor "${APR_INCLUDES}/apr_version.h" "APR") set(_apr_name "apr-${_apr_major}") find_library(APR_LIBRARIES NAMES "lib${_apr_name}.lib" Modified: serf/trunk/build/FindAPRUtil.cmake URL: http://svn.apache.org/viewvc/serf/trunk/build/FindAPRUtil.cmake?rev=1834663&r1=1834662&r2=1834663&view=diff ============================================================================== --- serf/trunk/build/FindAPRUtil.cmake (original) +++ serf/trunk/build/FindAPRUtil.cmake Fri Jun 29 10:14:32 2018 @@ -62,15 +62,36 @@ else(APR_CONTAINS_APRUTIL) message(FATAL_ERROR "apu_version.h was not found in ${APRUTIL_INCLUDES}") endif() - _apru_version(APRUTIL_VERSION _apu_major "${APRUTIL_INCLUDES}/apu_version.h" "APU") + _apru_version(APRUTIL_VERSION _apu_major _apu_minor "${APRUTIL_INCLUDES}/apu_version.h" "APU") set(_apu_name "aprutil-${_apu_major}") + + if(${_apu_major} GREATER 1 OR (${_apu_major} EQUAL 1 AND ${_apu_minor} GREATER 5)) + set(_apu_expat_name "expat.lib") + else() + set(_apu_expat_name "xml.lib") + endif() find_library(APRUTIL_LIBRARIES NAMES "lib${_apu_name}.lib" PATHS ${APRUTIL_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") - find_library(APRUTIL_STATIC_LIBS NAMES "${_apu_name}.lib" + find_library(_apu_static NAMES "${_apu_name}.lib" + PATHS ${APRUTIL_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") + find_library(_apu_expat NAMES ${_apu_expat_name} PATHS ${APRUTIL_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib") _apru_find_dll(APRUTIL_RUNTIME_LIBS "lib${_apu_name}.dll" ${APRUTIL_ROOT}) + if(NOT _apu_expat AND (_apu_expat_name MATCHES "expat")) + find_package(EXPAT QUIET) + if(EXPAT_FOUND) + set(_apu_expat ${EXPAT_LIBRARIES}) + endif() + endif() + if(NOT _apu_expat) + message(WARNING "Could not find ${_apu_expat_name}" + " for APR-Util static linking.") + endif() + set(APRUTIL_STATIC_LIBS ${_apu_static} ${_apu_expat} + CACHE STRING "APR-Util static libraies.") + else() # NOT Windows if(DEFINED APRUTIL_ROOT)