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 $<$: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)