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)


Reply via email to