gentoo-ebuilds/media-libs/libraw/libraw-0.21.2.ebuild
Eli Schwartz e82cd94259
media-libs/libraw: make sure elibtoolize is applied
Needed to e.g. pass LTO warning flags through to the linker. Also needed
to pass through --as-needed correctly to the linker, which has the
practical effect of pruning a link to some unused lcms plugins.

lcms provides its plugins in the main .pc file by design to "simplify
usage", if configuring to build the plugin at all, and expects
--as-needed to strip those out if you don't call `cmsPlugin`. But that
relies on libtool doing its job...

(We unconditionally package the plugins, so this is just an
optimization.)

Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
2025-05-11 02:40:33 -04:00

68 lines
1.6 KiB
Bash

# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic libtool multilib-minimal toolchain-funcs
MY_PN=LibRaw
MY_PV="${PV/_b/-B}"
MY_P="${MY_PN}-${MY_PV}"
DESCRIPTION="LibRaw is a library for reading RAW files obtained from digital photo cameras"
HOMEPAGE="https://www.libraw.org/ https://github.com/LibRaw/LibRaw"
SRC_URI="https://www.libraw.org/data/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2.1 CDDL"
# SONAME isn't exactly the same as PV but it does correspond and
# libraw has unstable ABI across releases.
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples jpeg +lcms openmp zlib"
RDEPEND="
jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
lcms? ( >=media-libs/lcms-2.5:2[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
DOCS=( Changelog.txt README.md )
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
src_prepare() {
default
elibtoolize
if tc-is-clang && use openmp ; then
append-libs omp
fi
}
multilib_src_configure() {
local myeconfargs=(
--disable-jasper
$(multilib_native_use_enable examples)
$(use_enable jpeg)
$(use_enable lcms)
$(use_enable openmp)
$(use_enable zlib)
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_install_all() {
einstalldocs
# package installs .pc files
find "${D}" -name '*.la' -delete || die
}