I am happy to hear that you want to make building OpenImageIO on Windows easier. I have to say that its dependencies are sometimes extremely annoying. I have rarely encountered build scripts as broken as the ones in some of these libraries.
Time to shamelessly plug some of my own work: I have started to hack on a tool that I call MetaBuild (just another generic name, I know). I've written some preliminary documentation on it here: http://www.bitbucket.org/gmueckl/metabuild . The inspiration came to me when I was forced to recreate my exact development environment on multiple computers with different operating systems[1]. So it does not just coordinate long chains of build steps like a package manager, but also creates source checkouts that you can directly use for development. In other words, once you've written a description file (hard) and run that tool (simple), you should be able to jump in and start coding without any additional fuss. OpenImageIO has so far been my hardest test case for MetaBuild. As I write this, I do not yet get a complete build of OpenImageIO with even minimal dependencies using MetaBuild. But I am very close. Unfortunately, I need to patch some dependencies to get them to build at all. A lot of open source just cannot be built on Windows out of the box, even if the code itself contains full platform support. What are your thoughts on the approach that I'm taking here? Would you consider using a tool like MetaBuild at all[2]? Gregor [1] MetaBuild compiles and runs fine with Mono on Linux. This is fully supported. [2] I cannot unconditionally recommend MetaBuild itself just yet. It works, but it has lots of remaining rough edges. Prepare for adventures if you want to give it a try. You have been warned! ________________________________________ From: Oiio-dev <[email protected]> on behalf of Larry Gritz <[email protected]> Sent: 31 December 2016 06:28 To: OpenImageIO developers Subject: [Oiio-dev] Easier Windows builds Brainstorm time... It continues to be difficult, especially for newbies, to build OIIO from scratch on Windows. Building the dependencies are a big part of the hassle. This is exacerbated by my lack of experience with and access to a Windows machine (though I did manage to eke out an Appveyor build script, which despite being very clunky has drastically cut down the frequency with which I break the build on Windows). Robert has proposed enhancements that allow a build of many critical dependencies using Conan (https://conan.io/) here in this PR: https://github.com/OpenImageIO/oiio/pull/1593 I want to put that PR on hold slightly to allow for wider discussion here of the alternatives, so that we can collectively decide the best way to achieve this. (And by "we", I mean consensus of the stakeholders who depend on Windows builds and know more than I do about how to achieve it. I think the two goals, which may or may not have identical solutions, are: (a) for people who need to use OIIO source code (for example, developers/contributors) to have an easy way to get/install OIIO's build-time dependencies; and (b) for people who only need OIIO binaries and libraries to be able to install both the dependencies and OIIO itself as easily as possible (ideally just binaries, or if from source, then as close as possible to a foolproof one-command download, build, and install of everything). Possible systems/strategies include: https://conan.io/ Conan package manager https://github.com/Microsoft/vcpkg Microsoft Vcpkg https://github.com/meshula/mkvfx Nick Porcino's "mkvfx" project Are there others to also consider? Maybe take a look at all of these and see what you guys think about the relative merits of supporting/using one or more of them as our strategy for easier OIIO builds and dependency installation? -- Larry Gritz [email protected] _______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org _______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
