On 1/5/2014 23:45, Alex.Burton@stripped wrote:
> the project files must be too old for the current visual
I thought I tried that before shipping MySQL++ 3.2.1.
On trying it here, I found three problems that prevent it from working
out of the box:
1. lib/common.h #included winsock.h. It probably never was really
required, and it now conflicts with Connector/C, so I removed it.
2. windows.h (via Connector/C) #defines min and max macros unless you
suppress it via #define NOMINMAX. This wasn't a problem before, but
apparently changes to the Standard C++ library or C++ parsing in VC++
2013 causes a conflict. So, #defininig NOMINMAX. This in turn required
a #include <algorithm> in one of the C++ files that was apparently
getting away with using the windows.h definition.
3. On converting the vs2008/* files to VS2013 form, Visual Studio didn't
prefix the linker paths with x64\. This is probably the real reason
your SCons file helps your local build. Fixing this by hand is fairly
tedious, and there is no way I can do this in the vs2008 output without
breaking VS2008 compatibility. What we need here is real VS2013
support, not a half-um-butted conversion.
> This build script works with SCons which i recommend.
I've been considering switching away from Bakefile, since it has not yet
gotten support for MSBuild style VS project files.
SCons was on the short list, as was CMake.
The mere fact of this contribution pushes me towards SCons. Anyone know
a reason I should disregard the contribution and consider CMake instead?
> Please consider adding this script
Thanks for writing this!
I won't just add it to the repository, as that would create a parallel
development problem. I will instead consider replacing mysql++.bkl.
There's a bunch of extensions that will have to be made to your
contribution before I can do that:
- support MinGW, Xcode, and Autotools
- add examples/*.cpp build targets
- add documentation build targets
- add test build targets
- add ctags convenience target
- add ssqls.h and querydef.h build targets
- add abicheck convenience target
- add dist tarball, RPM and ebuild creation targets