diff options
author | Sam James <sam@gentoo.org> | 2023-10-27 03:58:59 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-10-27 03:58:59 +0100 |
commit | 4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc (patch) | |
tree | 7944c5920aa6d3d3980c46d0aad2f058c5f89c4b /media-libs/opencolorio | |
parent | Revert "media-libs/osl -> media-libs/OpenShadingLanguage: rename" (diff) | |
download | gentoo-4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc.tar.gz gentoo-4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc.tar.bz2 gentoo-4a5e328e8c98dcbc76a55f1797169a5c1b2b5ecc.zip |
Revert "media-libs/opencolorio -> media-libs/OpenColorIO: rename"
This reverts commit 9e8279a45bf09e9d583ec88efa266c47afdb3237.
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-libs/opencolorio')
10 files changed, 562 insertions, 0 deletions
diff --git a/media-libs/opencolorio/Manifest b/media-libs/opencolorio/Manifest new file mode 100644 index 000000000000..fbe8b3a98232 --- /dev/null +++ b/media-libs/opencolorio/Manifest @@ -0,0 +1,3 @@ +DIST opencolorio-2.1.3.tar.gz 11024701 BLAKE2B bcd1eb6a74260f451e49ef40e729bfc4c354ab255d96c261fbf865c586f285fe876ed54b05276f3b6b25ece4fd261672fe1dd519041ffad77d7c78efc8cf161d SHA512 b26fcfa3ea12ab6e4b019a13ce79ebcfd215c674acb348f2d9f85f749b2a5beccd395ed1cc9954e4b3cb83a160b24a8d7d81994ac1d9ea8cfe074b81d6b8a061 +DIST opencolorio-2.2.1.tar.gz 11336775 BLAKE2B b463d6a0a7e7fec0a890fa8a0cd06ed269f925c5986dfb82eb53728a09d884c89e6c4dfe112706ce27351d4440909ff9680387028d1dc887e7d866b30c39c54f SHA512 d5f3a4b5bd661af7336c015d07e0feccb286464a08239a3c259a97217001161e7571f5137475fc2f4d1b9af6381bbfa03c0b60f41de282f114307961b8d84fc9 +DIST opencolorio-2.3.0.tar.gz 11406998 BLAKE2B 0e62e43de076a712f68b68b91c9908bc9050316e3500e0924fafb08a3356ce361953f49dfd1eb022eeada11e499653833a48a22a4ba593504617c1c61b16d488 SHA512 cdf20ca6c85b1d70244d8532d010344f1cf85be6a116d831e83ea04d7c47a961049691e6a241e9a7f632d864df57a4bccb68084e27187ec8a05f1fdf344824d7 diff --git a/media-libs/opencolorio/files/opencolorio-2.1.1-gcc12.patch b/media-libs/opencolorio/files/opencolorio-2.1.1-gcc12.patch new file mode 100644 index 000000000000..0bf00862e51b --- /dev/null +++ b/media-libs/opencolorio/files/opencolorio-2.1.1-gcc12.patch @@ -0,0 +1,14 @@ +https://src.fedoraproject.org/rpms/OpenColorIO/raw/rawhide/f/OCIO-strlen.patch +https://github.com/AcademySoftwareFoundation/OpenColorIO/commit/4fa94918c2cf572dcaf61ca07016f3b5c231c14c +https://bugs.gentoo.org/841479 +--- a/src/OpenColorIO/FileRules.cpp ++++ b/src/OpenColorIO/FileRules.cpp +@@ -3,6 +3,7 @@ + + #include <algorithm> + #include <cctype> ++#include <cstring> + #include <map> + #include <regex> + #include <sstream> + diff --git a/media-libs/opencolorio/files/opencolorio-2.1.2-musl-strtol.patch b/media-libs/opencolorio/files/opencolorio-2.1.2-musl-strtol.patch new file mode 100644 index 000000000000..87059614ff03 --- /dev/null +++ b/media-libs/opencolorio/files/opencolorio-2.1.2-musl-strtol.patch @@ -0,0 +1,27 @@ +# Fix strtol_l missing on musl. On musl libc use strtol +# Taken from Alpine Linux, please refer: +# https://git.alpinelinux.org/aports/tree/community/opencolorio/0002-fix-strtol.patch?id=dd7ba461824ab0618f0493cbb450b221fdc2513c +# Please refer: https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1624 +--- a/src/utils/NumberUtils.h ++++ b/src/utils/NumberUtils.h +@@ -68,7 +68,7 @@ really_inline from_chars_result from_chars(const char *first, const char *last, + tempval = ::strtod_l(first, &endptr, loc.local); + #endif + +- if (errno != 0) ++ if (errno != 0 && errno != EINVAL) + { + return {first + (endptr - first), std::errc::result_out_of_range}; + } +@@ -139,8 +139,10 @@ really_inline from_chars_result from_chars(const char *first, const char *last, + long int + #ifdef _WIN32 + tempval = _strtol_l(first, &endptr, 0, loc.local); +-#else ++#elif defined(__GLIBC__) + tempval = ::strtol_l(first, &endptr, 0, loc.local); ++#else ++ tempval = ::strtol(first, &endptr, 0); + #endif + + if (errno != 0) diff --git a/media-libs/opencolorio/files/opencolorio-2.2.1-adjust-python-installation.patch b/media-libs/opencolorio/files/opencolorio-2.2.1-adjust-python-installation.patch new file mode 100644 index 000000000000..6f023310eb8d --- /dev/null +++ b/media-libs/opencolorio/files/opencolorio-2.2.1-adjust-python-installation.patch @@ -0,0 +1,17 @@ +From 5ca483b67404a9ba2230f2f03ff3255eceb3d2bc Mon Sep 17 00:00:00 2001 +From: Bernd Waibel <waebbl-gentoo@posteo.net> +Date: Sun, 19 Feb 2023 23:14:44 +0100 +Subject: [PATCH] [Gentoo-specific] adjust python installation + +Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net> +--- a/src/bindings/python/CMakeLists.txt ++++ b/src/bindings/python/CMakeLists.txt +@@ -230,7 +230,7 @@ target_compile_definitions(PyOpenColorIO + if(WIN32) + set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/site-packages") + else() +- set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages") ++ set(_Python_VARIANT_PATH "${CMAKE_INSTALL_PREFIX}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages") + endif() + + # Create an internal global variable to access it in another scope but not publicly visible diff --git a/media-libs/opencolorio/files/opencolorio-2.2.1-support-minizip-ng-4.patch b/media-libs/opencolorio/files/opencolorio-2.2.1-support-minizip-ng-4.patch new file mode 100644 index 000000000000..8ee4ceaf9970 --- /dev/null +++ b/media-libs/opencolorio/files/opencolorio-2.2.1-support-minizip-ng-4.patch @@ -0,0 +1,92 @@ +# From https://github.com/AcademySoftwareFoundation/OpenColorIO/pull/1806 +From d15ccddd4d20d66749577d7444de861112f6864c Mon Sep 17 00:00:00 2001 +From: Brad Smith <brad@comstyle.com> +Date: Thu, 29 Jun 2023 09:57:28 -0400 +Subject: [PATCH] Add support for minizip-ng 4 API + +Signed-off-by: Brad Smith <brad@comstyle.com> +--- + src/OpenColorIO/OCIOZArchive.cpp | 22 +++++++++++++++++++++- + src/apps/ocioarchive/main.cpp | 4 ++++ + 2 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/src/OpenColorIO/OCIOZArchive.cpp b/src/OpenColorIO/OCIOZArchive.cpp +index 85fc7bb76..24d836e95 100644 +--- a/src/OpenColorIO/OCIOZArchive.cpp ++++ b/src/OpenColorIO/OCIOZArchive.cpp +@@ -225,7 +225,11 @@ void archiveConfig(std::ostream & ostream, const Config & config, const char * c + std::string configStr = ss.str(); + + // Write zip to memory stream. ++#if MZ_VERSION_BUILD >= 040000 ++ write_mem_stream = mz_stream_mem_create(); ++#else + mz_stream_mem_create(&write_mem_stream); ++#endif + mz_stream_mem_set_grow_size(write_mem_stream, 128 * 1024); + mz_stream_open(write_mem_stream, NULL, MZ_OPEN_MODE_CREATE); + +@@ -237,7 +241,11 @@ void archiveConfig(std::ostream & ostream, const Config & config, const char * c + options.compress_level = ArchiveCompressionLevels::BEST; + + // Create the writer handle. ++#if MZ_VERSION_BUILD >= 040000 ++ archiver = mz_zip_writer_create(); ++#else + mz_zip_writer_create(&archiver); ++#endif + + // Archive options. + // Compression method +@@ -332,7 +340,11 @@ void ExtractOCIOZArchive(const char * archivePath, const char * destination) + std::string outputDestination = pystring::os::path::normpath(destination); + + // Create zip reader. ++#if MZ_VERSION_BUILD >= 040000 ++ extracter = mz_zip_reader_create(); ++#else + mz_zip_reader_create(&extracter); ++#endif + + MinizipNgHandlerGuard extracterGuard(extracter, false, false); + +@@ -450,7 +462,11 @@ std::vector<uint8_t> getFileStringFromArchiveFile(const std::string & filepath, + std::vector<uint8_t> buffer; + + // Create the reader object. ++#if MZ_VERSION_BUILD >= 040000 ++ reader = mz_zip_reader_create(); ++#else + mz_zip_reader_create(&reader); ++#endif + + MinizipNgHandlerGuard extracterGuard(reader, false, true); + +@@ -510,7 +526,11 @@ void getEntriesMappingFromArchiveFile(const std::string & archivePath, + void *reader = NULL; + + // Create the reader object. ++#if MZ_VERSION_BUILD >= 040000 ++ reader = mz_zip_reader_create(); ++#else + mz_zip_reader_create(&reader); ++#endif + + MinizipNgHandlerGuard extracterGuard(reader, false, false); + +diff --git a/src/apps/ocioarchive/main.cpp b/src/apps/ocioarchive/main.cpp +index 190cadee5..68054a6da 100644 +--- a/src/apps/ocioarchive/main.cpp ++++ b/src/apps/ocioarchive/main.cpp +@@ -235,7 +235,11 @@ int main(int argc, const char **argv) + } + + std::string path = args[0]; ++#if MZ_VERSION_BUILD >= 040000 ++ reader = mz_zip_reader_create(); ++#else + mz_zip_reader_create(&reader); ++#endif + struct tm tmu_date; + + err = mz_zip_reader_open_file(reader, path.c_str()); diff --git a/media-libs/opencolorio/files/opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch b/media-libs/opencolorio/files/opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch new file mode 100644 index 000000000000..924ed2092881 --- /dev/null +++ b/media-libs/opencolorio/files/opencolorio-2.3.0-support-yaml-cpp-0.8.0.patch @@ -0,0 +1,21 @@ +From: Bernd Feige <Bernd.Feige@gmx.net> +https://bugs.gentoo.org/914716#c12 + +Index: OpenColorIO-2.3.0/share/cmake/modules/Findyaml-cpp.cmake +=================================================================== +--- OpenColorIO-2.3.0.orig/share/cmake/modules/Findyaml-cpp.cmake ++++ OpenColorIO-2.3.0/share/cmake/modules/Findyaml-cpp.cmake +@@ -50,7 +50,12 @@ if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUA + endif() + + if(yaml-cpp_FOUND) +- get_target_property(yaml-cpp_LIBRARY yaml-cpp LOCATION) ++ if(TARGET yaml-cpp::yaml-cpp) ++ # yaml-cpp >= 0.8 ++ get_target_property(yaml-cpp::yaml-cpp_LIBRARY yaml-cpp::yaml-cpp LOCATION) ++ else() ++ get_target_property(yaml-cpp_LIBRARY yaml-cpp LOCATION) ++ endif() + else() + + # As yaml-cpp-config.cmake search fails, search an installed library diff --git a/media-libs/opencolorio/metadata.xml b/media-libs/opencolorio/metadata.xml new file mode 100644 index 000000000000..13813a4b0e7b --- /dev/null +++ b/media-libs/opencolorio/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>negril.nx+gentoo@gmail.com</email> + <name>Paul Zander</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription lang="en"> + OpenColorIO (OCIO) is a complete color management solution geared + towards motion picture production with an emphasis on visual effects + and computer animation. + </longdescription> + <use> + <flag name="apps">Build the OCIO command line apps</flag> + </use> + <upstream> + <remote-id type="github">AcademySoftwareFoundation/OpenColorIO</remote-id> + </upstream> +</pkgmetadata> diff --git a/media-libs/opencolorio/opencolorio-2.1.3.ebuild b/media-libs/opencolorio/opencolorio-2.1.3.ebuild new file mode 100644 index 000000000000..ca3439486480 --- /dev/null +++ b/media-libs/opencolorio/opencolorio-2.1.3.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) + +inherit cmake flag-o-matic python-single-r1 + +DESCRIPTION="Color management framework for visual effects and animation" +HOMEPAGE="https://opencolorio.org https://github.com/AcademySoftwareFoundation/OpenColorIO" +SRC_URI="https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/OpenColorIO-${PV}" + +LICENSE="BSD" +# TODO: drop .1 on next SONAME bump (2.1 -> 2.2?) as we needed to nudge it +# to force rebuild of consumers due to changing to openexr 3 changing API. +SLOT="0/$(ver_cut 1-2).1" +KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv" +IUSE="cpu_flags_x86_sse2 doc opengl python static-libs test" +REQUIRED_USE=" + doc? ( python ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +# Restricting tests, bugs #439790 and #447908 +RESTRICT="test" + +# Works with older OIIO but need to force a version w/ OpenEXR 3 +RDEPEND=" + dev-cpp/pystring + dev-python/pybind11 + <dev-cpp/yaml-cpp-0.8.0:= + >=dev-libs/imath-3.1.4-r2:= + dev-libs/tinyxml + opengl? ( + media-libs/lcms:2 + >=media-libs/OpenImageIO-2.3.12.0-r3:= + media-libs/glew:= + media-libs/freeglut + virtual/opengl + ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( + $(python_gen_cond_dep ' + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/testresources[${PYTHON_USEDEP}] + ') + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-2.1.1-gcc12.patch + "${FILESDIR}"/${PN}-2.1.2-musl-strtol.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + sed -i -e "s|LIBRARY DESTINATION lib|LIBRARY DESTINATION $(get_libdir)|g" {,src/bindings/python/,src/OpenColorIO/,src/libutils/oiiohelpers/,src/libutils/oglapphelpers/}CMakeLists.txt || die + sed -i -e "s|ARCHIVE DESTINATION lib|ARCHIVE DESTINATION $(get_libdir)|g" {,src/bindings/python/,src/OpenColorIO/,src/libutils/oiiohelpers/,src/libutils/oglapphelpers/}CMakeLists.txt || die + + # Avoid automagic test dependency on OSL, bug #833933 + # Can cause problems during e.g. OpenEXR unsplitting migration + cmake_run_in tests cmake_comment_add_subdirectory osl +} + +src_configure() { + # Missing features: + # - Truelight and Nuke are not in portage for now, so their support are disabled + # - Java bindings was not tested, so disabled + # Notes: + # - OpenImageIO is required for building ociodisplay and ocioconvert (USE opengl) + # - OpenGL, GLUT and GLEW is required for building ociodisplay (USE opengl) + local mycmakeargs=( + -DOCIO_USE_OPENEXR_HALF=OFF + -DOCIO_BUILD_STATIC=$(usex static-libs) + -DOCIO_BUILD_DOCS=$(usex doc) + -DOCIO_BUILD_APPS=$(usex opengl) + -DOCIO_BUILD_PYTHON=$(usex python) + -DOCIO_PYTHON_VERSION="${EPYTHON/python/}" + -DOCIO_BUILD_JAVA=OFF + -DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2) + -DOCIO_BUILD_TESTS=$(usex test) + -DOCIO_BUILD_GPU_TESTS=$(usex test) + -DOCIO_BUILD_FROZEN_DOCS=$(usex doc) + -DOCIO_INSTALL_EXT_PACKAGES=NONE + ) + + # We need this to work around asserts that can trigger even in proper use cases. + # See https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1235 + append-flags -DNDEBUG + + cmake_src_configure +} diff --git a/media-libs/opencolorio/opencolorio-2.2.1.ebuild b/media-libs/opencolorio/opencolorio-2.2.1.ebuild new file mode 100644 index 000000000000..b18e4c59f212 --- /dev/null +++ b/media-libs/opencolorio/opencolorio-2.2.1.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake python-single-r1 virtualx + +DESCRIPTION="A color management framework for visual effects and animation" +HOMEPAGE="https://opencolorio.org https://github.com/AcademySoftwareFoundation/OpenColorIO" +SRC_URI="https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/OpenColorIO-${PV}" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2)" +# minizip-ng: ~arm ~arm64 ~ppc64 ~riscv +# osl: ~riscv +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="apps cpu_flags_x86_sse2 doc opengl python static-libs test" +# TODO: drop opengl? It does nothing without building either the apps or the testsuite +REQUIRED_USE=" + apps? ( opengl ) + doc? ( python ) + python? ( ${PYTHON_REQUIRED_USE} ) + test? ( opengl ) +" + +RDEPEND=" + dev-cpp/pystring + <dev-cpp/yaml-cpp-0.8.0:= + dev-libs/expat + >=dev-libs/imath-3.1.5:= + sys-libs/minizip-ng + sys-libs/zlib + apps? ( + media-libs/lcms:2 + >=media-libs/openexr-3.1.5:= + ) + opengl? ( + media-libs/freeglut + media-libs/glew:= + media-libs/libglvnd + ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]') + ) +" +DEPEND="${RDEPEND}" +# TODO: OSL tests would need OIIO, leading to a circular dependency. If OIIO +# isn't found this test will be skipped (automagic if found?) +BDEPEND=" + virtual/pkgconfig + doc? ( + app-doc/doxygen + $(python_gen_cond_dep ' + dev-python/breathe[${PYTHON_USEDEP}] + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-press-theme[${PYTHON_USEDEP}] + dev-python/sphinx-tabs[${PYTHON_USEDEP}] + dev-python/testresources[${PYTHON_USEDEP}] + ') + ) + opengl? ( + media-libs/freeglut + media-libs/glew:= + media-libs/libglvnd + ) +" +# test? ( +# >=media-libs/OpenImageIO-2.2.14 +# >=media-libs/osl-1.11 +# ) +# " + +# Restricting tests, bugs #439790 and #447908 +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/${PN}-2.2.1-adjust-python-installation.patch" + "${FILESDIR}/${PN}-2.2.1-support-minizip-ng-4.patch" +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + # Avoid automagic test dependency on OSL, bug #833933 + # Can cause problems during e.g. OpenEXR unsplitting migration + cmake_run_in tests cmake_comment_add_subdirectory osl +} + +src_configure() { + # Missing features: + # - Truelight and Nuke are not in portage for now, so their support are disabled + # - Java bindings was not tested, so disabled + # Notes: + # - OpenImageIO or OpenEXR (default) is required for building ociodisplay and + # ocioconvert (USE opengl) + # - OpenGL, GLUT and GLEW is required for building ociodisplay (USE opengl) + local mycmakeargs=( + -DBUILD_SHARED_LIBS=$(usex !static-libs) + -DOCIO_BUILD_APPS=$(usex apps) + -DOCIO_BUILD_DOCS=$(usex doc) + -DOCIO_BUILD_FROZEN_DOCS=$(usex doc) + -DOCIO_BUILD_GPU_TESTS=$(usex test) + -DOCIO_BUILD_JAVA=OFF + -DOCIO_BUILD_PYTHON=$(usex python) + -DOCIO_BUILD_TESTS=$(usex test) + -DOCIO_INSTALL_EXT_PACKAGES=NONE + -DOCIO_USE_OIIO_CMAKE_CONFIG=ON + -DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2) + ) + use python && mycmakeargs+=( + -DOCIO_PYTHON_VERSION="${EPYTHON/python/}" + -DPython_EXECUTABLE="${PYTHON}" + -DPYTHON_VARIANT_PATH=$(python_get_sitedir) + ) + + cmake_src_configure +} + +src_test() { + virtx cmake_src_test +} diff --git a/media-libs/opencolorio/opencolorio-2.3.0.ebuild b/media-libs/opencolorio/opencolorio-2.3.0.ebuild new file mode 100644 index 000000000000..c6af877ca4f3 --- /dev/null +++ b/media-libs/opencolorio/opencolorio-2.3.0.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake python-single-r1 virtualx + +DESCRIPTION="A color management framework for visual effects and animation" +HOMEPAGE="https://opencolorio.org https://github.com/AcademySoftwareFoundation/OpenColorIO" +SRC_URI="https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/OpenColorIO-${PV}" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2)" +# minizip-ng: ~arm ~arm64 ~ppc64 ~riscv +# osl: ~riscv +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="apps cpu_flags_x86_sse2 doc opengl python static-libs test" +# TODO: drop opengl? It does nothing without building either the apps or the testsuite +REQUIRED_USE=" + apps? ( opengl ) + doc? ( python ) + python? ( ${PYTHON_REQUIRED_USE} ) + test? ( opengl ) +" + +RDEPEND=" + dev-cpp/pystring + >=dev-cpp/yaml-cpp-0.7.0:= + dev-libs/expat + >=dev-libs/imath-3.1.5:= + sys-libs/minizip-ng + sys-libs/zlib + apps? ( + media-libs/lcms:2 + >=media-libs/openexr-3.1.5:= + ) + opengl? ( + media-libs/freeglut + media-libs/glew:= + media-libs/libglvnd + ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]') + ) +" +DEPEND="${RDEPEND}" +# TODO: OSL tests would need OIIO, leading to a circular dependency. If OIIO +# isn't found this test will be skipped (automagic if found?) +BDEPEND=" + virtual/pkgconfig + doc? ( + app-doc/doxygen + $(python_gen_cond_dep ' + dev-python/breathe[${PYTHON_USEDEP}] + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-press-theme[${PYTHON_USEDEP}] + dev-python/sphinx-tabs[${PYTHON_USEDEP}] + dev-python/testresources[${PYTHON_USEDEP}] + ') + ) + opengl? ( + media-libs/freeglut + media-libs/glew:= + media-libs/libglvnd + ) +" +# test? ( +# >=media-libs/OpenImageIO-2.2.14 +# >=media-libs/osl-1.11 +# ) +# " + +# Restricting tests, bugs #439790 and #447908 +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/${PN}-2.2.1-adjust-python-installation.patch" + "${FILESDIR}/${PN}-2.3.0-support-yaml-cpp-0.8.0.patch" +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + # Avoid automagic test dependency on OSL, bug #833933 + # Can cause problems during e.g. OpenEXR unsplitting migration + cmake_run_in tests cmake_comment_add_subdirectory osl +} + +src_configure() { + # Missing features: + # - Truelight and Nuke are not in portage for now, so their support are disabled + # - Java bindings was not tested, so disabled + # Notes: + # - OpenImageIO or OpenEXR (default) is required for building ociodisplay and + # ocioconvert (USE opengl) + # - OpenGL, GLUT and GLEW is required for building ociodisplay (USE opengl) + local mycmakeargs=( + "-DBUILD_SHARED_LIBS=$(usex !static-libs)" + "-DOCIO_BUILD_APPS=$(usex apps)" + "-DOCIO_BUILD_DOCS=$(usex doc)" + "-DOCIO_BUILD_FROZEN_DOCS=$(usex doc)" + "-DOCIO_BUILD_GPU_TESTS=$(usex test)" + "-DOCIO_BUILD_JAVA=OFF" + "-DOCIO_BUILD_PYTHON=$(usex python)" + "-DOCIO_BUILD_TESTS=$(usex test)" + "-DOCIO_INSTALL_EXT_PACKAGES=NONE" + "-DOCIO_USE_OIIO_CMAKE_CONFIG=ON" + "-DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2)" + ) + use python && mycmakeargs+=( + "-DOCIO_PYTHON_VERSION=${EPYTHON/python/}" + "-DPython_EXECUTABLE=${PYTHON}" + "-DPYTHON_VARIANT_PATH=$(python_get_sitedir)" + ) + + cmake_src_configure +} + +src_test() { + virtx cmake_src_test +} |