summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorEmil Imbert Villumsen <emimvi@gmail.com>2025-06-13 21:48:26 +0200
committerGitHub <noreply@github.com>2025-06-13 12:48:26 -0700
commit1d8f6f86d1a6d33ff6e6429206b94d72457e1378 (patch)
treee5ae1ec38bc4d8703a9bed809fdd4cf05749b7c5 /source
parentdebdc7251ff31b82ea221893c6475e96dbe4dc16 (diff)
Fix SLANG_USE_SYSTEM_SPIRV_HEADERS (#7371)
* Use aliased SPIRV-Headers::SPIRV-Headers to also work with an installed SPIRV-Headers SPIRV-Headers standalone is only defined when using sources directly. When consuming an installed SPIRV-Headers via find_package, the full SPIRV-Headers::SPIRV-Headers must be used. The full syntax is supported by both source and installed builds. * Fix SLANG_USE_SYSTEM_SPIRV_HEADERS - Use find_package to bring in SPIRV-Headers cmake targets - Set SPIRV-Headers_SOURCE_DIR as a workaround when including spirv-tools - Query cmake for SLANG_SPIRV_HEADERS_INCLUDE_DIR location, supporting default, SLANG_OVERRIDE_SPIRV_HEADERS_PATH and find_package builds. - Cleanup unnecessary SPIRV_HEADER_DIR (unconditionally overwritten in spirv-tools)
Diffstat (limited to 'source')
-rw-r--r--source/compiler-core/CMakeLists.txt2
-rw-r--r--source/slang-core-module/CMakeLists.txt2
-rw-r--r--source/slang/CMakeLists.txt16
3 files changed, 5 insertions, 15 deletions
diff --git a/source/compiler-core/CMakeLists.txt b/source/compiler-core/CMakeLists.txt
index d3a88fddd..1873b21d4 100644
--- a/source/compiler-core/CMakeLists.txt
+++ b/source/compiler-core/CMakeLists.txt
@@ -5,7 +5,7 @@ slang_add_target(
EXCLUDE_FROM_ALL
USE_EXTRA_WARNINGS
LINK_WITH_PRIVATE core
- INCLUDE_FROM_PUBLIC SPIRV-Headers
+ INCLUDE_FROM_PUBLIC SPIRV-Headers::SPIRV-Headers
)
if(NOT MSVC)
# This is necessary to compile the DXC headers
diff --git a/source/slang-core-module/CMakeLists.txt b/source/slang-core-module/CMakeLists.txt
index 600190161..d7f29be0a 100644
--- a/source/slang-core-module/CMakeLists.txt
+++ b/source/slang-core-module/CMakeLists.txt
@@ -61,7 +61,7 @@ set(core_module_source_common_args
core
slang-capability-defs
slang-fiddle-output
- SPIRV-Headers
+ SPIRV-Headers::SPIRV-Headers
INCLUDE_DIRECTORIES_PRIVATE
../slang
${core_module_meta_output_dir}
diff --git a/source/slang/CMakeLists.txt b/source/slang/CMakeLists.txt
index 9ebf6b2bd..6c9b9c0b3 100644
--- a/source/slang/CMakeLists.txt
+++ b/source/slang/CMakeLists.txt
@@ -100,17 +100,7 @@ slang_add_target(
# generated lookup tables
#
-if(NOT SLANG_USE_SYSTEM_SPIRV_HEADERS)
- if(NOT SLANG_OVERRIDE_SPIRV_HEADERS_PATH)
- set(SLANG_SPIRV_HEADERS_INCLUDE_DIR
- "${slang_SOURCE_DIR}/external/spirv-headers/include"
- )
- else()
- set(SLANG_SPIRV_HEADERS_INCLUDE_DIR
- "${SLANG_OVERRIDE_SPIRV_HEADERS_PATH}/spirv-headers/include"
- )
- endif()
-endif()
+get_target_property(SLANG_SPIRV_HEADERS_INCLUDE_DIR SPIRV-Headers::SPIRV-Headers INTERFACE_INCLUDE_DIRECTORIES)
set(SLANG_LOOKUP_GENERATOR_INPUT_JSON
"${SLANG_SPIRV_HEADERS_INCLUDE_DIR}/spirv/unified1/extinst.glsl.std.450.grammar.json"
@@ -164,7 +154,7 @@ slang_add_target(
${SLANG_LOOKUP_GENERATED_SOURCE}
${SLANG_SPIRV_CORE_GRAMMAR_SOURCE}
EXPORT_TYPE_AS ${SLANG_LIB_TYPE}
- LINK_WITH_PRIVATE core SPIRV-Headers
+ LINK_WITH_PRIVATE core SPIRV-Headers::SPIRV-Headers
EXCLUDE_FROM_ALL
FOLDER generated
)
@@ -226,7 +216,7 @@ set(slang_link_args
slang-capability-lookup
slang-fiddle-output
slang-lookup-tables
- SPIRV-Headers
+ SPIRV-Headers::SPIRV-Headers
)
set(slang_interface_args INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/include)
set(slang_public_lib_args