KhronosGroup / Vulkan-LoaderAndValidationLayers

**Deprecated repository** for Vulkan loader and validation layers
Apache License 2.0
414 stars 172 forks source link

Allow building with MinGW-w64 #1544

Open DragoonX6 opened 7 years ago

DragoonX6 commented 7 years ago

I've been looking around a bit on the internet and I saw that there is no MinGW-w64 build of the Vulkan SDK. People have been suggesting using tools like dlltool to generate import libraries so you can at least link to it.

As this is far from optimal and stops people from doing source level debugging, I've been trying to get it to build with MSYS2's MinGW-w64 clang build. This was relatively painless, however I did encounter a few minor issues, which I'll go into more detail below. I did not check out the master branch, but the latest SDK tag, so I have no idea if master will be easier or harder to get working.

Most of the issues I encountered were missing casts for C++ compilers and some naive #ifdefs. My current efforts have been slightly hacky, I've just been trying to get it to build, but I could submit it as a reference PR if you like. Otherwise I could put in more effort to make a proper PR, as I haven't been building the tests either. The tests don't build because Vulkan is shipping its own gtest and as far as I know MSYS2's gtest has been patched to work with MinGW-w64.

karl-lunarg commented 7 years ago

Note that we build this repo with clang in the Travis CI. So the repo should be pretty close to building with some other clang.

Yes, please submit the changes in whatever form you'd like. A "proper" PR would be easier for us to deal with, but if there are not too many changes, any form will do. If we can apply the changes to help out MinGW-w64 clang builds without breaking anything else, we'll be glad to make those changes. But at this time, we're not planning on building or testing in this environment ourselves.

karl-lunarg commented 7 years ago

@DragoonX6 : Did PR 767 on glslang resolve your issue with building this repo? It is easy to imagine that would be the case, since running the update_external_sources script builds glslang.

Please close this issue if the glslang fix solves your problem here. Else, please let us know if anything else needs fixing.

Never mind - I found the PR.

DragoonX6 commented 7 years ago

@karl-lunarg Updated it with a new PR #1923. Please review it.