1SUMMARY="JPEG XL reference encoder/decoder"
2DESCRIPTION="The JPEG XL Image Coding System (ISO/IEC 18181) has a rich \
3feature set and is particularly optimised for responsive web environments, so \
4that content renders well on a wide range of devices. Moreover, it includes \
5several features that help transition from the legacy JPEG format."
6HOMEPAGE="https://jpeg.org/jpegxl/"
7COPYRIGHT="2021 the JPEG XL Project
8	2005-2021 Lode Vandevenne
9	2018-2021 Google Inc.
10	2021 Google LLC"
11LICENSE="BSD (3-clause)
12	Apache v2
13	MIT
14	Zlib"
15REVISION="4"
16SOURCE_URI="https://gitlab.com/wg1/jpeg-xl/-/archive/v$portVersion/jpeg-xl-v$portVersion.tar.bz2"
17CHECKSUM_SHA256="2eccd29d3454fc3f4612185d9f90546b20e3cfedc8420447f6effc5ff6aae25b"
18srcGitRev_2="48e5364ef48ec2408f44c727657ac1b6703185f8"
19SOURCE_URI_2="https://github.com/lvandeve/lodepng/archive/$srcGitRev_2.tar.gz"
20CHECKSUM_SHA256_2="c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd"
21SOURCE_FILENAME_2="lodepng-$srcGitRev_2.tar.gz"
22srcGitRev_3="64374756e03700d649f897dbd98c95e78c30c7da"
23SOURCE_URI_3="https://github.com/workerVA/skcms/archive/$srcGitRev_3.tar.gz"
24CHECKSUM_SHA256_3="d28ff68c49a4946b29d76d03d75414895f4dd897ca42be6d304ec24b9f539fe1"
25SOURCE_FILENAME_3="ckcms-$srcGitRev_3.tar.gz"
26srcGitRev_4="868ab558fad70fcbe8863ba4e85179eeb81cc840"
27SOURCE_URI_4="https://github.com/webmproject/sjpeg/archive/$srcGitRev_4.tar.gz"
28CHECKSUM_SHA256_4="72279cd6d4089b62a49cb127353bf875cb35844eda42d90901dd32f08992060e"
29SOURCE_FILENAME_4="sjpeg-$srcGitRev_4.tar.gz"
30SOURCE_DIR="jpeg-xl-v$portVersion"
31
32ARCHITECTURES="all !x86_gcc2"
33SECONDARY_ARCHITECTURES="x86"
34
35PROVIDES="
36	libjxl$secondaryArchSuffix = $portVersion
37	lib:libjxl$secondaryArchSuffix = $portVersion
38	lib:libjxl_dec$secondaryArchSuffix = $portVersion
39	lib:libjxl_threads$secondaryArchSuffix = $portVersion
40	"
41REQUIRES="
42	haiku$secondaryArchSuffix
43	lib:libavif$secondaryArchSuffix
44	lib:libbrotlicommon$secondaryArchSuffix
45	lib:libbrotlidec$secondaryArchSuffix
46	lib:libbrotlienc$secondaryArchSuffix
47	lib:libgif$secondaryArchSuffix
48	lib:libGL$secondaryArchSuffix
49	lib:libIex_3_0$secondaryArchSuffix
50	lib:libIlmThread_3_0$secondaryArchSuffix
51	lib:libImath_3_0$secondaryArchSuffix
52	lib:libOpenEXR_3_0$secondaryArchSuffix
53	lib:libOpenEXRUtil_3_0$secondaryArchSuffix
54	lib:libjpeg$secondaryArchSuffix
55	lib:libpng16$secondaryArchSuffix
56	lib:libstdc++$secondaryArchSuffix
57	lib:libwebp$secondaryArchSuffix
58	lib:libz$secondaryArchSuffix
59	"
60
61PROVIDES_devel="
62	libjxl${secondaryArchSuffix}_devel = $portVersion
63	devel:libjxl$secondaryArchSuffix = $portVersion
64	devel:libjxl_dec$secondaryArchSuffix = $portVersion
65	devel:libjxl_threads$secondaryArchSuffix = $portVersion
66	"
67REQUIRES_devel="
68	libjxl$secondaryArchSuffix == $portVersion base
69	"
70
71PROVIDES_tools="
72	libjxl${secondaryArchSuffix}_tools = $portVersion
73	cmd:benchmark_xl$secondaryArchSuffix
74	cmd:cjxl$secondaryArchSuffix
75	cmd:djxl$secondaryArchSuffix
76	"
77REQUIRES_tools="
78	$REQUIRES
79	libjxl$secondaryArchSuffix == $portVersion base
80	lib:libstdc++$secondaryArchSuffix
81	"
82
83BUILD_REQUIRES="
84	haiku${secondaryArchSuffix}_devel
85	devel:libavif$secondaryArchSuffix
86	devel:libbrotlicommon$secondaryArchSuffix
87	devel:libbrotlidec$secondaryArchSuffix
88	devel:libbrotlienc$secondaryArchSuffix
89	devel:libgif$secondaryArchSuffix >= 7.2.0
90	devel:libGL$secondaryArchSuffix
91	devel:libhwy$secondaryArchSuffix
92	devel:libhwy_contrib$secondaryArchSuffix
93	devel:libIex_3_0$secondaryArchSuffix
94	devel:libIlmThread_3_0$secondaryArchSuffix
95	devel:libImath_3_0$secondaryArchSuffix
96	devel:libOpenEXR_3_0$secondaryArchSuffix
97	devel:libOpenEXRUtil_3_0$secondaryArchSuffix
98	devel:libjpeg$secondaryArchSuffix
99	devel:libpng16$secondaryArchSuffix
100	devel:libwebp$secondaryArchSuffix
101	devel:libz$secondaryArchSuffix
102	"
103BUILD_PREREQUIRES="
104	cmd:cmake
105	cmd:gcc$secondaryArchSuffix
106	cmd:git
107	cmd:make
108	cmd:pkg_config$secondaryArchSuffix
109	cmd:python3
110	"
111
112BUILD()
113{
114	cp -r $sourceDir2/lodepng-$srcGitRev_2/* third_party/lodepng
115	cp -r $sourceDir3/skcms-$srcGitRev_3/* third_party/skcms
116	cp -r $sourceDir4/sjpeg-$srcGitRev_4/* third_party/sjpeg
117	cmake -B build -S . $cmakeDirArgs \
118		-DCMAKE_BUILD_TYPE=Release \
119		-DBUILD_TESTING=OFF \
120		-DJPEGXL_FORCE_SYSTEM_BROTLI=true \
121		-DJPEGXL_FORCE_SYSTEM_HWY=true \
122		-DJPEGXL_WARNINGS_AS_ERRORS=false \
123		-DJPEGXL_ENABLE_OPENEXR=true
124	make -C build $jobArgs
125}
126
127INSTALL()
128{
129	make -C build install
130
131	# remove static libraries
132	rm -f $libDir/{libjxl.a,libjxl_threads.a}
133
134	prepareInstalledDevelLibs \
135		libjxl libjxl_dec libjxl_threads
136	fixPkgconfig
137
138	packageEntries devel \
139		$developDir
140	packageEntries tools \
141		$binDir
142}
143
144TEST()
145{
146	make -C build test
147}
148