You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2013/08/28 02:58:10 UTC

svn commit: r1518041 - /httpd/httpd/trunk/CMakeLists.txt

Author: trawick
Date: Wed Aug 28 00:58:10 2013
New Revision: 1518041

URL: http://svn.apache.org/r1518041
Log:
Add mod_deflate build support, along with module enablement options
"a" and "i" which are ignored with a warning if a prerequisite
is not found.

Fix the mod_ssl build to use the same mechanism, and to use
enablement option "i" so that it is installed but not loaded
if its prereq (OpenSSL) is available.

Fix a few messaging buglets.

Modified:
    httpd/httpd/trunk/CMakeLists.txt

Modified: httpd/httpd/trunk/CMakeLists.txt
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CMakeLists.txt?rev=1518041&r1=1518040&r2=1518041&view=diff
==============================================================================
--- httpd/httpd/trunk/CMakeLists.txt (original)
+++ httpd/httpd/trunk/CMakeLists.txt Wed Aug 28 00:58:10 2013
@@ -60,6 +60,7 @@ PROJECT(HTTPD C)
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 
 FIND_PACKAGE(OpenSSL)
+FIND_PACKAGE(ZLIB)
 
 # Options for support libraries not supported by cmake-bundled FindFOO
 SET(APR_INCLUDE_DIR       "C:/APR/include"               CACHE STRING "Directory with APR[-Util] include files")
