Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows build fails due to changes in Catch #196

Closed
joto opened this issue Feb 13, 2017 · 4 comments
Closed

Windows build fails due to changes in Catch #196

joto opened this issue Feb 13, 2017 · 4 comments

Comments

@joto
Copy link
Member

joto commented Feb 13, 2017

The Windows build fails due to changes (in our commit ab82364) in the Catch unit test framework we are using. See the appveyor log.

I have opened an issue for Catch. They are suggesting we change some flags in our build. I have no idea what those flags mean and why they are there. @BergWerkGIS Can you take a look?

@joto
Copy link
Member Author

joto commented Feb 13, 2017

Without some defines, it works.

@alex85k You added those defines originally. Were those important for some reason?

@wilhelmberg
Copy link
Contributor

Reference for _WIN32_WINNT versions:

MSDN: Modifying WINVER and _WIN32_WINNT

//  
// _WIN32_WINNT version constants  
//  
#define _WIN32_WINNT_NT4                    0x0400 // Windows NT 4.0  
#define _WIN32_WINNT_WIN2K                  0x0500 // Windows 2000  
#define _WIN32_WINNT_WINXP                  0x0501 // Windows XP  
#define _WIN32_WINNT_WS03                   0x0502 // Windows Server 2003  
#define _WIN32_WINNT_WIN6                   0x0600 // Windows Vista  
#define _WIN32_WINNT_VISTA                  0x0600 // Windows Vista  
#define _WIN32_WINNT_WS08                   0x0600 // Windows Server 2008  
#define _WIN32_WINNT_LONGHORN               0x0600 // Windows Vista  
#define _WIN32_WINNT_WIN7                   0x0601 // Windows 7  
#define _WIN32_WINNT_WIN8                   0x0602 // Windows 8  
#define _WIN32_WINNT_WINBLUE                0x0603 // Windows 8.1  
#define _WIN32_WINNT_WINTHRESHOLD           0x0A00 // Windows 10  
#define _WIN32_WINNT_WIN10                  0x0A00 // Windows 10  

@joto
Copy link
Member Author

joto commented Feb 13, 2017

Okay, if I see this correctly, our options are:

  • Disable the version in our CMAKE config setting altogether
  • Change version setting in our CMAKE config to something like WIN7
  • Disable SEH in Catch using a macro. The microsoft docs on SEH recommend to not use it: "Although Windows and Visual C++ support structured exception handling (SEH), we recommend that you use ISO-standard C++ exception handling because it makes code more portable and flexible."

Any opinions?

joto added a commit that referenced this issue Feb 15, 2017
It is not the job of a generic build script to decide which
version(s) of an OS we are compiling for.

See #196.
@joto
Copy link
Member Author

joto commented Feb 15, 2017

I removed the version setting alltogether. It isn't the job of a generic build configuration to set OS versions to build for.

@joto joto closed this as completed Feb 15, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants