Menu

#31 Building Seabreeze with VisualStudio2008

3.0
open
nobody
None
2017-05-14
2017-05-14
No

When building external libraries to be used with Python2.7 on Windows, it's recommended to use VS2008. (The python interpreter is built with VS2008, https://docs.python.org/devguide/setup.html#windows-compiling)

To get automated conda package builds for Windows Python2.7 working, I had to apply several fixes. They are all attached here:

0001-vc9-if-false-is-incompatible.-Fatal-Error-C1017.patch:
Preprocessor statements like #if (false)don't compile with VS2008

0002-vc9-vector.data-not-supported.patch
Can't use stdvector.data()

0003-vc9-Fix-snprintf-not-defined.patch
OBPTransaction.cpp needs a preprocessor conditional to fix an snprintf error.

0004-Providing-VisualStudio2008-sln-for-python2.7-builds.patch
I created a VS2008 compatible solution and project file to allow msbuild builds from appveyor virtual machines using VS2008. The reason I had to do this is: the VS2005 project file lacks a Release|x64 build target and the VS2010 sln and project files won't compile on the Appveyor VM's with VS2008. But I'm not a Windows user and never used VisualStudio, and I am 100% sure that there's something wrong with the solution file and the project file. It does work for now, but it would be great if someone with VS expertise could have a look at it. Things I know that are wrong:

  1. I am not sure I set all the correct preprocessor flags.
  2. The post build scripts don't work. (Copying dll and lib to SeaBreeze\lib after successful build)
  3. When I msbuild the solution file, it just builds all build targets and cmdline selecting configuration and platform does nothing. So I had to use vcbuild and use the project file.

Best,
Andreas

4 Attachments

Discussion


Log in to post a comment.