On 08/22/2013 04:55 PM, Jeff Trawick wrote: > On Thu, Aug 22, 2013 at 10:49 AM, Tom Donovan <donov...@bellatlantic.net > <mailto:donov...@bellatlantic.net>> 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: > > http://people.apache.org/~tdonovan/cmake/HTTPD_CMake.zip > > Please help yourself to anything here which is useful to your effort. > > -t- > > > Hi Tom, > > By chance did you experiment with FindOpenSSL, FindZLIB, etc.? > > -- > Born in Roswell... married an alien... > http://emptyhammock.com/
Hi Jeff, 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 library. 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. e.g. 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. -tom-