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

Reply via email to