@@ -72,7 +73,6 @@ SET(PCRE_LIBRARIES        "C:/PCRE/lib/p
 #   "A" ("A"ctive) means installed and active in default .conf, fail if can't be built
 #   "I" ("I"nactive) means installed and inactive (LoadModule commented out) in default .conf, fail if can't be built
 #   "O" ("O"mit) means not installed, no LoadModule
-# Options to be added later:
 #   "a" - like "A", but ignore with a warning if any prereqs aren't available
 #   "i" - like "I", but ignore with a warning if any prereqs aren't available
 
@@ -126,7 +126,7 @@ SET(MODULE_LIST
   "modules/filters/mod_buffer.c+A+Filter Buffering"
   "modules/filters/mod_charset_lite.c+O+character set translation"
   "modules/filters/mod_data.c+I+RFC2397 data encoder"
-  "modules/filters/mod_deflate.c+O+Deflate transfer encoding support"
+  "modules/filters/mod_deflate.c+i+Deflate transfer encoding support"
   "modules/filters/mod_ext_filter.c+I+external filter module"
   "modules/filters/mod_filter.c+A+Smart Filtering"
   "modules/filters/mod_include.c+A+Server Side Includes"
@@ -191,7 +191,7 @@ SET(MODULE_LIST
   "modules/session/mod_session_dbd.c+I+session dbd module"
   "modules/slotmem/mod_slotmem_plain.c+A+slotmem provider that uses plain memory"
   "modules/slotmem/mod_slotmem_shm.c+A+slotmem provider that uses shared memory"
-  "modules/ssl/mod_ssl.c+A+SSL/TLS support"
+  "modules/ssl/mod_ssl.c+i+SSL/TLS support"
   "modules/test/mod_dialup.c+I+rate limits static files to dialup modem speeds"
   "modules/test/mod_optional_fn_export.c+I+example optional function exporter"
   "modules/test/mod_optional_fn_import.c+I+example optional function importer"
@@ -224,6 +224,9 @@ SET(mod_dav_fs_extra_libs            mod
 SET(mod_dav_lock_extra_sources       modules/dav/lock/locks.c)
 SET(mod_dav_lock_extra_libs          mod_dav)
 SET(mod_dbd_extra_defines            DBD_DECLARE_EXPORT)
+SET(mod_deflate_requires             ZLIB_FOUND)
+SET(mod_deflate_extra_includes       ${ZLIB_INCLUDE_DIR})
+SET(mod_deflate_extra_libs           ${ZLIB_LIBRARIES})
 SET(mod_heartbeat_extra_libs         mod_watchdog)
 SET(mod_optional_hook_export_extra_defines AP_DECLARE_EXPORT) # bogus reuse of core API prefix
 SET(mod_proxy_extra_defines          PROXY_DECLARE_EXPORT)
@@ -249,6 +252,7 @@ SET(mod_sed_extra_sources
 SET(mod_session_extra_defines        SESSION_DECLARE_EXPORT)
 SET(mod_session_cookie_extra_libs    mod_session)
 SET(mod_session_dbd_extra_libs       mod_session)
+SET(mod_ssl_requires                 OPENSSL_FOUND)
 SET(mod_ssl_extra_includes           ${OPENSSL_INCLUDE_DIR})
 SET(mod_ssl_extra_sources
   modules/ssl/ssl_engine_config.c    modules/ssl/ssl_engine_dh.c
@@ -281,7 +285,7 @@ FOREACH (modinfo ${MODULE_LIST})
     ELSEIF("${helptext}" STREQUAL "")
       SET(helptext ${i})
     ELSE()
-      MESSAGE(FATAL " Unexpected field or plus sign in >${modinfo}<")
+      MESSAGE(FATAL_ERROR "Unexpected field or plus sign in >${modinfo}<")
     ENDIF()
   ENDFOREACH()
 
@@ -410,21 +414,34 @@ FOREACH (mod ${MODULE_SRCS})
 
   # Is it enabled?
   STRING(TOUPPER "ENABLE_${mod_name}" enable_mod)
+  SET(enable_mod_val ${${enable_mod}})
 
-  IF("${${enable_mod}}" STREQUAL "")
-    MESSAGE(FATAL " ENABLE_MOD_foo VAR not set for module ${mod}")
+  IF(NOT ${enable_mod_val} STREQUAL "O") # build of module is desired
+    SET(mod_requires "${mod_name}_requires")
+    STRING(TOUPPER ${enable_mod_val} enable_mod_val_upper)
+    IF(NOT ${${mod_requires}} STREQUAL "") # module has some prerequisite
+      IF(NOT ${${mod_requires}}) # prerequisite doesn't exist
+        IF(NOT ${enable_mod_val} STREQUAL ${enable_mod_val_upper}) # lower case, so optional based on prereq
+          MESSAGE(STATUS "${mod_name} was requested but couldn't be built due to a missing prerequisite (${${mod_requires}})")
+        ELSE() # must be upper case "A" or "I" (or coding error above)
+          MESSAGE(FATAL_ERROR "${mod_name} was requested but couldn't be built due to a missing prerequisite (${${mod_requires}})")
+        ENDIF()
+      ENDIF()
+    ENDIF()
+    # map a->A, i->I for remaining logic since prereq checking is over
+    SET(enable_mod_val ${enable_mod_val_upper})
   ENDIF()
   
-  IF(${${enable_mod}} STREQUAL "O")
+  IF(${enable_mod_val} STREQUAL "O")
     # ignore
   ELSE()
     # Handle whether or not the LoadModule is commented out.
-    IF(${${enable_mod}} STREQUAL "A")
+    IF(${enable_mod_val} STREQUAL "A")
       SET(LoadModules ${LoadModules} "LoadModule ${mod_module_name} modules/${mod_name}.so\n")
-    ELSEIF(${${enable_mod}} STREQUAL "I")
+    ELSEIF(${enable_mod_val} STREQUAL "I")
       SET(LoadModules ${LoadModules} "# LoadModule ${mod_module_name} modules/${mod_name}.so\n")
     ELSE()
-      MESSAGE(FATAL " ${enable_mod} must be set to \"A\", \"I\", or \"O\" instead of \"${${enable_mod}}\"")
+      MESSAGE(FATAL_ERROR "${enable_mod} must be set to \"A\", \"I\", or \"O\" instead of \"${enable_mod_val}\"")
     ENDIF()
 
     # Handle building it.