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
}