View Raw Ebuild
# 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"
PATCHES=(
"${FILESDIR}/quirc-1.2-allow-sdl-less-build.patch"
)
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
}