There are multiple related issues here and it would be good to identify them. So far on the thread:

1. The specific compiler flags used in release builds with Microsoft compilers
2. The Microsoft compiler version used in binary distributions
3. The build specification for Microsoft compilers


On the specify compiler version used in builds, I think APR should compile and pass tests on VC6, 7, 7.1 and 8. I've submitted patches that also get it compiling and somewhat functioning on Borland C++ 5.6 and MinGW. I don't think that APR should dictate a specific compiler that should be used by the people who bundle APR in their application and APR doesn't appear to provide their own binary distribution.

On the build specification, the VS IDE project files are helpful for debugging but they are awkward to set up and don't run unit tests, assemble distributions, etc. To use APR within log4cxx, I've created Ant scripts to build APR and log4cxx which work with a large variety of compilers. Since I'm just building APR static libraries to use in linking log4cxx, I'm wasn't terribly concerned with precisely mimicking the settings in the VS6 project files. The ant script can produce VS6 project files to give users a quick way to set up a debugging environment, but they aren't the definitive build environment.

That approach works well for me, but the reason that I bring it up is that it suggests that providing a MSBuild script and a VC6 IDE project (ideally derived from the MSBuild script) might be the desirable combination. MSBuild scripts are likely to be a lot cleaner than the VC6 project, able to drive the unit tests, can be read by VS.NET 2005 to provide a development and debugging environment. If MSBuild drives the compilers via the command line, it is likely to be able to be paired with earlier Microsoft compilers. Since it will be distributed as part of the .NET framework, it can still be used by developers who do not have VS.NET 2005.

I'd like to pass on that I have observed that some unit tests fail in the Windows build when I run them from my Ant script. Since I have seen no other way to run them on that platform, I can't confirm if they are bugs in the Windows implementation of either the tests or the code under test or bugs in the build process. I think it is possible that the unit tests have gotten stale on the Windows platform since they aren't readily run and an MSBuild script would address that issue.

Reply via email to