| # Copyright 2014 The ChromiumOS Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI="7" |
| |
| CROS_WORKON_PROJECT="chromiumos/platform/minigbm" |
| CROS_WORKON_LOCALNAME="../platform/minigbm" |
| CROS_WORKON_OUTOFTREE_BUILD=1 |
| |
| inherit cros-sanitizers cros-workon cros-common.mk multilib |
| |
| DESCRIPTION="Mini GBM implementation" |
| HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform/minigbm" |
| |
| LICENSE="BSD-Google" |
| SLOT="0" |
| KEYWORDS="~*" |
| VIDEO_CARDS=" |
| amdgpu exynos intel marvell mediatek msm |
| radeon radeonsi rockchip tegra vc4 virgl |
| " |
| IUSE="-asan linear_align_256 test" |
| for card in ${VIDEO_CARDS}; do |
| IUSE+=" video_cards_${card}" |
| done |
| |
| MINI_GBM_PLATFORMS_USE=( mt8173 mt8183 mt8186 mt8188g mt8192 mt8195 mt8196 sc7280) |
| IUSE+=" ${MINI_GBM_PLATFORMS_USE[*]/#/minigbm_platform_}" |
| |
| RDEPEND=" |
| x11-libs/libdrm |
| test? ( dev-cpp/gtest ) |
| !media-libs/mesa[gbm]" |
| |
| DEPEND="${RDEPEND} |
| virtual/pkgconfig |
| video_cards_amdgpu? ( |
| virtual/opengles |
| x11-drivers/opengles-headers |
| )" |
| |
| src_prepare() { |
| default |
| sanitizers-setup-env |
| cros-common.mk_src_prepare |
| } |
| |
| src_configure() { |
| export LIBDIR="/usr/$(get_libdir)" |
| append-cppflags -DDRI_DRIVER_DIR="/usr/$(get_libdir)/dri" |
| use video_cards_amdgpu && append-cppflags -DDRV_AMDGPU && export DRV_AMDGPU=1 |
| use video_cards_exynos && append-cppflags -DDRV_EXYNOS && export DRV_EXYNOS=1 |
| use video_cards_intel && append-cppflags -DDRV_I915 && export DRV_I915=1 |
| use video_cards_marvell && append-cppflags -DDRV_MARVELL && export DRV_MARVELL=1 |
| use minigbm_platform_mt8173 && append-cppflags -DMTK_MT8173 |
| use minigbm_platform_mt8183 && append-cppflags -DMTK_MT8183 |
| use minigbm_platform_mt8186 && append-cppflags -DMTK_MT8186 |
| use minigbm_platform_mt8188g && append-cppflags -DMTK_MT8188G |
| use minigbm_platform_mt8192 && append-cppflags -DMTK_MT8192 |
| use minigbm_platform_mt8195 && append-cppflags -DMTK_MT8195 |
| use minigbm_platform_mt8196 && append-cppflags -DMTK_MT8196 |
| use minigbm_platform_sc7280 && append-cppflags -DSC_7280 |
| use video_cards_mediatek && append-cppflags -DDRV_MEDIATEK -DDRV_PANFROST && export DRV_MEDIATEK=1 |
| use video_cards_msm && append-cppflags -DDRV_MSM && export DRV_MSM=1 |
| use video_cards_radeon && append-cppflags -DDRV_RADEON && export DRV_RADEON=1 |
| use video_cards_radeonsi && append-cppflags -DDRV_RADEON && export DRV_RADEON=1 |
| use video_cards_rockchip && append-cppflags -DDRV_ROCKCHIP && export DRV_ROCKCHIP=1 |
| use video_cards_tegra && append-cppflags -DDRV_TEGRA && export DRV_TEGRA=1 |
| use video_cards_vc4 && append-cppflags -DDRV_VC4 && export DRV_VC4=1 |
| use video_cards_virgl && append-cppflags -DDRV_VIRGL && export DRV_VIRGL=1 |
| use linear_align_256 && append-cppflags -DLINEAR_ALIGN_256 |
| cros-common.mk_src_configure |
| } |
| |
| src_test() { |
| if use amd64 || use x86; then |
| emake tests |
| fi |
| } |
| |
| src_compile() { |
| cros-common.mk_src_compile |
| } |
| |
| src_install() { |
| insinto "${EPREFIX}/etc/udev/rules.d" |
| doins "${FILESDIR}/50-vgem.rules" |
| |
| default |
| } |