You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by tr...@apache.org on 2013/08/29 20:37:25 UTC

svn commit: r1518749 - in /apr/apr/trunk: CMakeLists.txt README.cmake

Author: trawick
Date: Thu Aug 29 18:37:25 2013
New Revision: 1518749

URL: http://svn.apache.org/r1518749
Log:
move cmake howto/buglist to a separate file, README.cmake
add license text to CMakeLists.txt

Added:
    apr/apr/trunk/README.cmake   (with props)
Modified:
    apr/apr/trunk/CMakeLists.txt

Modified: apr/apr/trunk/CMakeLists.txt
URL: http://svn.apache.org/viewvc/apr/apr/trunk/CMakeLists.txt?rev=1518749&r1=1518748&r2=1518749&view=diff
==============================================================================
--- apr/apr/trunk/CMakeLists.txt (original)
+++ apr/apr/trunk/CMakeLists.txt Thu Aug 29 18:37:25 2013
@@ -1,82 +1,21 @@
-PROJECT(APR C)
-
-# Experimental cmake-based build support for APR on Windows
-#
-# General usage:
-# 0. Read the todos down below and make sure this is good enough for your
-#    purposes.
-# 1. cd to a clean directory for building (i.e., don't build in your
-#    source tree)
-# 2. set CMAKE_LIBRARY_PATH=d:\path\to\prereq1\lib;d:\path\to\prereq2\lib;...
-# 3. set CMAKE_INCLUDE_PATH=d:\path\to\prereq1\include;d:\path\to\prereq2\include;...
-# 4. cmake -G "some backend, like 'NMake Makefiles'" \
-#          -DCMAKE_INSTALL_PREFIX=d:/path/to/aprinst \
-#          -DAPR-specific-flags \
-#          d:/path/to/aprsource
-#    Alternately, use cmake-gui and update settings in the GUI.
+# 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
 #
-#    APR flags:
-#        APU_USE_EXPAT          Use Expat as the underlying XML implementation
-#                               Default: ON
-#        APU_USE_LIBXML2        Use libxml2 as the underlying XML implementation
-#                               Exactly one of APU_USE_EXPAT and APU_USE_LIBXML2
-#                               must be specified.
-#                               Default: OFF
-#        APR_INSTALL_PRIVATE_H  Install extra .h files which are required by httpd
-#                               but which aren't intended for use by applications.
-#                               Default: OFF
-#        APU_HAVE_CRYPTO        Build crypt support (only the OpenSSL implementation
-#                               is currently supported)
-#                               Default: OFF
-#        APU_HAVE_ODBC          Build ODBC DBD driver
-#                               Default: ON
-#        APR_HAVE_IPV6          Enable IPv6 support
-#                               Default: ON
-#        APR_SHOW_SETTINGS      Display key build settings at the end of build
-#                               generation
-#                               Default: ON
-#        APR_BUILD_TESTAPR      Build APR test suite
-#                               Default: OFF
+#     http://www.apache.org/licenses/LICENSE-2.0
 #
-#    Other flags of interest:
-#        LIBXML2_ICONV_INCLUDE_DIR, LIBXML2_ICONV_LIBRARIES
-#          If using libxml2 for the XML implementation and the build of libxml2
-#          requires iconv, set these variables to allow iconv includes
-#          and libraries to be found.
-#        CMAKE_C_FLAGS_RELEASE, _DEBUG, _RELWITHDEBINFO, _MINSIZEREL
-#        CMAKE_BUILD_TYPE
-#          For NMake Makefiles the choices are at least DEBUG, RELEASE,
-#          RELWITHDEBINFO, and MINSIZEREL
-#          Other backends make have other selections.
-# 5. build using chosen backend (e.g., "nmake install")
+# 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.
 #
-# Todos to properly support Windows:
-# . Fix problem where srcdir/include/apr.h (if it exists) is found before builddir/apr.h
-#   (and similar for apu_want.h)
-# . Build apr_app.c into libapr-2 properly (what about apr-2.lib?)
-# . Options for remaining features, along with finding any necessary libraries
-#   + APR_POOL_DEBUG
-#   + DBM:
-#     . APU_HAVE_GDBM
-#     . APU_HAVE_NDBM
-#     . APU_HAVE_DB
-#   + DBD:
-#     . APU_HAVE_PGSQL
-#     . APU_HAVE_MYSQL
-#     . APU_HAVE_SQLITE3
-#     . APU_HAVE_SQLITE2
-#     . APU_HAVE_ORACLE
-#   + CRYPTO:
-#     . APU_HAVE_NSS
-#   + APU_HAVE_ICONV
-# . Static builds of APR modules
-# . Alternate build of test programs to use libapr-2.dll
-# . Support static *or* shared build of Expat
-# . Some easier way to run the test suite (the stuff besides testall.exe)
-# . Install CHANGES/LICENSE/NOTICE like Makefile.win
-# . test/internal/testucs
-# . aprapp-2.lib/libaprapp-2.lib
-# . All the other stuff Jeff doesn't know about yet
+# Read README.cmake before using this.
+
+PROJECT(APR C)
 
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 

