1266733SpeterExperimental cmake-based build support for APR on Microsoft Windows 2266733Speter 3266733SpeterStatus 4266733Speter------ 5266733Speter 6266733SpeterThis build support is currently intended only for Microsoft Windows. 7266733SpeterOnly Windows NT-based systems can be targeted. (The traditional 8266733SpeterWindows build support for APR can target Windows 9x as well.) 9266733Speter 10266733SpeterThis build support is experimental. Specifically, 11266733Speter 12266733Speter* It does not support all features of APR. 13266733Speter* Some components may not be built correctly and/or in a manner 14266733Speter compatible with the previous Windows build support. 15266733Speter* Build interfaces, such as the mechanisms which are used to enable 16266733Speter optional functionality or specify prerequisites, may change from 17266733Speter release to release as feedback is received from users and bugs and 18266733Speter limitations are resolved. 19266733Speter 20266733SpeterImportant: Refer to the "Known Bugs and Limitations" section for further 21266733Speter information. 22266733Speter 23266733Speter It is beyond the scope of this document to document or explain 24266733Speter how to utilize the various cmake features, such as different 25266733Speter build backends or provisions for finding support libraries. 26266733Speter 27266733Speter Please refer to the cmake documentation for additional information 28266733Speter that applies to building any project with cmake. 29266733Speter 30266733SpeterPrerequisites 31266733Speter------------- 32266733Speter 33266733SpeterThe following tools must be in PATH: 34266733Speter 35266733Speter* cmake, version 2.8 or later 36266733Speter* If using a command-line compiler: compiler and linker and related tools 37266733Speter (Refer to the cmake documentation for more information.) 38266733Speter 39266733SpeterHow to build 40266733Speter------------ 41266733Speter 42266733Speter1. cd to a clean directory for building (i.e., don't build in your 43266733Speter source tree) 44266733Speter 45266733Speter2. Some cmake backends may want your compile tools in PATH. (Hint: "Visual 46266733Speter Studio Command Prompt") 47266733Speter 48266733Speter3. cmake -G "some backend, like 'NMake Makefiles'" 49266733Speter -DCMAKE_INSTALL_PREFIX=d:/path/to/aprinst 50266733Speter -DAPR-specific-flags 51266733Speter d:/path/to/aprsource 52266733Speter 53266733Speter Alternately, use cmake-gui and update settings in the GUI. 54266733Speter 55266733Speter APR feature flags: 56266733Speter 57266733Speter APR_INSTALL_PRIVATE_H Install extra .h files which are required when 58266733Speter building httpd and Subversion but which aren't 59266733Speter intended for use by applications. 60266733Speter Default: OFF 61266733Speter APR_HAVE_IPV6 Enable IPv6 support 62266733Speter Default: ON 63266733Speter APR_BUILD_TESTAPR Build APR test suite 64266733Speter Default: OFF 65266733Speter TEST_STATIC_LIBS Build the test suite to test the APR static 66266733Speter library instead of the APR dynamic library. 67266733Speter Default: OFF 68266733Speter In order to build the test suite against both 69266733Speter static and dynamic libraries, separate builds 70266733Speter will be required, one with TEST_STATIC_LIBS 71266733Speter set to ON. 72266733Speter MIN_WINDOWS_VER Minimum Windows version supported by this build 73266733Speter (This controls the setting of _WIN32_WINNT.) 74266733Speter "Vista" or "Windows7" or a numeric value like 75266733Speter "0x0601" 76266733Speter Default: "Vista" 77266733Speter For desktop/server equivalence or other values, 78266733Speter refer to 79266733Speter http://msdn.microsoft.com/en-us/library/windows/ 80266733Speter desktop/aa383745(v=vs.85).aspx 81266733Speter INSTALL_PDB Install .pdb files if generated. 82266733Speter Default: ON 83266733Speter 84266733Speter CMAKE_C_FLAGS_RELEASE, _DEBUG, _RELWITHDEBINFO, _MINSIZEREL 85266733Speter 86266733Speter CMAKE_BUILD_TYPE 87266733Speter 88266733Speter For NMake Makefiles the choices are at least DEBUG, RELEASE, 89266733Speter RELWITHDEBINFO, and MINSIZEREL 90266733Speter Other backends make have other selections. 91266733Speter 92266733Speter4. build using chosen backend (e.g., "nmake install") 93266733Speter 94266733SpeterKnown Bugs and Limitations 95266733Speter-------------------------- 96266733Speter 97266733Speter* If include/apr.h or other generated files have been created in the source 98266733Speter directory by another build system, they will be used unexpectedly and 99266733Speter cause the build to fail. 100266733Speter* Options should be provided for remaining features: 101266733Speter + APR_POOL_DEBUG 102266733Speter* APR-CHANGES.txt, APR-LICENSE.txt, and APR-NOTICE.txt are not installed, 103266733Speter though perhaps that is a job for a higher-level script. 104266733Speter 105266733SpeterGenerally: 106266733Speter 107266733Speter* Many APR features have not been tested with this build. 108266733Speter* Developers need to examine the existing Windows build in great detail and see 109266733Speter what is missing from the cmake-based build, whether a feature or some build 110266733Speter nuance. 111266733Speter* Any feedback you can provide on your experiences with this build will be 112266733Speter helpful. 113