Fix build with MSYS2: require --use-windows-headers before including win... #118
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.
...def.h
Otherwise, you pull in a lot more than just typedefs for DWORD,
including conflicting DELETE macros, etc.
The recent change to use existing Windows definitions of DWORD, etc. might work fine for the RDiscount team with their toolchain, but when using a (pretty tame) MSYS2/MinGW64-i686 toolchain, that Windows header pulls in a lot of mess, and I ended up with enough warnings that I wasn't confident the resulting binaries would work as intended.
So, I've placed that behavior behind a configure flag (since the previous behavior worked for me).
I've also improved that alternate behavior by making sure that if we're using WinDef.h, we still have a substitution for
@DWORD@
. Rather than forcing a windows header intomkdio.h
I opted to let the existing type detection compute the correct substitution, just not the definition, especially since the configure system seemed to be designed to make that possible/easy.