diff options
| author | Sergei Popov <sergei.e.popov@gmail.com> | 2025-08-19 22:03:38 +0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-19 18:03:38 +0000 |
| commit | 6321bf07f701692b82bb3a767071e68fc7e19bbf (patch) | |
| tree | fa661b2e81b88a18d28c41f347dc015a9646b03e | |
| parent | ae1a93b579ed276d2455e1b97ca65ad4727d56d0 (diff) | |
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 <ellieh@nvidia.com>
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
| -rw-r--r-- | external/CMakeLists.txt | 52 |
1 files changed, 28 insertions, 24 deletions
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) |
