Author: brane
Date: Thu Jun 28 09:01:14 2018
New Revision: 1834584
URL: http://svn.apache.org/viewvc?rev=1834584&view=rev
Log:
CMake build: Find APR/Util runtime libraries (DLLs) on Windows and prepare
to do the same with other dependencies.
* CMakeLists.txt: Prepare for post-processing OpenSSL and ZLIB on Windows.
* build/FindAPR.cmake, build/FindAPRUtil.cmake: Find the DLLs if they are
present in the APR/Util root directories.
* build/APRCommon.cmake (_apru_find_dll): New utility function.
* build/SerfWindowsToolkit.cmake: New file.
Added:
serf/trunk/build/SerfWindowsToolkit.cmake (with props)
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=1834584&r1=1834583&r2=1834584&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Thu Jun 28 09:01:14 2018
@@ -26,9 +26,11 @@ message(WARNING
"Serf's CMake build is considered EXPERIMENTAL. "
"Some features are not supported and the build "
"has not been tested on many supported platforms.")
-include(SerfPlatform)
enable_testing()
+include(SerfPlatform)
+include(SerfWindowsToolkit)
+
# Build options
option(LIBDIR "Indstall directory for architecture-dependent libraries" OFF)
@@ -148,6 +150,13 @@ find_package(ZLIB)
find_package(APR)
find_package(APRUtil)
+if(SERF_WINDOWS)
+ # Find ZLIB and OpenSSL runtime libraries etc.
+ SerfWindowsProcessOpenSSL()
+ SerfWindowsProcessZLIB()
+endif()
+
+
set(DEPENDENCY_INCLUDES
${OPENSSL_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}
Modified: serf/trunk/build/APRCommon.cmake
URL:
http://svn.apache.org/viewvc/serf/trunk/build/APRCommon.cmake?rev=1834584&r1=1834583&r2=1834584&view=diff
==============================================================================
--- serf/trunk/build/APRCommon.cmake (original)
+++ serf/trunk/build/APRCommon.cmake Thu Jun 28 09:01:14 2018
@@ -59,4 +59,10 @@ 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)
-endfunction()
+endfunction(_apru_version)
+
+function(_apru_find_dll _varname _dllname)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+ find_library(${_varname} NAMES ${_dllname}
+ PATHS ${ARGN} NO_DEFAULT_PATH PATH_SUFFIXES "bin" "lib")
+endfunction(_apru_find_dll)
Modified: serf/trunk/build/FindAPR.cmake
URL:
http://svn.apache.org/viewvc/serf/trunk/build/FindAPR.cmake?rev=1834584&r1=1834583&r2=1834584&view=diff
==============================================================================
--- serf/trunk/build/FindAPR.cmake (original)
+++ serf/trunk/build/FindAPR.cmake Thu Jun 28 09:01:14 2018
@@ -25,8 +25,8 @@
# APR_LIBRARIES, linker switches to use with ld to link against APR
# APR_EXTRALIBS, additional libraries to link against.
# APR_CFLAGS, the flags to use to compile.
-# APR_DLLS, on Windows: list of DLLs that will be loaded at runtime.
-# APR_STATICLIBS, on Windows: list of static libraries.
+# APR_STATIC_LIBS, on Windows: list of static libraries.
+# APR_RUNTIME_LIBS, on Windows: list of DLLs that will be loaded at runtime.
set(APR_FOUND FALSE)
@@ -49,13 +49,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows
endif()
_apru_version(APR_VERSION _apr_major "${APR_INCLUDES}/apr_version.h" "APR")
+ set(_apr_name "apr-${_apr_major}")
- find_library(APR_LIBRARIES NAMES "libapr-${_apr_major}.lib"
+ find_library(APR_LIBRARIES NAMES "lib${_apr_name}.lib"
PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
- find_library(APR_STATICLIBS NAMES "apr-${_apr_major}.lib"
+ find_library(APR_STATIC_LIBS NAMES "${_apr_name}.lib"
PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
- find_library(APR_DLLS NAMES "libapr-${_apr_major}.dll"
- PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "bin")
+ _apru_find_dll(APR_RUNTIME_LIBS "lib${_apr_name}.dll" ${APR_ROOT})
else() #NOT Windows
Modified: serf/trunk/build/FindAPRUtil.cmake
URL:
http://svn.apache.org/viewvc/serf/trunk/build/FindAPRUtil.cmake?rev=1834584&r1=1834583&r2=1834584&view=diff
==============================================================================
--- serf/trunk/build/FindAPRUtil.cmake (original)
+++ serf/trunk/build/FindAPRUtil.cmake Thu Jun 28 09:01:14 2018
@@ -23,8 +23,8 @@
# APRUTIL_INCLUDES, where to find apr.h, etc.
# APRUTIL_LIBRARIES, linker switches to use with ld to link against APR
# APRUTIL_EXTRALIBS, additional libraries to link against.
-# APRUTIL_DLLS, on Windows: list of DLLs that will be loaded at runtime.
-# APRUTIL_STATICLIBS, on Windows: list of static libraries.
+# APRUTIL_STATIC_LIBS, on Windows: list of static libraries.
+# APRUTIL_RUNTIME_LIBS, on Windows: list of DLLs that will be loaded at
runtime.
if(NOT APR_FOUND)
@@ -36,6 +36,11 @@ if(APR_CONTAINS_APRUTIL)
set(APRUTIL_FOUND TRUE)
set(APRUTIL_VERSION ${APR_VERSION})
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(APRUTIL
+ REQUIRED_VARS APRUTIL_VERSION
+ VERSION_VAR APRUTIL_VERSION)
+
else(APR_CONTAINS_APRUTIL)
set(APRUTIL_FOUND FALSE)
@@ -58,13 +63,13 @@ else(APR_CONTAINS_APRUTIL)
endif()
_apru_version(APRUTIL_VERSION _apu_major
"${APRUTIL_INCLUDES}/apu_version.h" "APU")
+ set(_apu_name "aprutil-${_apu_major}")
- find_library(APRUTIL_LIBRARIES NAMES "libaprutil-${_apu_major}.lib"
+ find_library(APRUTIL_LIBRARIES NAMES "lib${_apu_name}.lib"
PATHS ${APRUTIL_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
- find_library(APRUTIL_STATICLIBS NAMES "aprutil-${_apu_major}.lib"
+ find_library(APRUTIL_STATIC_LIBS NAMES "${_apu_name}.lib"
PATHS ${APRUTIL_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
- find_library(APRUTIL_DLLS NAMES "libaprutil-${_apu_major}.dll"
- PATHS ${APRUTIL_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "bin")
+ _apru_find_dll(APRUTIL_RUNTIME_LIBS "lib${_apu_name}.dll" ${APRUTIL_ROOT})
else() # NOT Windows
Added: serf/trunk/build/SerfWindowsToolkit.cmake
URL:
http://svn.apache.org/viewvc/serf/trunk/build/SerfWindowsToolkit.cmake?rev=1834584&view=auto
==============================================================================
--- serf/trunk/build/SerfWindowsToolkit.cmake (added)
+++ serf/trunk/build/SerfWindowsToolkit.cmake Thu Jun 28 09:01:14 2018
@@ -0,0 +1,35 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ===================================================================
+
+# This function defines:
+# SERF_OPENSSL_STATIC, if we're linking with a static libraries.
+# SERF_OPENSSL_EXTRA_LIBS, if we need additional libraries to link.
+# SERF_OPENSSL_RUNTIME_LIBS, when it finds OpenSSL DLL libraries.
+function(SerfWindowsProcessOpenSSL)
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ endif()
+endfunction(SerfWindowsProcessOpenSSL)
+
+# This function defines:
+# SERF_ZLIB_STATIC, if we're linking with a static libraries.
+# SERF_ZLIB_EXTRA_LIBS, if we need additional libraries to link.
+# SERF_ZLIB_RUNTIME_LIBS, when it finds OpenSSL DLL libraries.
+function(SerfWindowsProcessZLIB)
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ endif()
+endfunction(SerfWindowsProcessZLIB)
Propchange: serf/trunk/build/SerfWindowsToolkit.cmake
------------------------------------------------------------------------------
svn:eol-style = native