# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake-multilib flag-o-matic DESCRIPTION="Open source project that includes YUV scaling and conversion functionality" HOMEPAGE="https://chromium.googlesource.com/libyuv/libyuv/" # Fetch from: https://chromium.googlesource.com/libyuv/libyuv.git/+archive/${EGIT_COMMIT}.tar.gz SRC_URI="https://dev.gentoo.org/~mva/distfiles/${P}.tar.gz" S="${WORKDIR}" LICENSE="BSD" SLOT="0/${PV}" KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" IUSE="static-libs test tools" RDEPEND="media-libs/libjpeg-turbo" DEPEND=" ${RDEPEND} test? ( dev-cpp/gtest dev-cpp/gflags ) " RESTRICT="!test? ( test )" DOCS=( AUTHORS LICENSE PATENTS README.{md,chromium} ) PATCHES="${FILESDIR}/${P//_p*}-cmake-libdir.patch" # BUILD_DIR="${S}/build" src_prepare() { cmake_src_prepare if use tools; then if ! use static-libs; then # link against libyuv dinamically, but not statically (unless static-libs is enabled) sed -i -r \ -e '/TARGET_LINK_LIBRARIES.* yuvconvert /{s@(ly_lib)_static@\1_name@}' \ -e '/.*target_link_libraries.*yuvconvert.*JPEG_LIBRARY.*/{p;s@yuvconvert@${ly_lib_shared}@}' \ CMakeLists.txt # help linker to see just-built libyuv.so if we're doing clean install # and prefer it over system-wide if we're upgrading append-ldflags '-L.' # append-ldflags '-lm' fi else sed -i \ -e '/ yuvconvert /d' \ -e '/^INSTALL.* PROGRAMS /d' \ CMakeLists.txt fi # sed -i \ -e '/ yuvconstants /d' \ CMakeLists.txt # ^ broken anyway ATM, cries about undefined reference to roundf, and linking to libm doest help if ! use static-libs; then sed -i \ -e '/ly_lib_static/d' \ CMakeLists.txt fi } multilib_src_configure() { local mycmakeargs=(-Wno-dev) if use test; then mycmakeargs+=(-DTEST=ON) fi cmake_src_configure } multilib_src_compile() { cmake_src_compile libyuv.so if use static-libs; then cmake_src_compile libyuv.a fi if use tools && multilib_is_native_abi; then cmake_src_compile yuvconvert fi } multilib_src_install() { cmake_src_install insinto /usr/$(get_libdir)/pkgconfig cat "${FILESDIR}/${PN}.pc.in" | \ sed -e "s|@prefix@|/usr|" \ -e "s|@exec_prefix@|\${prefix}|" \ -e "s|@libdir@|/usr/$(get_libdir)|" \ -e "s|@includedir@|\${prefix}/include|" \ -e "s|@version@|${PV//_p*}|" > "${T}/${PN}.pc" || die doins "${T}/${PN}.pc" }