Simplify the CMaks utility script structure.

* build/FindAPR.cmake: Include functions from build/APRCommon.cmake.
   Make the acutal find-pacakge script conditional on an external variable.
* build/FindAPRUtil.cmake: Include FindAPR.cmake for utility functions.
* build/APRCommon.cmake: Removed.


git-svn-id: https://svn.apache.org/repos/asf/serf/trunk@1835399 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/build/APRCommon.cmake b/build/APRCommon.cmake
deleted file mode 100644
index 4a207f8..0000000
--- a/build/APRCommon.cmake
+++ /dev/null
@@ -1,65 +0,0 @@
-# ===================================================================
-#   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.
-# ===================================================================
-
-function(_apru_config _program _varname _regexp)
-  execute_process(COMMAND ${_program} ${ARGN}
-                  OUTPUT_VARIABLE _apru_output
-                  RESULT_VARIABLE _apru_failed)
-
-  if(_apru_failed)
-    message(FATAL_ERROR "${_program} ${ARGN} failed")
-  else()
-
-    # Join multi-line outupt
-    string(REGEX REPLACE "[\r\n]"       ""  _apru_output "${_apru_output}")
-
-    # Optionally apply the regular expression filter
-    if(NOT ${_regexp} STREQUAL "")
-      string(REGEX REPLACE "${_regexp}" " " _apru_output "${_apru_output}")
-    endif()
-
-    # Remove leading and trailing spaces
-    string(REGEX REPLACE "^ +"          ""  _apru_output "${_apru_output}")
-    string(REGEX REPLACE " +$"          ""  _apru_output "${_apru_output}")
-
-    separate_arguments(_apru_output)
-    set(${_varname} ${_apru_output} PARENT_SCOPE)
-  endif()
-endfunction(_apru_config)
-
-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
-       REGEX "^ *# *define +${_prefix}_MINOR_VERSION +[0-9]+.*$")
-  file(STRINGS ${_header} _apru_patch
-       REGEX "^ *# *define +${_prefix}_PATCH_VERSION +[0-9]+.*$")
-  string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_major ${_apru_major})
-  string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_minor ${_apru_minor})
-  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)
-  set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
-  find_library(${_varname} NAMES ${_dllname}
-               PATHS ${ARGN} NO_DEFAULT_PATH PATH_SUFFIXES "bin" "lib")
-endfunction(_apru_find_dll)
diff --git a/build/FindAPR.cmake b/build/FindAPR.cmake
index 4c10628..6802e18 100644
--- a/build/FindAPR.cmake
+++ b/build/FindAPR.cmake
@@ -17,76 +17,135 @@
 #   under the License.
 # ===================================================================
 
+cmake_minimum_required(VERSION 3.0)
+
+# This module uses:
+#   APR_ROOT, the (optional) root of the APR install area.
 # This module defines:
-# APR_FOUND, set to TRUE if found, FALSE otherwise.
-# APR_VERSION, the version of APR that was found.
-# APR_CONTAINS_APRUTIL, set to TRUE if the APR major version is 2 or greater.
-# APR_INCLUDES, where to find apr.h, etc.
-# 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_STATIC_LIBS, on Windows: list of static libraries.
-# APR_RUNTIME_LIBS, on Windows: list of DLLs that will be loaded at runtime.
+#   APR_FOUND, set to TRUE if found, FALSE otherwise.
+#   APR_VERSION, the version of APR that was found.
+#   APR_CONTAINS_APRUTIL, set to TRUE if the APR major version is 2 or greater.
+#   APR_INCLUDES, where to find apr.h, etc.
+#   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_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)
-include(APRCommon)
+# -------------------------------------------------------------------
+# Common utility functions for FindAPR.cmaks and FindAPRtil.cmake
+# -------------------------------------------------------------------
 
-if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+function(_apru_config _program _varname _regexp)
+  execute_process(COMMAND ${_program} ${ARGN}
+                  OUTPUT_VARIABLE _apru_output
+                  RESULT_VARIABLE _apru_failed)
 
