commit:     bc81ad83e2a4b0e39fc31968487ec0b8fa93b4e4
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 21 05:54:51 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 21 06:01:10 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc81ad83

media-libs/vulkan-layers: wire up (restricted) tests

There's a gazillion segfaults that need investigation, so wire up
the tests but keep them restricted for now.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../vulkan-layers-1.4.313.0-tests-no-static.patch  | 40 ++++++++++++++++++++++
 .../vulkan-layers/vulkan-layers-1.4.313.0.ebuild   | 10 ++++--
 media-libs/vulkan-layers/vulkan-layers-9999.ebuild | 10 ++++--
 3 files changed, 56 insertions(+), 4 deletions(-)

diff --git 
a/media-libs/vulkan-layers/files/vulkan-layers-1.4.313.0-tests-no-static.patch 
b/media-libs/vulkan-layers/files/vulkan-layers-1.4.313.0-tests-no-static.patch
new file mode 100644
index 000000000000..601f459f8482
--- /dev/null
+++ 
b/media-libs/vulkan-layers/files/vulkan-layers-1.4.313.0-tests-no-static.patch
@@ -0,0 +1,40 @@
+This is a revert of upstream commit b5c2e38840480e3653360127f18459a907c75f5c 
to allow
+building tests without building dev-util/spirv-tools with static-libs.
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -320,13 +320,11 @@ endif()
+ 
+ find_package(GTest CONFIG)
+ find_package(glslang CONFIG)
+-find_package(SPIRV-Tools CONFIG)
+ 
+ target_link_libraries(vk_layer_validation_tests PRIVATE
+     VkLayer_utils
+     glslang::SPIRV
+     glslang::SPVRemapper
+-    SPIRV-Tools-static
+     SPIRV-Headers::SPIRV-Headers
+     GTest::gtest
+     GTest::gtest_main
+@@ -347,6 +345,21 @@ target_include_directories(vk_layer_validation_tests 
PRIVATE
+     ${VVL_SOURCE_DIR}/layers/external
+ )
+ 
++find_package(SPIRV-Tools CONFIG QUIET)
++
++# See https://github.com/KhronosGroup/SPIRV-Tools/issues/3909 for background 
on this.
++# The targets available from SPIRV-Tools change depending on how 
SPIRV_TOOLS_BUILD_STATIC is set.
++# Try to handle all possible combinations so that we work with externally 
built packages.
++if (TARGET SPIRV-Tools)
++    target_link_libraries(vk_layer_validation_tests PRIVATE SPIRV-Tools)
++elseif(TARGET SPIRV-Tools-static)
++    target_link_libraries(vk_layer_validation_tests PRIVATE 
SPIRV-Tools-static)
++elseif(TARGET SPIRV-Tools-shared)
++    target_link_libraries(vk_layer_validation_tests PRIVATE 
SPIRV-Tools-shared)
++else()
++    message(FATAL_ERROR "Cannot determine SPIRV-Tools target name")
++endif()
++
+ # More details in tests/android/mock/README.md
+ option(VVL_MOCK_ANDROID "Enable building for Android on desktop for testing 
with MockICD setup")
+ if(VVL_MOCK_ANDROID)

diff --git a/media-libs/vulkan-layers/vulkan-layers-1.4.313.0.ebuild 
b/media-libs/vulkan-layers/vulkan-layers-1.4.313.0.ebuild
index a9bc67b96005..f73a7e9ec03c 100644
--- a/media-libs/vulkan-layers/vulkan-layers-1.4.313.0.ebuild
+++ b/media-libs/vulkan-layers/vulkan-layers-1.4.313.0.ebuild
@@ -22,7 +22,9 @@ 
HOMEPAGE="https://github.com/KhronosGroup/Vulkan-ValidationLayers";
 
 LICENSE="Apache-2.0"
 SLOT="0"
-IUSE="wayland X"
+IUSE="wayland test X"
+# Many segfaults as of 1.4.313.0
+RESTRICT="!test? ( test ) test"
 
 RDEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]"
 DEPEND="${RDEPEND}
@@ -40,6 +42,10 @@ DEPEND="${RDEPEND}
 
 QA_SONAME="/usr/lib[^/]*/libVkLayer_khronos_validation.so"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.4.313.0-tests-no-static.patch
+)
+
 multilib_src_configure() {
        local mycmakeargs=(
                -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG"
@@ -49,7 +55,7 @@ multilib_src_configure() {
                -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland)
                -DBUILD_WSI_XCB_SUPPORT=$(usex X)
                -DBUILD_WSI_XLIB_SUPPORT=$(usex X)
-               -DBUILD_TESTS=OFF
+               -DBUILD_TESTS=$(usex test)
        )
        cmake_src_configure
 }

diff --git a/media-libs/vulkan-layers/vulkan-layers-9999.ebuild 
b/media-libs/vulkan-layers/vulkan-layers-9999.ebuild
index aead30e6a6fe..6c18930cbc0b 100644
--- a/media-libs/vulkan-layers/vulkan-layers-9999.ebuild
+++ b/media-libs/vulkan-layers/vulkan-layers-9999.ebuild
@@ -22,7 +22,9 @@ 
HOMEPAGE="https://github.com/KhronosGroup/Vulkan-ValidationLayers";
 
 LICENSE="Apache-2.0"
 SLOT="0"
-IUSE="wayland X"
+IUSE="wayland test X"
+# Many segfaults as of 1.4.313.0
+RESTRICT="!test? ( test ) test"
 
 RDEPEND="~dev-util/spirv-tools-${PV}[${MULTILIB_USEDEP}]"
 DEPEND="${RDEPEND}
@@ -40,6 +42,10 @@ DEPEND="${RDEPEND}
 
 QA_SONAME="/usr/lib[^/]*/libVkLayer_khronos_validation.so"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.4.313.0-tests-no-static.patch
+)
+
 multilib_src_configure() {
        local mycmakeargs=(
                -DCMAKE_C_FLAGS="${CFLAGS} -DNDEBUG"
@@ -49,7 +55,7 @@ multilib_src_configure() {
                -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland)
                -DBUILD_WSI_XCB_SUPPORT=$(usex X)
                -DBUILD_WSI_XLIB_SUPPORT=$(usex X)
-               -DBUILD_TESTS=OFF
+               -DBUILD_TESTS=$(usex test)
        )
        cmake_src_configure
 }

Reply via email to