gentoo-ebuilds/media-libs/vulkan-layers/files/vulkan-layers-1.4.328.0-tests-no-static.patch
Matt Turner 4a541fe6d6
media-libs/vulkan-layers: Fix patch
Closes: https://bugs.gentoo.org/967274
Signed-off-by: Matt Turner <mattst88@gentoo.org>
2025-12-09 21:54:09 -05:00

42 lines
1.5 KiB
Diff

diff --git ./tests/CMakeLists.txt ./tests/CMakeLists.txt
index c7e2a73d8..5742cb8a1 100644
--- ./tests/CMakeLists.txt
+++ ./tests/CMakeLists.txt
@@ -337,7 +337,6 @@ endif()
find_package(GTest CONFIG)
find_package(glslang CONFIG)
-find_package(SPIRV-Tools CONFIG)
# Slang
# ---
@@ -533,7 +532,6 @@ target_link_libraries(vk_layer_validation_tests PRIVATE
VkLayer_utils
$<$<BOOL:${USE_SLANG}>:slang>
glslang::SPIRV
- SPIRV-Tools-static
SPIRV-Headers::SPIRV-Headers
GTest::gtest
GTest::gtest_main
@@ -554,6 +552,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)