# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
# Maintainer: Mark Riedesel <mark+alpine@klowner.com>
pkgname=openexr
pkgver=3.3.2
pkgrel=0
_commit_images=d45a2d5a890d6963b94479c7a644440068c37dd2
pkgdesc="High dynamic-range image file format library"
url="https://www.openexr.com/"
arch="all"
license="BSD-3-Clause"
# cmake files fail when libdeflate-static is missing
depends_dev="libdeflate-static"
makedepends="
	$depends_dev
	boost-dev
	chrpath
	cmake
	imath-dev
	libdeflate-dev
	samurai
	"
subpackages="
	$pkgname-doc
	$pkgname-tools
	$pkgname-dev
	$pkgname-libiex
	$pkgname-libilmthread
	$pkgname-libopenexr
	$pkgname-libopenexrcore
	$pkgname-libopenexrutil
	"
source="$pkgname-$pkgver.tar.gz::https://github.com/AcademySoftwareFoundation/openexr/archive/v$pkgver.tar.gz
	openexr-images-$_commit_images.tar.gz::https://github.com/AcademySoftwareFoundation/openexr-images/archive/$_commit_images.tar.gz
	"

# secfixes:
#   3.1.12-r0:
#     - CVE-2023-5841
#   3.1.4-r0:
#     - CVE-2021-45942
#   3.1.1-r0:
#     - CVE-2021-3598
#     - CVE-2021-23169
#     - CVE-2021-23215
#     - CVE-2021-26260
#     - CVE-2021-26945
#   2.5.4-r0:
#     - CVE-2021-20296
#     - CVE-2021-3474
#     - CVE-2021-3475
#     - CVE-2021-3476
#     - CVE-2021-3477
#     - CVE-2021-3478
#     - CVE-2021-3479
#   2.5.2-r0:
#     - CVE-2020-15304
#     - CVE-2020-15305
#     - CVE-2020-15306
#   2.4.1-r0:
#     - CVE-2020-11758
#     - CVE-2020-11759
#     - CVE-2020-11760
#     - CVE-2020-11761
#     - CVE-2020-11762
#     - CVE-2020-11763
#     - CVE-2020-11764
#     - CVE-2020-11765
#   2.4.0-r0:
#     - CVE-2017-12596
#   2.2.1-r0:
#     - CVE-2017-9110
#     - CVE-2017-9111
#     - CVE-2017-9112
#     - CVE-2017-9113
#     - CVE-2017-9114
#     - CVE-2017-9115
#     - CVE-2017-9116

case "$CARCH" in
s390x)
	# fails a bunch of tests
	options="$options !check"
	;;
esac

build() {
	mkdir -p build/src/test/bin
	cp -R "$srcdir"/openexr-images-$_commit_images/* build/src/test/bin/

	CFLAGS="$CFLAGS -O2 -flto=auto" \
	CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
	cmake -B build -G Ninja \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_SKIP_INSTALL_RPATH=ON \
		-DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
		$CMAKE_CROSSOPTS
	cmake --build build
}

check() {
	local exclude_tests=""
	case "$CARCH" in
		x86*) exclude_tests="OpenEXR.Iex" ;;
		riscv64) exclude_tests="OpenEXR.testMultiTiledPartThreading" ;;
		arm*) exclude_tests="OpenEXR.testLargeDataWindowOffsets" ;;
	esac
	ctest --test-dir build -E "$exclude_tests"
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}

tools() {
	amove usr/bin
}

libiex() {
	amove usr/lib/libIex-*.so.*
}

libilmthread() {
	amove usr/lib/libIlmThread-*.so.*
}

libopenexr() {
	amove usr/lib/libOpenEXR-*.so.*
}

libopenexrcore() {
	amove usr/lib/libOpenEXRCore-*.so.*
}

libopenexrutil() {
	amove usr/lib/libOpenEXRUtil-*.so.*
}

sha512sums="
0c43337fda2979b328202488a43711afb5d680781c933aa0d74970a3dcda1135fbd01228cb10e81e4628c0d19da2d3e5b781e147d609cdc8a796d2a51a90932f  openexr-3.3.2.tar.gz
bbfd8e40eedd26955bc97789bfdfd556ee9ed652babc1c9c60c3cda6e5cab05a0a813323f25bc536132498a2bf3185a07020cd1170c047b72973e2be3e10fe19  openexr-images-d45a2d5a890d6963b94479c7a644440068c37dd2.tar.gz
"
