# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 FONT_PN=OpenImageIO PYTHON_COMPAT=( python3_{8..10} ) TEST_OIIO_IMAGE_COMMIT="b85d7a3a10a3256b50325ad310c33e7f7cf2c6cb" TEST_OEXR_IMAGE_COMMIT="f17e353fbfcde3406fe02675f4d92aeae422a560" inherit cmake font python-single-r1 flag-o-matic DESCRIPTION="A library for reading and writing images" HOMEPAGE="https://sites.google.com/site/openimageio/ https://github.com/OpenImageIO" SRC_URI="https://github.com/OpenImageIO/oiio/archive/v${PV}.tar.gz -> ${P}.tar.gz" SRC_URI+=" test? ( https://github.com/OpenImageIO/oiio-images/archive/${TEST_OIIO_IMAGE_COMMIT}.tar.gz -> ${PN}-oiio-test-image-${TEST_OIIO_IMAGE_COMMIT}.tar.gz https://github.com/AcademySoftwareFoundation/openexr-images/archive/${TEST_OEXR_IMAGE_COMMIT}.tar.gz -> ${PN}-oexr-test-image-${TEST_OEXR_IMAGE_COMMIT}.tar.gz )" S="${WORKDIR}/oiio-${PV}" LICENSE="BSD" # TODO: drop .1 on next SONAME change (2.3 -> 2.4?) as we needed to nudge it # for changing to openexr 3 which broke ABI. SLOT="0/$(ver_cut 1-2).1" KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" X86_CPU_FEATURES=( aes:aes sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2 avx:avx avx2:avx2 avx512f:avx512f f16c:f16c ) CPU_FEATURES=( ${X86_CPU_FEATURES[@]/#/cpu_flags_x86_} ) IUSE="dicom doc ffmpeg gif jpeg2k opencv opengl openvdb ptex python qt5 raw test +truetype ${CPU_FEATURES[@]%:*}" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" # Not quite working yet RESTRICT="!test? ( test ) test" BDEPEND=" doc? ( app-doc/doxygen dev-texlive/texlive-bibtexextra dev-texlive/texlive-fontsextra dev-texlive/texlive-fontutils dev-texlive/texlive-latex dev-texlive/texlive-latexextra ) " RDEPEND=" >=dev-libs/boost-1.62:= dev-cpp/robin-map dev-libs/libfmt:= dev-libs/pugixml:= >=media-libs/libheif-1.7.0:= media-libs/libpng:0= >=media-libs/libwebp-0.2.1:= dev-libs/imath:= >=media-libs/opencolorio-2.1.1-r3:= media-libs/openexr:3= media-libs/tiff:0= sys-libs/zlib:= virtual/jpeg:0 dicom? ( sci-libs/dcmtk ) ffmpeg? ( media-video/ffmpeg:= ) gif? ( media-libs/giflib:0= ) jpeg2k? ( >=media-libs/openjpeg-2.0:2= ) opencv? ( media-libs/opencv:= ) opengl? ( media-libs/glew:= virtual/glu virtual/opengl ) openvdb? ( dev-cpp/tbb:= media-gfx/openvdb:= ) ptex? ( media-libs/ptex:= ) python? ( ${PYTHON_DEPS} $(python_gen_cond_dep ' dev-libs/boost:=[python,${PYTHON_USEDEP}] dev-python/numpy[${PYTHON_USEDEP}] dev-python/pybind11[${PYTHON_USEDEP}] ') ) qt5? ( dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtwidgets:5 opengl? ( dev-qt/qtopengl:5 ) ) raw? ( media-libs/libraw:= ) truetype? ( media-libs/freetype:2= ) " DEPEND="${RDEPEND}" DOCS=( CHANGES.md CREDITS.md README.md ) PATCHES=( "${FILESDIR}"/${PN}-2.3.11.0-imath-openexr-3.patch ) pkg_setup() { use python && python-single-r1_pkg_setup } src_prepare() { # Note: on bumps, please try again with OpenEXR 3 + ilmmath! # Sabotage finding OpenEXR 3 for now to force usage of OpenEXR 2 # (because it mix and matches which version it uses; sed this to # make sure it'll use OpenEXR 3 if it can, but it won't.) # bug #821193 #sed -i \ # -e 's/find_package(OpenEXR CONFIG)/find_package(OpenEXR-3 CONFIG)/' \ # src/cmake/modules/FindOpenEXR.cmake || die cmake_src_prepare cmake_comment_add_subdirectory src/fonts if use test ; then mkdir -p "${BUILD_DIR}"/testsuite || die mv "${WORKDIR}"/oiio-images-${TEST_OIIO_IMAGE_COMMIT} "${BUILD_DIR}"/testsuite/oiio-images || die mv "${WORKDIR}"/openexr-images-${TEST_OEXR_IMAGE_COMMIT} "${BUILD_DIR}"/testsuite/openexr-images || die fi } src_configure() { # Build with SIMD support local cpufeature local mysimd=() for cpufeature in "${CPU_FEATURES[@]}"; do use "${cpufeature%:*}" && mysimd+=("${cpufeature#*:}") done # If no CPU SIMDs were used, completely disable them [[ -z ${mysimd} ]] && mysimd=("0") append-cppflags -DOIIO_USING_OPENEXR_3 local mycmakeargs=( -DVERBOSE=ON -DBUILD_TESTING=$(usex test) -DOIIO_BUILD_TESTS=$(usex test) -DINSTALL_FONTS=OFF -DBUILD_DOCS=$(usex doc) -DINSTALL_DOCS=$(usex doc) -DSTOP_ON_WARNING=OFF -DUSE_CCACHE=OFF -DUSE_DCMTK=$(usex dicom) -DUSE_EXTERNAL_PUGIXML=ON -DUSE_JPEGTURBO=ON -DUSE_NUKE=OFF # not in Gentoo -DUSE_FFMPEG=$(usex ffmpeg) -DUSE_GIF=$(usex gif) -DUSE_OPENJPEG=$(usex jpeg2k) -DUSE_OPENCV=$(usex opencv) -DUSE_OPENGL=$(usex opengl) -DUSE_OPENVDB=$(usex openvdb) -DUSE_PTEX=$(usex ptex) -DUSE_PYTHON=$(usex python) -DUSE_QT=$(usex qt5) -DUSE_LIBRAW=$(usex raw) -DUSE_FREETYPE=$(usex truetype) -DUSE_SIMD=$(local IFS=','; echo "${mysimd[*]}") ) if use python; then mycmakeargs+=( -DPYTHON_VERSION=${EPYTHON#python} -DPYTHON_SITE_DIR=$(python_get_sitedir) ) fi cmake_src_configure } src_install() { cmake_src_install # can't use font_src_install # it does directory hierarchy recreation FONT_S=( "${S}/src/fonts/Droid_Sans" "${S}/src/fonts/Droid_Sans_Mono" "${S}/src/fonts/Droid_Serif" ) insinto ${FONTDIR} for dir in "${FONT_S[@]}"; do doins "${dir}"/*.ttf done }