You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-libs/openexr/openexr-3.2.3.ebuild

142 lines
3.4 KiB

# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic
MY_PN=OpenEXR
DESCRIPTION="ILM's OpenEXR high dynamic-range image file format libraries"
HOMEPAGE="https://openexr.com/"
SRC_URI="
https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
test? (
utils? (
https://github.com/AcademySoftwareFoundation/openexr-images/archive/refs/tags/v1.0.tar.gz
-> openexr-images-1.0.tar.gz
)
)
"
LICENSE="BSD"
SLOT="0/31" # based on SONAME
# -ppc -sparc because broken on big endian, bug #818424
KEYWORDS="~amd64 ~arm ~arm64 ~loong -ppc ~ppc64 ~riscv -sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="cpu_flags_x86_avx doc examples large-stack utils test threads"
REQUIRED_USE="doc? ( utils )"
RESTRICT="!test? ( test )"
RDEPEND="
app-arch/libdeflate[zlib]
>=dev-libs/imath-3.1.6:=
"
DEPEND="${RDEPEND}"
BDEPEND="
virtual/pkgconfig
doc? ( sys-apps/help2man )
"
PATCHES=(
"${FILESDIR}/${PN}-3.2.1-bintests-iff-utils.patch"
)
DOCS=( CHANGES.md GOVERNANCE.md PATENTS README.md SECURITY.md )
src_prepare() {
# Fix path for testsuite
sed -e "s:/var/tmp/:${T}:" \
-i "${S}"/src/test/${MY_PN}Test/tmpDir.h || die "failed to set temp path for tests"
sed -e "s:if(INSTALL_DOCS):if(OPENEXR_INSTALL_DOCS):" \
-i docs/CMakeLists.txt || die
cmake_src_prepare
if use test && use utils; then
IMAGES=(
Beachball/multipart.0001.exr
Beachball/singlepart.0001.exr
Chromaticities/Rec709.exr
Chromaticities/Rec709_YC.exr
Chromaticities/XYZ.exr
Chromaticities/XYZ_YC.exr
LuminanceChroma/Flowers.exr
LuminanceChroma/Garden.exr
MultiResolution/ColorCodedLevels.exr
MultiResolution/WavyLinesCube.exr
MultiResolution/WavyLinesLatLong.exr
MultiView/Adjuster.exr
TestImages/GammaChart.exr
TestImages/GrayRampsHorizontal.exr
v2/LeftView/Balls.exr
v2/Stereo/Trunks.exr
)
mkdir -p "${BUILD_DIR}/src/test/bin" || die
for image in "${IMAGES[@]}"; do
mkdir -p "${BUILD_DIR}/src/test/bin/$(dirname "${image}")" || die
cp -a "${WORKDIR}/openexr-images-1.0/${image}" "${BUILD_DIR}/src/test/bin/${image}" || die
done
fi
}
src_configure() {
if use x86; then
replace-cpu-flags native i686
fi
local mycmakeargs=(
-DOPENEXR_CXX_STANDARD="17"
-DBUILD_SHARED_LIBS="yes"
-DBUILD_TESTING="$(usex test)"
-DBUILD_WEBSITE="no"
-DOPENEXR_BUILD_EXAMPLES="$(usex examples)"
-DOPENEXR_BUILD_PYTHON="no"
-DOPENEXR_BUILD_TOOLS="$(usex utils)"
-DOPENEXR_ENABLE_LARGE_STACK="$(usex large-stack)"
-DOPENEXR_ENABLE_THREADING="$(usex threads)"
-DOPENEXR_INSTALL="yes"
-DOPENEXR_INSTALL_DOCS="$(usex doc)"
-DOPENEXR_INSTALL_PKG_CONFIG="yes"
-DOPENEXR_INSTALL_TOOLS="$(usex utils)"
-DOPENEXR_USE_CLANG_TIDY="no" # don't look for clang-tidy
-DOPENEXR_FORCE_INTERNAL_DEFLATE="no"
-DOPENEXR_FORCE_INTERNAL_IMATH="no"
)
if use test; then
# OPENEXR_RUN_FUZZ_TESTS depends on BUILD_TESTING, see
# - https://bugs.gentoo.org/925128
# - https://openexr.com/en/latest/install.html#component-options
# NOTE: the fuzz tests are very slow
mycmakeargs+=( -DOPENEXR_RUN_FUZZ_TESTS="ON" )
fi
cmake_src_configure
}
src_test() {
local CMAKE_SKIP_TESTS=()
use x86 && CMAKE_SKIP_TESTS+=(
'^OpenEXR.testDwaLookups$'
)
cmake_src_test
}
src_install() {
use examples && docompress -x "/usr/share/doc/${PF}/examples"
cmake_src_install
}