(Wanted to keep previous post compact so I didn’t go into the rationales.)
- Python is only needed to generate some files. We could put these generated files into
extern/ (at least if they are system independent) so we wouldn’t require Python for that.
- The loader depends on JsonCpp (<8k LOC)
- The build instructions for the SDK do list some further dependencies. But it seems like most are only required for the demo applications, not the OpenXR loader (the part we care about).
- My guess is that the SDK will be provided by common distros in the not too distant future. It’s too early to tell though, so I’m really guessing.
- We only need the loader lib (<9k LOC) and the OpenXR headers (~2k LOC), not the entire SDK.
As @LazyDodo noticed, I placed the generated files into
extern/, not the original code (and resources) that generated it. That would involve XML parsing and Python script execution at compile time. And indeed, it wasn’t trivial to get that all up and running. So I share the concern that updating this isn’t going to be straight forward at all. Especially if the Khronos/SDK guys decide to change the build process.
So from my experience of trying to get this to compile/link, I woudln’t suggest the bundled sources approach.
find_packages() OTOH seems pretty fine, esp. given the tools we have in place now (
install_deps.sh, prebuilt libs, etc.). And there’s a good chance the SDK will be added to distro packages.