blob: 874cbf8886b437fad735c6e4bf78ab709f51a50b [file] [log] [blame]
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
CROS_WORKON_COMMIT="c162f33d5f30146ead05afe51ae6af8d13763e44"
CROS_WORKON_TREE="b2445d717170b9eddb3335107d92f2b951c749f7"
CROS_WORKON_PROJECT="chromiumos/third_party/virglrenderer"
# Prevent automatic uprevs of this package since upstream is out of our control.
CROS_WORKON_BLACKLIST="1"
inherit cros-fuzzer cros-sanitizers eutils flag-o-matic meson toolchain-funcs cros-workon
DESCRIPTION="library used implement a virtual 3D GPU used by qemu"
HOMEPAGE="https://virgil3d.github.io/"
LICENSE="MIT"
SLOT="0"
KEYWORDS="*"
IUSE="debug fuzzer profiling test"
RDEPEND="
>=x11-libs/libdrm-2.4.50
media-libs/libepoxy
media-libs/minigbm
fuzzer? (
media-libs/mesa
)
"
# We need autoconf-archive for @CODE_COVERAGE_RULES@. #568624
DEPEND="${RDEPEND}
sys-devel/autoconf-archive
test? ( >=dev-libs/check-0.9.4 )"
PATCHES=(
"${FILESDIR}"/0001-CHROMIUM-Adjust-plane-parameter.patch
)
src_prepare() {
default
}
src_configure() {
sanitizers-setup-env
if use profiling; then
append-flags -fprofile-instr-generate -fcoverage-mapping
append-ldflags -fprofile-instr-generate -fcoverage-mapping
fi
emesonargs+=(
-Dgbm_allocation="true"
-Dplatforms="egl"
-Dtests=$(usex test true false)
$(meson_use fuzzer)
--buildtype $(usex debug debug release)
)
meson_src_configure
}
src_install() {
meson_src_install
# Temporarily do not install virgl_fuzzer as it does not build (crbug.com/1037696)
#fuzzer_install "${FILESDIR}/fuzzer-OWNERS" tests/fuzzer/.libs/virgl_fuzzer \
# --options "${FILESDIR}/virgl_fuzzer.options"
fuzzer_install "${FILESDIR}/fuzzer-OWNERS" "${WORKDIR}/${P}-build"/vtest/vtest_fuzzer \
--options "${FILESDIR}/vtest_fuzzer.options"
find "${ED}"/usr -name 'lib*.la' -delete
}