-  if(NOT DEFINED APR_ROOT)
-    message(FATAL_ERROR "APR_ROOT must be defined on Windows")
-  endif()
-
-  include(CheckIncludeFile)
-
-  set(APR_INCLUDES "${APR_ROOT}/include")
-  if(NOT EXISTS "${APR_INCLUDES}/apr.h")
-    message(FATAL_ERROR "apr.h was not found in ${APR_INCLUDES}")
-  endif()
-  if(NOT EXISTS "${APR_INCLUDES}/apr_version.h")
-    message(FATAL_ERROR "apr_version.h was not found in ${APR_INCLUDES}")
-  endif()
-
-  _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"
-               PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
-  find_library(APR_STATIC_LIBS NAMES "${_apr_name}.lib"
-               PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
-  _apru_find_dll(APR_RUNTIME_LIBS "lib${_apr_name}.dll" ${APR_ROOT})
-
-else()    #NOT Windows
-
-  if(DEFINED APR_ROOT)
-    find_program(APR_CONFIG_EXECUTABLE NAMES apr-2-config apr-1-config
-                 PATHS "${APR_ROOT}/bin" NO_DEFAULT_PATH)
+  if(_apru_failed)
+    message(FATAL_ERROR "${_program} ${ARGN} failed")
   else()
-    find_program(APR_CONFIG_EXECUTABLE NAMES apr-2-config apr-1-config)
+    # Join multi-line outupt
+    string(REGEX REPLACE "[\r\n]"       ""  _apru_output "${_apru_output}")
+
+    # Optionally apply the regular expression filter
+    if(NOT ${_regexp} STREQUAL "")
+      string(REGEX REPLACE "${_regexp}" " " _apru_output "${_apru_output}")
+    endif()
+
+    # Remove leading and trailing spaces
+    string(REGEX REPLACE "^ +"          ""  _apru_output "${_apru_output}")
+    string(REGEX REPLACE " +$"          ""  _apru_output "${_apru_output}")
+
+    separate_arguments(_apru_output)
+    set(${_varname} ${_apru_output} PARENT_SCOPE)
   endif()
-  mark_as_advanced(APR_CONFIG_EXECUTABLE)
+endfunction(_apru_config)
 
-  macro(_apr_invoke _varname _regexp)
-    _apru_config(${APR_CONFIG_EXECUTABLE} ${_varname} "${_regexp}" "${ARGN}")
-  endmacro(_apr_invoke)
+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
+       REGEX "^ *# *define +${_prefix}_MINOR_VERSION +[0-9]+.*$")
+  file(STRINGS ${_header} _apru_patch
+       REGEX "^ *# *define +${_prefix}_PATCH_VERSION +[0-9]+.*$")
+  string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_major ${_apru_major})
+  string(REGEX REPLACE "^[^0-9]+([0-9]+).*$" "\\1" _apru_minor ${_apru_minor})
+  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)
 
