# Copyright 2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 CRATES=" addr2line-0.21.0 adler-1.0.2 aho-corasick-1.0.5 anyhow-1.0.75 approx-0.5.1 async-broadcast-0.5.1 async-channel-1.9.0 async-executor-1.5.1 async-fs-1.6.0 async-global-executor-2.3.1 async-io-1.13.0 async-lock-2.8.0 async-process-1.7.0 async-recursion-1.0.5 async-std-1.12.0 async-task-4.4.0 async-trait-0.1.73 atomic-waker-1.1.1 autocfg-1.1.0 backtrace-0.3.69 bit_field-0.10.2 bitflags-1.3.2 bitflags-2.4.0 block-0.1.6 block-buffer-0.10.4 blocking-1.3.1 bumpalo-3.13.0 bytemuck-1.13.1 byteorder-1.4.3 cairo-rs-0.18.0 cairo-sys-rs-0.18.0 cast-0.3.0 cc-1.0.83 cfg-expr-0.15.4 cfg-if-1.0.0 color_quant-1.1.0 concurrent-queue-2.2.0 cpufeatures-0.2.9 crc32fast-1.3.2 crossbeam-channel-0.5.8 crossbeam-deque-0.8.3 crossbeam-epoch-0.9.15 crossbeam-utils-0.8.16 crunchy-0.2.2 crypto-common-0.1.6 cssparser-0.31.2 cssparser-macros-0.6.1 data-url-0.3.0 derivative-2.2.0 derive_more-0.99.17 digest-0.10.7 dtoa-1.0.9 dtoa-short-0.3.4 dunce-1.0.4 either-1.9.0 encoding_rs-0.8.33 enumflags2-0.7.7 enumflags2_derive-0.7.7 enumn-0.1.12 equivalent-1.0.1 errno-0.3.3 errno-dragonfly-0.1.2 event-listener-2.5.3 exr-1.7.0 fastrand-1.9.0 fastrand-2.0.0 fdeflate-0.3.0 flate2-1.0.27 float-cmp-0.9.0 flume-0.10.14 foreign-types-0.5.0 foreign-types-macros-0.2.3 foreign-types-shared-0.3.1 form_urlencoded-1.2.0 four-cc-0.3.0 futf-0.1.5 futures-0.3.28 futures-channel-0.3.28 futures-core-0.3.28 futures-executor-0.3.28 futures-io-0.3.28 futures-lite-1.13.0 futures-macro-0.3.28 futures-sink-0.3.28 futures-task-0.3.28 futures-util-0.3.28 fxhash-0.2.1 gdk4-0.7.2 gdk4-sys-0.7.2 gdk-pixbuf-0.18.0 gdk-pixbuf-sys-0.18.0 generic-array-0.14.7 getrandom-0.2.10 gettext-rs-0.7.0 gettext-sys-0.21.3 gif-0.12.0 gimli-0.28.0 gio-0.18.1 gio-sys-0.18.1 glib-0.18.1 glib-macros-0.18.0 glib-sys-0.18.1 gloo-timers-0.2.6 gobject-sys-0.18.0 half-2.2.1 hashbrown-0.14.0 heck-0.4.1 hermit-abi-0.3.2 hex-0.4.3 idna-0.4.0 image-0.24.7 indexmap-2.0.0 instant-0.1.12 io-lifetimes-1.0.11 itertools-0.11.0 itoa-1.0.9 jobserver-0.1.26 jpeg-decoder-0.3.0 js-sys-0.3.64 jxl-bitstream-0.2.3 jxl-coding-0.2.3 jxl-color-0.3.2 jxl-frame-0.4.0 jxl-grid-0.1.1 jxl-image-0.4.1 jxl-modular-0.2.2 jxl-oxide-0.3.0 jxl-render-0.3.0 jxl-vardct-0.2.1 kamadak-exif-0.5.5 kv-log-macro-1.0.7 language-tags-0.3.2 lazy_static-1.4.0 lcms2-5.6.0 lcms2-sys-4.0.3 lebe-0.5.2 libc-0.2.147 libheif-rs-0.20.0 libheif-sys-1.16.1 librsvg-2.57.0 linux-raw-sys-0.3.8 linux-raw-sys-0.4.5 locale_config-0.3.0 lock_api-0.4.10 log-0.4.20 mac-0.1.1 malloc_buf-0.0.6 markup5ever-0.11.0 matrixmultiply-0.3.7 memchr-2.6.3 memfd-0.6.3 memmap2-0.7.1 memoffset-0.7.1 memoffset-0.9.0 miniz_oxide-0.7.1 mutate_once-0.1.1 nalgebra-0.32.3 nalgebra-macros-0.2.1 nanorand-0.7.0 new_debug_unreachable-1.0.4 nix-0.26.4 num-complex-0.4.4 num_cpus-1.16.0 num-integer-0.1.45 num-rational-0.4.1 num-traits-0.2.16 objc-0.2.7 objc-foundation-0.1.1 objc_id-0.1.1 object-0.32.1 once_cell-1.18.0 ordered-stream-0.2.0 pango-0.18.0 pangocairo-0.18.0 pangocairo-sys-0.18.0 pango-sys-0.18.0 parking-2.1.0 parking_lot-0.12.1 parking_lot_core-0.9.8 paste-1.0.14 percent-encoding-2.3.0 phf-0.10.1 phf-0.11.2 phf_codegen-0.10.0 phf_generator-0.10.0 phf_generator-0.11.2 phf_macros-0.11.2 phf_shared-0.10.0 phf_shared-0.11.2 pin-project-1.1.3 pin-project-internal-1.1.3 pin-project-lite-0.2.13 pin-utils-0.1.0 pkg-config-0.3.27 png-0.17.10 polling-2.8.0 ppv-lite86-0.2.17 precomputed-hash-0.1.1 proc-macro2-1.0.66 proc-macro-crate-1.3.1 proc-macro-error-1.0.4 proc-macro-error-attr-1.0.4 qoi-0.4.1 quote-1.0.33 rand-0.8.5 rand_chacha-0.3.1 rand_core-0.6.4 rawpointer-0.2.1 rayon-1.7.0 rayon-core-1.11.0 rctree-0.5.0 redox_syscall-0.3.5 regex-1.9.5 regex-automata-0.3.8 regex-syntax-0.7.5 rgb-0.8.36 rustc-demangle-0.1.23 rustix-0.37.23 rustix-0.38.11 safe_arch-0.7.1 safe-transmute-0.11.2 scopeguard-1.2.0 selectors-0.25.0 serde-1.0.188 serde_derive-1.0.188 serde_repr-0.1.16 serde_spanned-0.6.3 servo_arc-0.3.0 sha1-0.10.5 signal-hook-0.3.17 signal-hook-registry-1.4.1 simba-0.8.1 simd-adler32-0.3.7 siphasher-0.3.11 slab-0.4.9 smallvec-1.11.0 socket2-0.4.9 spin-0.9.8 stable_deref_trait-1.2.0 static_assertions-1.1.0 string_cache-0.8.7 string_cache_codegen-0.5.2 syn-1.0.109 syn-2.0.30 system-deps-6.1.1 target-lexicon-0.12.11 temp-dir-0.1.11 tempfile-3.8.0 tendril-0.4.3 thiserror-1.0.48 thiserror-impl-1.0.48 tiff-0.9.0 tinyvec-1.6.0 tinyvec_macros-0.1.1 toml-0.7.6 toml_datetime-0.6.3 toml_edit-0.19.14 tracing-0.1.37 tracing-attributes-0.1.26 tracing-core-0.1.31 typenum-1.16.0 uds_windows-1.0.2 unicode-bidi-0.3.13 unicode-ident-1.0.11 unicode-normalization-0.1.22 url-2.4.1 utf-8-0.7.6 value-bag-1.4.1 vcpkg-0.2.15 version_check-0.9.4 version-compare-0.1.1 waker-fn-1.1.0 wasi-0.11.0+wasi-snapshot-preview1 wasm-bindgen-0.2.87 wasm-bindgen-backend-0.2.87 wasm-bindgen-futures-0.4.37 wasm-bindgen-macro-0.2.87 wasm-bindgen-macro-support-0.2.87 wasm-bindgen-shared-0.2.87 web-sys-0.3.64 weezl-0.1.7 wide-0.7.11 winapi-0.3.9 winapi-i686-pc-windows-gnu-0.4.0 winapi-x86_64-pc-windows-gnu-0.4.0 windows_aarch64_gnullvm-0.48.5 windows_aarch64_msvc-0.48.5 windows_i686_gnu-0.48.5 windows_i686_msvc-0.48.5 windows-sys-0.48.0 windows-targets-0.48.5 windows_x86_64_gnu-0.48.5 windows_x86_64_gnullvm-0.48.5 windows_x86_64_msvc-0.48.5 winnow-0.5.15 xdg-home-1.0.0 xml5ever-0.17.0 zbus-3.14.1 zbus_macros-3.14.1 zbus_names-2.6.0 zune-inflate-0.2.54 zvariant-3.15.0 zvariant_derive-3.15.0 zvariant_utils-1.0.1 " inherit cargo meson xdg-utils gnome2-utils DESCRIPTION="Sandboxed and extendable image decoding" HOMEPAGE="https://gitlab.gnome.org/sophie-h/glycin" SRC_URI="https://gitlab.gnome.org/sophie-h/glycin/-/archive/${PV}/glycin-${PV}.tar.gz $(cargo_crate_uris) " IUSE="$IUSE heif svg webp jxl" DEPEND=" >=gui-libs/gtk-4.12.0 heif? ( >=media-libs/libheif-1.14.2 ) svg? ( x11-libs/cairo ) webp? ( media-libs/libwebp ) jxl? ( media-libs/libjxl ) sys-apps/bubblewrap media-libs/lcms sys-devel/gettext sys-libs/libseccomp " RDEPEND="${DEPEND}" LICENSE="LGPL-2.1 MPL-2.0" SLOT="0" KEYWORDS="amd64" # rust does not use *FLAGS from make.conf, silence portage warning # update with proper path to binaries this crate installs, omit leading / QA_FLAGS_IGNORED="usr/bin/${PN}" src_prepare(){ default # cargo.eclass works with gitlab uris and gitlab.gnome.org is not considered a gitlab uri :-( sed -i "s/gitlab.gnome.org/github.com/g" Cargo.{toml,lock} || die # sed -i '/librsvg/s/.*/librsvg = { path="..\/librsvg-b831e077174ae608d8cd09e532fc0e7ce1fe5c4f" }/' Cargo.toml sed -i "\|CARGO_HOME|s|.*| 'CARGO_HOME': '${WORKDIR}/cargo_home',|" loaders/meson.build } src_configure() { local loaders=('glycin-image-rs','glycin-jxl') if use heif; then loaders+=('glycin-heif') fi if use svg; then loaders+=('glycin-svg') fi local emesonargs=( -Dloaders=$(echo "${loaders%,}") ) meson_src_configure }