support for MinGW and cross compilation #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch modifies the cmake build system with two objectives: to support compilation under MinGW and cross-compilation from a different OS.
The current build uses the variables of the host system instead of the target. Instead, I rely on cmake's system name. It is the reliable method used by the internal modules of cmake.
I detect MinGW when the compiler identifies as either gcc or clang, and in that case, I choose to disable the standalone version because the environment lacks the necessary headers.
I have also included some necessary source code modifications. Lowercase includes are needed for a case sensitive filesystem. I have defined WIN32_LEAN_AND_MEAN to prevent conflicts of type names between expat and the winapi, and I have added 2 inclusions made necessary by this change.