mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-26 19:03:48 +01:00
113 lines
4.4 KiB
CMake
113 lines
4.4 KiB
CMake
Experimental cmake-based build support for APR on Microsoft Windows
|
|
|
|
Status
|
|
------
|
|
|
|
This build support is currently intended only for Microsoft Windows.
|
|
Only Windows NT-based systems can be targeted. (The traditional
|
|
Windows build support for APR can target Windows 9x as well.)
|
|
|
|
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.)
|
|
|
|
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. 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:
|
|
|
|
APR_INSTALL_PRIVATE_H Install extra .h files which are required when
|
|
building httpd and Subversion but which aren't
|
|
intended for use by applications.
|
|
Default: OFF
|
|
APR_HAVE_IPV6 Enable IPv6 support
|
|
Default: ON
|
|
APR_BUILD_TESTAPR Build APR test suite
|
|
Default: OFF
|
|
TEST_STATIC_LIBS Build the test suite to test the APR static
|
|
library instead of the APR dynamic library.
|
|
Default: OFF
|
|
In order to build the test suite against both
|
|
static and dynamic libraries, separate builds
|
|
will be required, one with TEST_STATIC_LIBS
|
|
set to ON.
|
|
MIN_WINDOWS_VER Minimum Windows version supported by this build
|
|
(This controls the setting of _WIN32_WINNT.)
|
|
"Vista" or "Windows7" or a numeric value like
|
|
"0x0601"
|
|
Default: "Vista"
|
|
For desktop/server equivalence or other values,
|
|
refer to
|
|
http://msdn.microsoft.com/en-us/library/windows/
|
|
desktop/aa383745(v=vs.85).aspx
|
|
INSTALL_PDB Install .pdb files if generated.
|
|
Default: ON
|
|
|
|
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.
|
|
|
|
4. 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.
|
|
* Options should be provided for remaining features:
|
|
+ APR_POOL_DEBUG
|
|
* APR-CHANGES.txt, APR-LICENSE.txt, and APR-NOTICE.txt are not installed,
|
|
though perhaps that is a job for a higher-level script.
|
|
|
|
Generally:
|
|
|
|
* Many APR features have not been tested with this build.
|
|
* Developers need to examine the existing Windows build in great detail and see
|
|
what is missing from the cmake-based build, whether a feature or some build
|
|
nuance.
|
|
* Any feedback you can provide on your experiences with this build will be
|
|
helpful.
|