3 |
3 |
|
4 |
4 |
EAPI=8
|
5 |
5 |
|
6 |
|
PYTHON_COMPAT=( python3_{10..11} )
|
|
6 |
PYTHON_COMPAT=( python3_{10..12} )
|
7 |
7 |
|
8 |
|
inherit cmake flag-o-matic python-single-r1
|
|
8 |
inherit cmake python-single-r1 virtualx
|
9 |
9 |
|
10 |
|
DESCRIPTION="Color management framework for visual effects and animation"
|
|
10 |
DESCRIPTION="A color management framework for visual effects and animation"
|
11 |
11 |
HOMEPAGE="https://opencolorio.org https://github.com/AcademySoftwareFoundation/OpenColorIO"
|
12 |
12 |
SRC_URI="https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
13 |
13 |
S="${WORKDIR}/OpenColorIO-${PV}"
|
14 |
14 |
|
15 |
15 |
LICENSE="BSD"
|
16 |
|
# TODO: drop .1 on next SONAME bump (2.1 -> 2.2?) as we needed to nudge it
|
17 |
|
# to force rebuild of consumers due to changing to openexr 3 changing API.
|
18 |
|
SLOT="0/$(ver_cut 1-2).1"
|
19 |
|
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv"
|
20 |
|
IUSE="cpu_flags_x86_sse2 doc opengl python static-libs test"
|
|
16 |
SLOT="0/$(ver_cut 1-2)"
|
|
17 |
# minizip-ng: ~arm ~arm64 ~ppc64 ~riscv
|
|
18 |
# osl: ~riscv
|
|
19 |
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
|
20 |
IUSE="apps cpu_flags_x86_sse2 doc opengl python static-libs test"
|
|
21 |
# TODO: drop opengl? It does nothing without building either the apps or the testsuite
|
21 |
22 |
REQUIRED_USE="
|
|
23 |
apps? ( opengl )
|
22 |
24 |
doc? ( python )
|
23 |
25 |
python? ( ${PYTHON_REQUIRED_USE} )
|
|
26 |
test? ( opengl )
|
24 |
27 |
"
|
25 |
28 |
|
26 |
|
# Restricting tests, bugs #439790 and #447908
|
27 |
|
RESTRICT="test"
|
28 |
|
|
29 |
|
# Works with older OIIO but need to force a version w/ OpenEXR 3
|
30 |
29 |
RDEPEND="
|
31 |
30 |
dev-cpp/pystring
|
32 |
|
dev-python/pybind11
|
33 |
31 |
<dev-cpp/yaml-cpp-0.8.0:=
|
34 |
|
>=dev-libs/imath-3.1.4-r2:=
|
35 |
|
dev-libs/tinyxml
|
36 |
|
opengl? (
|
|
32 |
dev-libs/expat
|
|
33 |
>=dev-libs/imath-3.1.5:=
|
|
34 |
sys-libs/minizip-ng
|
|
35 |
sys-libs/zlib
|
|
36 |
apps? (
|
37 |
37 |
media-libs/lcms:2
|
38 |
|
>=media-libs/openimageio-2.3.12.0-r3:=
|
39 |
|
media-libs/glew:=
|
|
38 |
>=media-libs/openexr-3.1.5:=
|
|
39 |
)
|
|
40 |
opengl? (
|
40 |
41 |
media-libs/freeglut
|
41 |
|
virtual/opengl
|
|
42 |
media-libs/glew:=
|
|
43 |
media-libs/libglvnd
|
|
44 |
)
|
|
45 |
python? (
|
|
46 |
${PYTHON_DEPS}
|
|
47 |
$(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')
|
42 |
48 |
)
|
43 |
|
python? ( ${PYTHON_DEPS} )
|
44 |
49 |
"
|
45 |
50 |
DEPEND="${RDEPEND}"
|
|
51 |
# TODO: OSL tests would need OIIO, leading to a circular dependency. If OIIO
|
|
52 |
# isn't found this test will be skipped (automagic if found?)
|
46 |
53 |
BDEPEND="
|
47 |
54 |
virtual/pkgconfig
|
48 |
55 |
doc? (
|
|
56 |
app-doc/doxygen
|
49 |
57 |
$(python_gen_cond_dep '
|
|
58 |
dev-python/breathe[${PYTHON_USEDEP}]
|
|
59 |
dev-python/recommonmark[${PYTHON_USEDEP}]
|
|
60 |
dev-python/six[${PYTHON_USEDEP}]
|
50 |
61 |
dev-python/sphinx[${PYTHON_USEDEP}]
|
|
62 |
dev-python/sphinx-press-theme[${PYTHON_USEDEP}]
|
|
63 |
dev-python/sphinx-tabs[${PYTHON_USEDEP}]
|
51 |
64 |
dev-python/testresources[${PYTHON_USEDEP}]
|
52 |
65 |
')
|
53 |
66 |
)
|
|
67 |
opengl? (
|
|
68 |
media-libs/freeglut
|
|
69 |
media-libs/glew:=
|
|
70 |
media-libs/libglvnd
|
|
71 |
)
|
54 |
72 |
"
|
|
73 |
# test? (
|
|
74 |
# >=media-libs/openimageio-2.2.14
|
|
75 |
# >=media-libs/osl-1.11
|
|
76 |
# )
|
|
77 |
# "
|
|
78 |
|
|
79 |
# Restricting tests, bugs #439790 and #447908
|
|
80 |
RESTRICT="!test? ( test )"
|
55 |
81 |
|
56 |
82 |
PATCHES=(
|
57 |
|
"${FILESDIR}"/${PN}-2.1.1-gcc12.patch
|
58 |
|
"${FILESDIR}"/${PN}-2.1.2-musl-strtol.patch
|
|
83 |
"${FILESDIR}/${PN}-2.2.1-adjust-python-installation.patch"
|
|
84 |
"${FILESDIR}/${PN}-2.2.1-support-minizip-ng-4.patch"
|
59 |
85 |
)
|
60 |
86 |
|
61 |
87 |
pkg_setup() {
|
... | ... | |
65 |
91 |
src_prepare() {
|
66 |
92 |
cmake_src_prepare
|
67 |
93 |
|
68 |
|
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
|
69 |
|
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
|
70 |
|
|
71 |
94 |
# Avoid automagic test dependency on OSL, bug #833933
|
72 |
95 |
# Can cause problems during e.g. OpenEXR unsplitting migration
|
73 |
96 |
cmake_run_in tests cmake_comment_add_subdirectory osl
|
... | ... | |
78 |
101 |
# - Truelight and Nuke are not in portage for now, so their support are disabled
|
79 |
102 |
# - Java bindings was not tested, so disabled
|
80 |
103 |
# Notes:
|
81 |
|
# - OpenImageIO is required for building ociodisplay and ocioconvert (USE opengl)
|
|
104 |
# - OpenImageIO or OpenEXR (default) is required for building ociodisplay and
|
|
105 |
# ocioconvert (USE opengl)
|
82 |
106 |
# - OpenGL, GLUT and GLEW is required for building ociodisplay (USE opengl)
|
83 |
107 |
local mycmakeargs=(
|
84 |
|
-DOCIO_USE_OPENEXR_HALF=OFF
|
85 |
|
-DOCIO_BUILD_STATIC=$(usex static-libs)
|
|
108 |
-DBUILD_SHARED_LIBS=$(usex !static-libs)
|
|
109 |
-DOCIO_BUILD_APPS=$(usex apps)
|
86 |
110 |
-DOCIO_BUILD_DOCS=$(usex doc)
|
87 |
|
-DOCIO_BUILD_APPS=$(usex opengl)
|
88 |
|
-DOCIO_BUILD_PYTHON=$(usex python)
|
89 |
|
-DOCIO_PYTHON_VERSION="${EPYTHON/python/}"
|
|
111 |
-DOCIO_BUILD_FROZEN_DOCS=$(usex doc)
|
|
112 |
-DOCIO_BUILD_GPU_TESTS=$(usex test)
|
90 |
113 |
-DOCIO_BUILD_JAVA=OFF
|
91 |
|
-DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2)
|
|
114 |
-DOCIO_BUILD_PYTHON=$(usex python)
|
92 |
115 |
-DOCIO_BUILD_TESTS=$(usex test)
|
93 |
|
-DOCIO_BUILD_GPU_TESTS=$(usex test)
|
94 |
|
-DOCIO_BUILD_FROZEN_DOCS=$(usex doc)
|
95 |
116 |
-DOCIO_INSTALL_EXT_PACKAGES=NONE
|
|
117 |
-DOCIO_USE_OIIO_CMAKE_CONFIG=ON
|
|
118 |
-DOCIO_USE_SSE=$(usex cpu_flags_x86_sse2)
|
|
119 |
)
|
|
120 |
use python && mycmakeargs+=(
|
|
121 |
-DOCIO_PYTHON_VERSION="${EPYTHON/python/}"
|
|
122 |
-DPython_EXECUTABLE="${PYTHON}"
|
|
123 |
-DPYTHON_VARIANT_PATH=$(python_get_sitedir)
|
96 |
124 |
)
|
97 |
|
|
98 |
|
# We need this to work around asserts that can trigger even in proper use cases.
|
99 |
|
# See https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1235
|
100 |
|
append-flags -DNDEBUG
|
101 |
125 |
|
102 |
126 |
cmake_src_configure
|
103 |
127 |
}
|
|
128 |
|
|
129 |
src_test() {
|
|
130 |
virtx cmake_src_test
|
|
131 |
}
|