AcademySoftwareFoundation / OpenImageIO

Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.
https://openimageio.readthedocs.org
Apache License 2.0
1.95k stars 582 forks source link

[FEATURE REQUEST] Add self-building abilities for more dependencies #4387

Open lgritz opened 3 weeks ago

lgritz commented 3 weeks ago

We recently added (in PR #4242) the ability for OIIO's CMake build system to automatically download and build certain dependencies if they are not found.

(Note: It doesn't happen by default, it requires OpenImageIO_BUILD_MISSING_DEPS to be set to a comma-separated list of deps to self-build (or "all"). Also, OpenImageIO_BUILD_LOCAL_DEPS can be use to force listed dependencies to be built in this way, even if found.)

The original PR #4242 set this up for Imath, OpenEXR, fmt, Robinmap, and OpenColorIO. Subsequent PRs added the self-build ability for Freetype (#4283), libtiff and its libdeflate dependency (#4296), pybind11 (#4297), and improved that of OpenColorIO (#4367).

It would be great to have this ability added for other dependencies! Each can be tackled separately, and each is therefore a fairly self-contained task that doesn't require any prior deep knowledge of the OIIO internals, and could be a good first issue or Dev Days project.

The other high priority dependencies that would be good to add these self-build scripts for are:

If you'd like to work on one of these, just comment below 👇 and say which one you will work on so that two people aren't trying to do the same one. Also feel free to ask below if you have any questions about what needs to be done, where to find examples of the ones that already work, or anything else that would help you get started.

zachlewis commented 2 weeks ago

I've actually already done libjpeg-turbo -- was necessary for building with cibuildwheel on the manylinux images. I'll submit a PR for that.