diff options
| author | Emil Imbert Villumsen <emimvi@gmail.com> | 2025-06-13 21:48:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-13 12:48:26 -0700 |
| commit | 1d8f6f86d1a6d33ff6e6429206b94d72457e1378 (patch) | |
| tree | e5ae1ec38bc4d8703a9bed809fdd4cf05749b7c5 /source | |
| parent | debdc7251ff31b82ea221893c6475e96dbe4dc16 (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.txt | 2 | ||||
| -rw-r--r-- | source/slang-core-module/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | source/slang/CMakeLists.txt | 16 |
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 |
