summaryrefslogtreecommitdiffstats
path: root/external
diff options
context:
space:
mode:
authorSergei Popov <sergei.e.popov@gmail.com>2025-08-19 22:03:38 +0400
committerGitHub <noreply@github.com>2025-08-19 18:03:38 +0000
commit6321bf07f701692b82bb3a767071e68fc7e19bbf (patch)
treefa661b2e81b88a18d28c41f347dc015a9646b03e /external
parentae1a93b579ed276d2455e1b97ca65ad4727d56d0 (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>
Diffstat (limited to 'external')
-rw-r--r--external/CMakeLists.txt52
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)