On 08/22/2013 04:55 PM, Jeff Trawick wrote:
> On Thu, Aug 22, 2013 at 10:49 AM, Tom Donovan <firstname.lastname@example.org
Hi Jeff,> <mailto:email@example.com>> wrote:
> On 08/20/2013 03:47 PM, Jeff Trawick wrote:
> > I plan to spend some time tilting at that windmill starting later this week, for the purposes of
> > getting a flexible build on Windows. Enough time to get something working? Dunno :(
> > --
> > Born in Roswell... married an alien...
> > http://emptyhammock.com/
> I gave it a try last March, but I never found the time to follow up and finish it.
> I was able to build apr and httpd (trunk) on Windows7.
> My Windows-only CMakeLists.txt files for both apr & httpd, along with some notes, are at:
> Please help yourself to anything here which is useful to your effort.
> Hi Tom,
> By chance did you experiment with FindOpenSSL, FindZLIB, etc.?
> Born in Roswell... married an alien...
I looked at them briefly, but no, I didn't experiment much.
On Windows, those CMake modules seem to have an impossible job. There is really no "standard"
location on Windows for OpenSSL, Zlib, et. al. - especially since headers are needed in addition to
the runtime libraries. These modules pose a risk of finding some unrelated OpenSSL or Zlib library
which might have been built with a different Windows compiler, and might use a different C runtime
I used my own rules instead to locate the eleven prerequisites that APR or HTTPD might use on
Windows. The rules I made for PCRE, ICONV, LUA, LIBXML2 (or EXPAT), ZLIB, OPENSSL, SQLITE3, PGSQL,
MYSQL, ORACLE, and BDB (Berkeley DB) were:
* If the symbol is defined on the CMake command-line, it points to the directory that the
prerequisite is installed in. i.e. the directory containing bin, include, and lib subdirectories.
CMAKE -D SQLITE3=C:/work/sqlite3 -D PCRE=D:/build/pcre -D ICONV=C:/work/libiconv ...
* If the symbol is not defined, a check is made for directories named:
srclib\pcre, srclib\libiconv, srclib\lua, srclib\libxml2, srclib\zlib, srclib\openssl,
srclib\sqlite3, srclib\postgresql, srclib\mysql, srclib\oracle, or srclib\berkeleydb.
* If the symbol isn't defined and the srclib\XXX subdirectory doesn't exist - then the
prerequisite is not present.