Added: apr/apr/trunk/README.cmake
URL: http://svn.apache.org/viewvc/apr/apr/trunk/README.cmake?rev=1518749&view=auto
==============================================================================
--- apr/apr/trunk/README.cmake (added)
+++ apr/apr/trunk/README.cmake Thu Aug 29 18:37:25 2013
@@ -0,0 +1,137 @@
+Experimental cmake-based build support for APR on Microsoft Windows
+
+Status
+------
+
+This build support is currently intended only for Microsoft Windows.
+
+This build support is experimental.  Specifically,
+
+* It does not support all features of APR.
+* Some components may not be built correctly and/or in a manner
+  compatible with the previous Windows build support.
+* Build interfaces, such as the mechanisms which are used to enable
+  optional functionality or specify prerequisites, may change from
+  release to release as feedback is received from users and bugs and
+  limitations are resolved.
+
+Important: Refer to the "Known Bugs and Limitations" section for further
+           information.
+
+           It is beyond the scope of this document to document or explain
+           how to utilize the various cmake features, such as different
+           build backends or provisions for finding support libraries.
+
+           Please refer to the cmake documentation for additional information
+           that applies to building any project with cmake.
+
+Prerequisites
+-------------
+
+The following tools must be in PATH:
+
+* cmake, version 2.8 or later
+* If using a command-line compiler: compiler and linker and related tools
+  (Refer to the cmake documentation for more information.)
+
+The following support libraries are mandatory:
+
+* Either expat or libxml2
+
+Additional support libraries allow optional features of APR to be enabled:
+
+* OpenSSL
+* many others potentially, though the build support isn't currently
+  implemented
+
+How to build
+------------
+
+1. cd to a clean directory for building (i.e., don't build in your
+   source tree)
+
+2. Some cmake backends may want your compile tools in PATH.  (Hint: "Visual
+   Studio Command Prompt")
+
+3. set CMAKE_LIBRARY_PATH=d:\path\to\prereq1\lib;d:\path\to\prereq2\lib;...
+
+4. set CMAKE_INCLUDE_PATH=d:\path\to\prereq1\include;d:\path\to\prereq2\include;...
+
+5. cmake -G "some backend, like 'NMake Makefiles'"
+     -DCMAKE_INSTALL_PREFIX=d:/path/to/aprinst
+     -DAPR-specific-flags
+     d:/path/to/aprsource
+
+   Alternately, use cmake-gui and update settings in the GUI.
+
+   APR feature flags:
+
+       Exactly one of APU_USE_EXPAT and APU_USE_LIBXML2 must be specified.
+
+       APU_USE_EXPAT          Use Expat as the underlying XML implementation
+                              Default: ON
+       APU_USE_LIBXML2        Use libxml2 as the underlying XML
+                              implementation
+                              Default: OFF
+       APR_INSTALL_PRIVATE_H  Install extra .h files which are required by
+                              httpd but which aren't intended for use by
+                              applications.
+                              Default: OFF
+       APU_HAVE_CRYPTO        Build crypt support (only the OpenSSL
+                              implementation is currently supported)
+                              Default: OFF
+       APU_HAVE_ODBC          Build ODBC DBD driver
+                              Default: ON
+       APR_HAVE_IPV6          Enable IPv6 support
+                              Default: ON
+       APR_SHOW_SETTINGS      Display key build settings at the end of build
+                              generation
+                              Default: ON
+       APR_BUILD_TESTAPR      Build APR test suite
+                              Default: OFF
+
+   LIBXML2_ICONV_INCLUDE_DIR, LIBXML2_ICONV_LIBRARIES
+
+       If using libxml2 for the XML implementation and the build of libxml2
+       requires iconv, set these variables to allow iconv includes
+       and libraries to be found.
+
+   CMAKE_C_FLAGS_RELEASE, _DEBUG, _RELWITHDEBINFO, _MINSIZEREL
+
+   CMAKE_BUILD_TYPE
+
+       For NMake Makefiles the choices are at least DEBUG, RELEASE,
+       RELWITHDEBINFO, and MINSIZEREL
+       Other backends make have other selections.
+
+6. build using chosen backend (e.g., "nmake install")
+
+Known Bugs and Limitations
+--------------------------
+
+* If include/apr.h or other generated files have been created in the source
+  directory by another build system, they will be used unexpectedly and
+  cause the build to fail.
+* apr_app.c, aprapp-2.lib, and libaprapp-2.lib are not handled properly.
+* Options should be provided for remaining features, along with finding any
+  necessary libraries
+  + APR_POOL_DEBUG
+  + DBM:
+    . APU_HAVE_GDBM
+    . APU_HAVE_NDBM
+    . APU_HAVE_DB
+  + DBD:
+    . APU_HAVE_PGSQL
+    . APU_HAVE_MYSQL
+    . APU_HAVE_SQLITE3
+    . APU_HAVE_SQLITE2
+    . APU_HAVE_ORACLE
+  + CRYPTO:
+    . APU_HAVE_NSS
+  + APU_HAVE_ICONV
+* Static builds of APR modules are not supported.
+* No test program build to use libapr-2.dll is created.
+* Support static *or* shared build of Expat.
+* No script or other mechanism is provided to run the test suite.
+* CHANGES/LICENSE/NOTICE is not installed, unlike Makefile.win.
+* test/internal/testucs is not built.

Propchange: apr/apr/trunk/README.cmake
------------------------------------------------------------------------------
    svn:eol-style = native