# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DESCRIPTION="QR decoder library" HOMEPAGE="https://github.com/dlbeer/quirc" inherit flag-o-matic multilib-minimal toolchain-funcs if [[ "${PV}" == *9999* ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/dlbeer/${PN}.git" else SRC_URI=" https://github.com/dlbeer/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz " KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" fi DEPEND=" opencv? ( media-libs/libjpeg-turbo:= media-libs/libpng:= media-libs/opencv:= ) sdl? ( media-libs/libjpeg-turbo:= media-libs/libpng:= media-libs/libsdl:= media-libs/sdl-gfx:= ) tools? ( media-libs/libjpeg-turbo:= media-libs/libpng:= ) v4l? ( media-libs/libjpeg-turbo:= ) " RDEPEND=" ${DEPEND} " LICENSE="ISC" SLOT="0/${PV}" IUSE="opencv sdl tools v4l" src_prepare() { read -r LIB_VERSION <<< "$(grep '^LIB_VERSION = ' "${S}/Makefile" | cut -d ' ' -f 3 || die)" export LIB_VERSION sed -r \ -e "s#\.o libquirc.a#.o libquirc.so.${LIB_VERSION}#g" \ -e '/^QUIRC_CFLAGS/ s/$/ -fPIC/' \ -i Makefile || die default multilib_copy_sources } multilib_src_configure() { tc-export CC CXX } multilib_src_compile() { append-ldflags "-Wl,-soname,libquirc.so.${LIB_VERSION}" local targets=( "libquirc.so" ) if multilib_is_native_abi; then if use opencv; then targets+=( "opencv" ) fi if use sdl; then targets+=( "sdl" ) fi if use tools; then targets+=( "qrtest" ) fi if use v4l; then targets+=( "v4l" ) fi fi emake V=1 DESTDIR="${D}" PREFIX="${EPREFIX}/usr" "${targets[@]}" } multilib_src_install() { dolib.so "libquirc.so.${LIB_VERSION}" dosym "libquirc.so.${LIB_VERSION}" "${EPREFIX}/usr/$(get_libdir)/libquirc.so" dosym "libquirc.so.${LIB_VERSION}" "${EPREFIX}/usr/$(get_libdir)/libquirc.so.$(ver_cut 1 "${LIB_VERSION}")" if multilib_is_native_abi; then into "/usr/libexec/${PN}" if use opencv; then dobin inspect-opencv dobin quirc-demo-opencv fi if use sdl; then dobin inspect dobin quirc-demo fi if use tools; then dobin qrtest fi if use v4l; then dobin quirc-scanner fi fi } multilib_src_install_all() { doheader lib/quirc.h }