From 6321bf07f701692b82bb3a767071e68fc7e19bbf Mon Sep 17 00:00:00 2001 From: Sergei Popov Date: Tue, 19 Aug 2025 22:03:38 +0400 Subject: CMake: Guard inclusion of VULKAN_HEADERS and SPIRV-Headers (#8124) Don't include the VULKAN_HEADERS and SPIRV-Headers submodule if they are already included. Fix for the https://github.com/shader-slang/slang/issues/7898. --------- Co-authored-by: Ellie Hermaszewska Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> --- external/CMakeLists.txt | 52 ++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 24 deletions(-) (limited to 'external') diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 029966b29..d8b4c2bca 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -82,16 +82,18 @@ if(NOT ${SLANG_USE_SYSTEM_LZ4}) endif() # Vulkan headers -if(NOT ${SLANG_USE_SYSTEM_VULKAN_HEADERS}) - if(NOT SLANG_OVERRIDE_VULKAN_HEADERS_PATH) - add_subdirectory(vulkan EXCLUDE_FROM_ALL ${system}) - else() - add_subdirectory( - ${SLANG_OVERRIDE_VULKAN_HEADERS_PATH}/vulkan - vulkan - EXCLUDE_FROM_ALL - ${system} - ) +if(NOT TARGET Vulkan::Headers) + if(NOT ${SLANG_USE_SYSTEM_VULKAN_HEADERS}) + if(NOT SLANG_OVERRIDE_VULKAN_HEADERS_PATH) + add_subdirectory(vulkan EXCLUDE_FROM_ALL ${system}) + else() + add_subdirectory( + ${SLANG_OVERRIDE_VULKAN_HEADERS_PATH}/vulkan + vulkan + EXCLUDE_FROM_ALL + ${system} + ) + endif() endif() endif() @@ -103,22 +105,24 @@ target_include_directories( ) # SPIRV-Headers -if(SLANG_USE_SYSTEM_SPIRV_HEADERS) - if(SLANG_OVERRIDE_SPIRV_HEADERS_PATH) - message( - WARNING - "SLANG_OVERRIDE_SPIRV_HEADERS_PATH does nothing when SLANG_USE_SPIRV_HEADERS is set" +if(NOT TARGET SPIRV-Headers) + if(SLANG_USE_SYSTEM_SPIRV_HEADERS) + if(SLANG_OVERRIDE_SPIRV_HEADERS_PATH) + message( + WARNING + "SLANG_OVERRIDE_SPIRV_HEADERS_PATH does nothing when SLANG_USE_SPIRV_HEADERS is set" + ) + endif() + elseif(SLANG_OVERRIDE_SPIRV_HEADERS_PATH) + add_subdirectory( + ${SLANG_OVERRIDE_SPIRV_HEADERS_PATH}/spirv-headers + spirv-headers + EXCLUDE_FROM_ALL + ${system} ) + else() + add_subdirectory(spirv-headers EXCLUDE_FROM_ALL ${system}) endif() -elseif(SLANG_OVERRIDE_SPIRV_HEADERS_PATH) - add_subdirectory( - ${SLANG_OVERRIDE_SPIRV_HEADERS_PATH}/spirv-headers - spirv-headers - EXCLUDE_FROM_ALL - ${system} - ) -else() - add_subdirectory(spirv-headers EXCLUDE_FROM_ALL ${system}) endif() if(SLANG_ENABLE_SLANG_GLSLANG) -- cgit v1.2.3