blob: 92aa8f659cbbf3ad4904bd049fb6b51db2c8fa71 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
diff --git a/tests/framework/CMakeLists.txt b/tests/framework/CMakeLists.txt
index 1950b4b06..3fee44ae0 100644
--- a/tests/framework/CMakeLists.txt
+++ b/tests/framework/CMakeLists.txt
@@ -74,7 +74,6 @@ target_include_directories(vk_test_framework PUBLIC
find_package(GTest CONFIG)
find_package(glslang CONFIG)
-find_package(SPIRV-Tools CONFIG)
if(${CMAKE_CXX_COMPILER_ID} MATCHES "(GNU|Clang)")
target_compile_options(vk_test_framework PUBLIC
@@ -103,7 +102,6 @@ endif()
target_link_libraries(vk_test_framework PUBLIC
VkLayer_utils
glslang::SPIRV
- SPIRV-Tools-static
SPIRV-Headers::SPIRV-Headers
GTest::gtest
GTest::gtest_main
@@ -112,6 +110,21 @@ target_link_libraries(vk_test_framework PUBLIC
$<TARGET_NAME_IF_EXISTS:PkgConfig::WAYlAND_CLIENT>
)
+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_test_framework PRIVATE SPIRV-Tools)
+elseif(TARGET SPIRV-Tools-static)
+ target_link_libraries(vk_test_framework PRIVATE SPIRV-Tools-static)
+elseif(TARGET SPIRV-Tools-shared)
+ target_link_libraries(vk_test_framework PRIVATE SPIRV-Tools-shared)
+else()
+ message(FATAL_ERROR "Cannot determine SPIRV-Tools target name")
+endif()
+
# setup framework/config.h using framework/config.h.in as a source
file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/config_$<CONFIG>.h" INPUT "config.h.in")
|