blob: a348b83a1c4fcb974f4733549c8a05dc48df043d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# Copyright 2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
CMAKE_ECLASS=cmake
inherit cmake-multilib java-pkg-opt-2 xdg-utils
DESCRIPTION="JPEG XL image format reference implementation"
HOMEPAGE="https://github.com/libjxl/libjxl"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/libjxl/libjxl.git"
EGIT_SUBMODULES=(third_party/lodepng third_party/skcms)
else
LODEPNG_COMMIT="48e5364ef48ec2408f44c727657ac1b6703185f8"
SKCMS_COMMIT="64374756e03700d649f897dbd98c95e78c30c7da"
SRC_URI="
https://github.com/libjxl/libjxl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/lvandeve/lodepng/archive/${LODEPNG_COMMIT}.tar.gz -> lodepng-${LODEPNG_COMMIT}.tar.gz
https://skia.googlesource.com/skcms/+archive/${SKCMS_COMMIT}.tar.gz -> skcms-${SKCMS_COMMIT}.tar.gz
"
fi
LICENSE="Apache-2.0"
SLOT="0/7"
if [[ ${PV} != 9999 ]]; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
fi
IUSE="apng doc gdk-pixbuf gif gimp java +jpeg +man openexr static-libs test +tools viewers"
RDEPEND="app-arch/brotli[${MULTILIB_USEDEP}]
dev-cpp/highway[${MULTILIB_USEDEP}]
apng? (
media-libs/libpng[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
)
gdk-pixbuf? ( x11-libs/gdk-pixbuf )
gif? ( media-libs/giflib[${MULTILIB_USEDEP}] )
gimp? ( media-gfx/gimp:0/2 )
java? ( >=virtual/jre-1.8:* )
jpeg? ( virtual/jpeg[${MULTILIB_USEDEP}] )
openexr? ( media-libs/openexr:= )
viewers? (
dev-qt/qtwidgets
dev-qt/qtx11extras
)
"
BDEPEND="
doc? ( app-doc/doxygen )
man? ( app-text/asciidoc )
viewers? ( kde-frameworks/extra-cmake-modules )
"
DEPEND="${RDEPEND}
test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
java? ( >=virtual/jdk-1.8:* )
"
PATCHES=(
"${FILESDIR}/roundtripanimationpatches-ifdef-gif.patch"
)
src_unpack() {
if [[ ${PV} == 9999 ]]; then
git-r3_src_unpack
else
tar -xf ${DISTDIR}/${P}.tar.gz || die
tar -xf ${DISTDIR}/lodepng-${LODEPNG_COMMIT}.tar.gz || die
rmdir ${P}/third_party/lodepng || die
mv lodepng-${LODEPNG_COMMIT} ${P}/third_party/lodepng || die
tar -C ${P}/third_party/skcms -xf ${DISTDIR}/skcms-${SKCMS_COMMIT}.tar.gz || die
fi
}
src_prepare() {
use gdk-pixbuf || sed -i -e '/(gdk-pixbuf)/s/^/#/' plugins/CMakeLists.txt || die
use gimp || sed -i -e '/(gimp)/s/^/#/' plugins/CMakeLists.txt || die
cmake_src_prepare
java-pkg-opt-2_src_prepare
}
multilib_src_configure() {
local mycmakeargs=(
-DBUILD_TESTING=$(usex test ON OFF)
-DJPEGXL_ENABLE_BENCHMARK=OFF
-DJPEGXL_ENABLE_COVERAGE=OFF
-DJPEGXL_ENABLE_EXAMPLES=OFF
-DJPEGXL_ENABLE_FUZZERS=OFF
-DJPEGXL_ENABLE_TOOLS=$(multilib_native_usex tools)
-DJPEGXL_ENABLE_JNI=$(multilib_native_usex java)
-DJPEGXL_ENABLE_MANPAGES=$(multilib_native_usex man)
-DJPEGXL_ENABLE_OPENEXR=$(multilib_native_usex openexr)
-DJPEGXL_ENABLE_PLUGINS=$(multilib_is_native_abi && echo ON || echo OFF) # USE=gdk-pixbuf, USE=gimp handled in src_prepare
-DJPEGXL_ENABLE_SJPEG=OFF
-DJPEGXL_ENABLE_SKCMS=ON
-DJPEGXL_ENABLE_TCMALLOC=OFF
-DJPEGXL_ENABLE_VIEWERS=$(multilib_native_usex viewers)
-DCMAKE_DISABLE_FIND_PACKAGE_PNG=$(multilib_native_usex apng OFF ON)
-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=$(multilib_native_usex doc OFF ON)
-DCMAKE_DISABLE_FIND_PACKAGE_GIF=$(multilib_native_usex gif OFF ON)
-DCMAKE_DISABLE_FIND_PACKAGE_JPEG=$(multilib_native_usex jpeg OFF ON)
)
cmake_src_configure
}
multilib_src_test() {
# DecodeTest.PixelTestWithICCProfileLossy: https://github.com/libjxl/libjxl/issues/500
# RobustStatisticsTest: https://github.com/libjxl/libjxl/issues/698
local myctestargs=(
-E '^DecodeTest\.PixelTestWithICCProfileLossy$|^RobustStatisticsTest\.'
)
cmake_src_test
}
multilib_src_install() {
cmake_src_install
if ! use static-libs; then
rm "${ED}"/usr/lib*/*.a || die
fi
if use java && multilib_is_native_abi; then
java-pkg_doso tools/libjxl_jni.so
fi
}
pkg_postinst() {
xdg_mimeinfo_database_update
}
|