dev-util/vulkan-tools: Also install 32-bit binaries in multiabi case
authorNick Sarnie <sarnex@gentoo.org>
Sat, 1 Sep 2018 22:03:48 +0000 (18:03 -0400)
committerNick Sarnie <sarnex@gentoo.org>
Sat, 1 Sep 2018 22:56:42 +0000 (18:56 -0400)
Closes: https://bugs.gentoo.org/660760
Package-Manager: Portage-2.3.48, Repoman-2.3.10

dev-util/vulkan-tools/vulkan-tools-1.1.77.0-r2.ebuild [new file with mode: 0644]
dev-util/vulkan-tools/vulkan-tools-9999.ebuild

diff --git a/dev-util/vulkan-tools/vulkan-tools-1.1.77.0-r2.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.1.77.0-r2.ebuild
new file mode 100644 (file)
index 0000000..a31a436
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python3_{4,5,6} )
+
+if [[ "${PV}" == "9999" ]]; then
+       EGIT_REPO_URI="https://github.com/KhronosGroup/Vulkan-Tools.git"
+       EGIT_SUBMODULES=()
+       inherit git-r3
+else
+       EGIT_COMMIT="384fff68c802a10b5d7f4f352a4bb43b3efe5f23"
+       KEYWORDS="~amd64"
+       SRC_URI="https://github.com/KhronosGroup/Vulkan-Tools/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+       S="${WORKDIR}/Vulkan-Tools-${EGIT_COMMIT}"
+fi
+
+inherit python-any-r1 cmake-multilib
+
+DESCRIPTION="Official Vulkan Tools and Utilities for Windows, Linux, Android, and MacOS"
+HOMEPAGE="https://github.com/KhronosGroup/Vulkan-Tools"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="+cube +vulkaninfo X wayland"
+
+# Old packaging will cause file collisions
+RDEPEND="!<=media-libs/vulkan-loader-1.1.70.0-r999"
+DEPEND="${PYTHON_DEPS}
+       cube? ( dev-util/glslang:=[${MULTILIB_USEDEP}] )
+       dev-util/vulkan-headers
+       media-libs/vulkan-loader:=[${MULTILIB_USEDEP},wayland?,X?]
+       wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] )
+       X? (
+               x11-libs/libX11:=[${MULTILIB_USEDEP}]
+               x11-libs/libXrandr:=[${MULTILIB_USEDEP}]
+          )"
+
+# Vulkaninfo does not support wayland
+REQUIRED_USE="|| ( X wayland )
+                         vulkaninfo? ( X )"
+
+multilib_src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_SKIP_RPATH=True
+               -DBUILD_CUBE=$(usex cube)
+               -DBUILD_VULKANINFO=$(usex vulkaninfo)
+               -DBUILD_WSI_MIR_SUPPORT=False
+               -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland)
+               -DBUILD_WSI_XCB_SUPPORT=$(usex X)
+               -DBUILD_WSI_XLIB_SUPPORT=$(usex X)
+               -DGLSLANG_INSTALL_DIR="/usr"
+               -DVULKAN_HEADERS_INSTALL_DIR="/usr"
+       )
+
+       # Upstream only supports one window system at a time
+       # If X is set at all, even if wayland is set, use X
+       #
+       # If -cube and/or -vulkaninfo is set, the flags we set
+       # are ignored, so we don't need to consider that
+       if use X; then
+               mycmakeargs+=(
+                       -DCUBE_WSI_SELECTION="XCB"
+                       -DVULKANINFO_WSI_SELECTION="XCB"
+               )
+       fi
+
+       if ! use X && use wayland; then
+               mycmakeargs+=(
+                       -DCUBE_WSI_SELECTION="WAYLAND"
+               )
+       fi
+
+       cmake-utils_src_configure
+}
+
+multilib_src_install() {
+       cmake-utils_src_install
+
+       if ! multilib_is_native_abi; then
+               mv "${ED%/}"/usr/bin/vulkaninfo "${ED%/}"/usr/bin/vulkaninfo32 || die
+       fi
+
+       if use cube; then
+               if multilib_is_native_abi; then
+                       mv "${ED%/}"/usr/bin/cube "${ED%/}"/usr/bin/vulkancube || die
+                       mv "${ED%/}"/usr/bin/cubepp "${ED%/}"/usr/bin/vulkancubecpp || die
+               else
+                       mv "${ED%/}"/usr/bin/cube "${ED%/}"/usr/bin/vulkancube32 || die
+                       mv "${ED%/}"/usr/bin/cubepp "${ED%/}"/usr/bin/vulkancubecpp32 || die
+               fi
+       fi
+}
+
+pkg_postinst() {
+       einfo "The cube and cubepp demos have been renamed to"
+       einfo "vulkancube and vulkancubecpp to prevent collisions"
+}
index 6fa37cabcccd21a37f9966222d652a2fd6828587..a31a4361ef6e9f1e6143bef1610fcf86312d0d07 100644 (file)
@@ -77,9 +77,18 @@ multilib_src_configure() {
 multilib_src_install() {
        cmake-utils_src_install
 
+       if ! multilib_is_native_abi; then
+               mv "${ED%/}"/usr/bin/vulkaninfo "${ED%/}"/usr/bin/vulkaninfo32 || die
+       fi
+
        if use cube; then
-               mv "${ED%/}"/usr/bin/cube "${ED%/}"/usr/bin/vulkancube || die
-               mv "${ED%/}"/usr/bin/cubepp "${ED%/}"/usr/bin/vulkancubecpp || die
+               if multilib_is_native_abi; then
+                       mv "${ED%/}"/usr/bin/cube "${ED%/}"/usr/bin/vulkancube || die
+                       mv "${ED%/}"/usr/bin/cubepp "${ED%/}"/usr/bin/vulkancubecpp || die
+               else
+                       mv "${ED%/}"/usr/bin/cube "${ED%/}"/usr/bin/vulkancube32 || die
+                       mv "${ED%/}"/usr/bin/cubepp "${ED%/}"/usr/bin/vulkancubecpp32 || die
+               fi
        fi
 }