| 18 |
18 |
|
| 19 |
19 |
LICENSE="GPL-3 MIT"
|
| 20 |
20 |
SLOT="0/$(ver_cut 1-2)"
|
| 21 |
|
IUSE="+aom dav1d +de265 doc ffmpeg gdk-pixbuf gui +jpeg +jpeg2k +kvazaar openh264 rav1e svt-av1 test test-full +threads tools +webp x264 x265"
|
| 22 |
|
# IUSE+=" vvdec vvenc"
|
| 23 |
|
REQUIRED_USE="test-full? ( test )"
|
|
21 |
IUSE="+aom dav1d +de265 doc ffmpeg gdk-pixbuf geotiff gui +jpeg +jpeg2k +kvazaar openh264 rav1e svt-av1 test test-full +threads tools +webp x264 x265"
|
|
22 |
# IUSE+=" uvg266 vvdec vvenc"
|
|
23 |
REQUIRED_USE="
|
|
24 |
test-full? ( test )
|
|
25 |
"
|
| 24 |
26 |
RESTRICT="!test? ( test )"
|
| 25 |
27 |
|
| 26 |
28 |
BDEPEND="
|
| ... | ... | |
| 29 |
31 |
media-gfx/graphviz
|
| 30 |
32 |
)
|
| 31 |
33 |
"
|
| 32 |
|
DEPEND="
|
| 33 |
|
media-libs/libpng:=[${MULTILIB_USEDEP}]
|
| 34 |
|
media-libs/tiff:=[${MULTILIB_USEDEP}]
|
| 35 |
|
virtual/zlib:=[${MULTILIB_USEDEP}]
|
|
34 |
RDEPEND="
|
| 36 |
35 |
aom? ( >=media-libs/libaom-2.0.0:=[${MULTILIB_USEDEP}] )
|
| 37 |
36 |
dav1d? ( media-libs/dav1d:=[${MULTILIB_USEDEP}] )
|
| 38 |
37 |
de265? ( media-libs/libde265[${MULTILIB_USEDEP}] )
|
| ... | ... | |
| 44 |
43 |
openh264? ( media-libs/openh264:=[${MULTILIB_USEDEP}] )
|
| 45 |
44 |
rav1e? ( media-video/rav1e:= )
|
| 46 |
45 |
svt-av1? ( media-libs/svt-av1:=[${MULTILIB_USEDEP}] )
|
|
46 |
test-full? (
|
|
47 |
app-arch/brotli:=[${MULTILIB_USEDEP}]
|
|
48 |
virtual/zlib:=[${MULTILIB_USEDEP}]
|
|
49 |
)
|
| 47 |
50 |
tools? (
|
|
51 |
media-libs/libpng:=[${MULTILIB_USEDEP}]
|
|
52 |
geotiff? (
|
|
53 |
media-libs/tiff:=[${MULTILIB_USEDEP}]
|
|
54 |
sci-libs/libgeotiff:=
|
|
55 |
)
|
| 48 |
56 |
gui? (
|
| 49 |
57 |
media-libs/libsdl2[${MULTILIB_USEDEP}]
|
| 50 |
58 |
)
|
| ... | ... | |
| 53 |
61 |
x264? ( media-libs/x264:=[${MULTILIB_USEDEP}] )
|
| 54 |
62 |
x265? ( media-libs/x265:=[${MULTILIB_USEDEP}] )
|
| 55 |
63 |
"
|
| 56 |
|
# vvdec? ( >=media-libs/vvdec-3.0.0:=::guru[${MULTILIB_USEDEP}] )
|
| 57 |
|
# vvenc? ( media-libs/vvenc:=::guru[${MULTILIB_USEDEP}] )
|
| 58 |
|
RDEPEND="${DEPEND}"
|
|
64 |
# uvg266? ( media-libs/uvg266:=[${MULTILIB_USEDEP}] )
|
|
65 |
# vvdec? ( >=media-libs/vvdec-3.0.0:=::guru[${MULTILIB_USEDEP}] )
|
|
66 |
# vvenc? ( media-libs/vvenc:=::guru[${MULTILIB_USEDEP}] )
|
|
67 |
DEPEND="${RDEPEND}"
|
| 59 |
68 |
|
| 60 |
69 |
MULTILIB_WRAPPED_HEADERS=(
|
| 61 |
70 |
/usr/include/libheif/heif_version.h
|
| ... | ... | |
| 67 |
76 |
fi
|
| 68 |
77 |
}
|
| 69 |
78 |
|
|
79 |
src_prepare() {
|
|
80 |
cmake_src_prepare
|
|
81 |
|
|
82 |
if use geotiff; then
|
|
83 |
sed -e 's:geotiff/::g' -i heifio/CMakeLists.txt heifio/decoder_tiff.cc || die
|
|
84 |
fi
|
|
85 |
}
|
|
86 |
|
| 70 |
87 |
multilib_src_configure() {
|
| 71 |
88 |
local mycmakeargs=(
|
| 72 |
|
$(cmake_use_find_package doc Doxygen)
|
|
89 |
-DBUILD_DOCUMENTATION=$(usex doc)
|
| 73 |
90 |
-DBUILD_TESTING=$(usex test)
|
| 74 |
91 |
-DENABLE_PLUGIN_LOADING=true
|
| 75 |
92 |
-DWITH_LIBDE265=$(usex de265)
|
| ... | ... | |
| 86 |
103 |
-DWITH_RAV1E=$(multilib_native_usex rav1e)
|
| 87 |
104 |
-DWITH_SvtEnc=$(usex svt-av1)
|
| 88 |
105 |
-DWITH_LIBSHARPYUV=$(usex webp)
|
|
106 |
# -DWITH_UVG266=$(usex uvg266) # uvg266 not yet packaged
|
| 89 |
107 |
# -DWITH_VVDEC=$(usex vvdec) # vvdec not yet packaged, in ::guru
|
| 90 |
108 |
# -DWITH_VVENC=$(usex vvenc) # vvenc not yet packaged, in ::guru
|
|
109 |
-DWITH_WEBCODECS="no" # requires emscripten "$(usex de265)"
|
| 91 |
110 |
-DWITH_X264=$(usex x264)
|
| 92 |
111 |
-DWITH_X265=$(usex x265)
|
| 93 |
112 |
-DWITH_KVAZAAR=$(usex kvazaar)
|
| ... | ... | |
| 95 |
114 |
-DWITH_JPEG_ENCODER=$(usex jpeg)
|
| 96 |
115 |
-DWITH_OpenJPEG_DECODER=$(usex jpeg2k)
|
| 97 |
116 |
-DWITH_OpenJPEG_ENCODER=$(usex jpeg2k)
|
|
117 |
-DWITH_OPENJPH_ENCODER=OFF
|
|
118 |
-DWITH_UNCOMPRESSED_CODEC=ON
|
|
119 |
|
|
120 |
-DWITH_LIBPNG_INTERNAL="no"
|
|
121 |
$(cmake_use_find_package jpeg JPEG)
|
|
122 |
$(cmake_use_find_package tools PNG)
|
|
123 |
$(cmake_use_find_package webp WEBP)
|
|
124 |
$(cmake_use_find_package geotiff TIFF)
|
| 98 |
125 |
)
|
| 99 |
126 |
|
|
127 |
if multilib_native_use geotiff; then
|
|
128 |
mycmakeargs+=(
|
|
129 |
# depends on tiff being found
|
|
130 |
-DWITH_GEOTIFF="yes"
|
|
131 |
)
|
|
132 |
fi
|
|
133 |
|
| 100 |
134 |
# Allow tests that rely on options not normally enabled
|
| 101 |
135 |
# https://github.com/strukturag/libheif/blob/v1.20.1/tests/CMakeLists.txt#L36-L46
|
| 102 |
136 |
# https://github.com/strukturag/libheif/blob/v1.20.1/tests/CMakeLists.txt#L82-L101
|
| ... | ... | |
| 104 |
138 |
mycmakeargs+=(
|
| 105 |
139 |
-DENABLE_EXPERIMENTAL_FEATURES=ON
|
| 106 |
140 |
-DWITH_REDUCED_VISIBILITY=OFF
|
| 107 |
|
-DWITH_UNCOMPRESSED_CODEC=ON
|
| 108 |
141 |
)
|
| 109 |
142 |
fi
|
| 110 |
143 |
|
| 111 |
144 |
cmake_src_configure
|
| 112 |
145 |
}
|
| 113 |
146 |
|
|
147 |
multilib_src_test() {
|
|
148 |
local CMAKE_SKIP_TESTS=()
|
|
149 |
|
|
150 |
if ! use test-full; then
|
|
151 |
CMAKE_SKIP_TESTS+=(
|
|
152 |
"^encode_grid$"
|
|
153 |
"^region$"
|
|
154 |
"^text$"
|
|
155 |
"^component_descriptions$"
|
|
156 |
)
|
|
157 |
fi
|
|
158 |
|
|
159 |
cmake_src_test
|
|
160 |
}
|
|
161 |
|
|
162 |
multilib_src_install() {
|
|
163 |
if multilib_native_use doc; then
|
|
164 |
local HTML_DOCS=( "${BUILD_DIR}"/apidoc/html/. )
|
|
165 |
fi
|
|
166 |
|
|
167 |
cmake_src_install
|
|
168 |
}
|
|
169 |
|
| 114 |
170 |
pkg_postinst() {
|
| 115 |
171 |
xdg_pkg_postinst
|
| 116 |
172 |
use gdk-pixbuf && multilib_foreach_abi gnome2_gdk_pixbuf_update
|