blob: 26d142f18bb30119e50132cff76d78f8228cab3d [file] [log] [blame]
# Copyright 2022 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake-utils flag-o-matic unpacker
DESCRIPTION="Vulkan API Capture and Replay Tools"
HOMEPAGE="https://github.com/LunarG/gfxreconstruct"
GIT_HASH="761837794a1e57f918a85af7000b12e531b178ae"
SRC_URI="https://github.com/LunarG/gfxreconstruct/archive/${GIT_HASH}.tar.gz -> gfxreconstruct-${GIT_HASH}.tar.gz"
LICENSE="MIT"
KEYWORDS="*"
IUSE=""
SLOT="0"
S="${WORKDIR}/gfxreconstruct-${GIT_HASH}"
DEPEND="x11-libs/libxcb
sys-libs/zlib
app-arch/zstd"
RDEPEND="${DEPEND}"
BDEPEND="
x11-libs/xcb-util-keysyms
dev-util/vulkan-headers"
PATCHES=(
# Look for Vulkan headers in the right place during build.
"${FILESDIR}/gfxreconstruct-0.9.11-0000-headers.patch"
# Update generated code for ChromeOS.
"${FILESDIR}/gfxreconstruct-0.9.11-0001-generated.patch"
# Fix library path in layer manifest.
"${FILESDIR}/gfxreconstruct-0.9.11-0002-layer_config.patch"
)
src_prepare() {
cmake-utils_src_prepare
}
src_configure() {
cros_enable_cxx_exceptions
cmake-utils_src_configure
}
src_compile() {
cmake-utils_src_compile
}
src_install() {
local OUTDIR="${WORKDIR}/gfxreconstruct-0.9.11_build"
local TOOLSDIR="${OUTDIR}/tools"
dobin "${TOOLSDIR}/replay/gfxrecon-replay"
dobin "${TOOLSDIR}/compress/gfxrecon-compress"
dobin "${TOOLSDIR}/optimize/gfxrecon-optimize"
dobin "${TOOLSDIR}/replay/gfxrecon-replay"
dobin "${TOOLSDIR}/capture/gfxrecon-capture.py"
dobin "${TOOLSDIR}/toascii/gfxrecon-toascii"
dobin "${TOOLSDIR}/extract/gfxrecon-extract"
dobin "${TOOLSDIR}/info/gfxrecon-info"
dolib.so "${OUTDIR}/layer/libVkLayer_gfxreconstruct.so"
insinto /usr/share/vulkan/explicit_layer.d
doins "${OUTDIR}/layer/VkLayer_gfxreconstruct.json"
}