-  _apr_invoke(APR_CFLAGS     "(^| )-(g|O)[^ ]*" --cppflags --cflags)
-  _apr_invoke(APR_INCLUDES   "(^| )-I"          --includes)
-  _apr_invoke(APR_LIBRARIES  ""                 --link-ld)
-  _apr_invoke(APR_EXTRALIBS  ""                 --libs)
-  _apr_invoke(APR_VERSION    ""                 --version)
-  string(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" _apr_major "${APR_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)
 
-endif()   # NOT Windows
+# -------------------------------------------------------------------
 
-if(_apr_major GREATER 2)
-  set(APR_CONTAINS_APRUTIL TRUE)
-else()
-  set(APR_CONTAINS_APRUTIL FALSE)
-endif()
+if(NOT _apru_include_only_utilities)
 
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(APR
-                                  REQUIRED_VARS APR_LIBRARIES APR_INCLUDES
-                                  VERSION_VAR APR_VERSION)
+  set(APR_FOUND FALSE)
+
+  if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+
+    if(NOT DEFINED APR_ROOT)
+      message(FATAL_ERROR "APR_ROOT must be defined on Windows")
+    endif()
+
+    include(CheckIncludeFile)
+
+    set(APR_INCLUDES "${APR_ROOT}/include")
+    if(NOT EXISTS "${APR_INCLUDES}/apr.h")
+      message(FATAL_ERROR "apr.h was not found in ${APR_INCLUDES}")
+    endif()
+    if(NOT EXISTS "${APR_INCLUDES}/apr_version.h")
+      message(FATAL_ERROR "apr_version.h was not found in ${APR_INCLUDES}")
+    endif()
+
+    _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"
+                 PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
+    find_library(APR_STATIC_LIBS NAMES "${_apr_name}.lib"
+                 PATHS ${APR_ROOT} NO_DEFAULT_PATH PATH_SUFFIXES "lib")
+    _apru_find_dll(APR_RUNTIME_LIBS "lib${_apr_name}.dll" ${APR_ROOT})
+
+  else()    #NOT Windows
+
+    if(DEFINED APR_ROOT)
+      find_program(APR_CONFIG_EXECUTABLE NAMES apr-2-config apr-1-config
+                   PATHS "${APR_ROOT}/bin" NO_DEFAULT_PATH)
+    else()
+      find_program(APR_CONFIG_EXECUTABLE NAMES apr-2-config apr-1-config)
+    endif()
+    mark_as_advanced(APR_CONFIG_EXECUTABLE)
+
+    macro(_apr_invoke _varname _regexp)
+      _apru_config(${APR_CONFIG_EXECUTABLE} ${_varname} "${_regexp}" "${ARGN}")
+    endmacro(_apr_invoke)
+
+    _apr_invoke(APR_CFLAGS     "(^| )-(g|O)[^ ]*" --cppflags --cflags)
+    _apr_invoke(APR_INCLUDES   "(^| )-I"          --includes)
+    _apr_invoke(APR_LIBRARIES  ""                 --link-ld)
+    _apr_invoke(APR_EXTRALIBS  ""                 --libs)
+    _apr_invoke(APR_VERSION    ""                 --version)
+    string(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" _apr_major "${APR_VERSION}")
+
+  endif()   # NOT Windows
+
+  if(_apr_major GREATER 2)
+    set(APR_CONTAINS_APRUTIL TRUE)
+  else()
+    set(APR_CONTAINS_APRUTIL FALSE)
+  endif()
+
+  include(FindPackageHandleStandardArgs)
+  find_package_handle_standard_args(APR
+                                    REQUIRED_VARS APR_LIBRARIES APR_INCLUDES
+                                    VERSION_VAR APR_VERSION)
+
+endif(NOT _apru_include_only_utilities)
diff --git a/build/FindAPRUtil.cmake b/build/FindAPRUtil.cmake
index 946ceb2..0e6466c 100644
--- a/build/FindAPRUtil.cmake
+++ b/build/FindAPRUtil.cmake
@@ -17,18 +17,22 @@
 #   under the License.
 # ===================================================================
 
+cmake_minimum_required(VERSION 3.0)
+
+# This module uses:
+#   APRUTIL_ROOT, the (optional) root of the APR-Util install area.
 # This module defines:
-# APRUTIL_FOUND, set to TRUE if found, FALSE otherwise.
-# APRUTIL_VERSION, the version of APR that was found.
-# 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_STATIC_LIBS, on Windows: list of static libraries.
-# APRUTIL_RUNTIME_LIBS, on Windows: list of DLLs that will be loaded at runtime.
+#   APRUTIL_FOUND, set to TRUE if found, FALSE otherwise.
+#   APRUTIL_VERSION, the version of APR that was found.
+#   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_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)
-  find_package(APR)
+if(NOT APR_FOUND) # FIXME: should become: if(NOT TARGET APR::APR)
+  find_package(APR REQUIRED)
 endif()
 
 if(APR_CONTAINS_APRUTIL)
@@ -43,8 +47,11 @@
 
 else(APR_CONTAINS_APRUTIL)
 
+  set(_apru_include_only_utilities TRUE)
+  include(${CMAKE_CURRENT_LIST_DIR}/FindAPR.cmake)
+  unset(_apru_include_only_utilities)
+
   set(APRUTIL_FOUND FALSE)
-  include(APRCommon)
 
   if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")