summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt33
-rw-r--r--external/CMakeLists.txt59
2 files changed, 65 insertions, 27 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ca1621b4..a5870b452 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -175,6 +175,16 @@ advanced_option(
"Build using system unordered dense"
OFF
)
+advanced_option(
+ SLANG_USE_SYSTEM_SPIRV_TOOLS
+ "Build using system SPIR-V tools library"
+ OFF
+)
+advanced_option(
+ SLANG_USE_SYSTEM_GLSLANG
+ "Build using system glslang library"
+ OFF
+)
option(
SLANG_SPIRV_HEADERS_INCLUDE_DIR
@@ -408,6 +418,29 @@ if(SLANG_USE_SYSTEM_SPIRV_HEADERS)
find_package(SPIRV-Headers REQUIRED)
endif()
+if(${SLANG_USE_SYSTEM_MINIZ})
+ find_package(miniz REQUIRED)
+ add_library(miniz ALIAS miniz::miniz)
+endif()
+
+if(${SLANG_USE_SYSTEM_LZ4})
+ find_package(lz4 REQUIRED)
+ add_library(lz4_static ALIAS LZ4::lz4)
+endif()
+
+if(${SLANG_USE_SYSTEM_VULKAN_HEADERS})
+ find_package(VulkanHeaders REQUIRED)
+endif()
+
+if(${SLANG_USE_SYSTEM_SPIRV_TOOLS})
+ find_package(SPIRV-Tools REQUIRED)
+endif()
+
+if(${SLANG_USE_SYSTEM_GLSLANG})
+ find_package(glslang REQUIRED)
+ add_library(glslang ALIAS glslang::glslang)
+endif()
+
add_subdirectory(external)
# webgpu_dawn is only available as a fetched shared library, since Dawn's nested source
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index d8b4c2bca..faa8a5730 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -142,35 +142,40 @@ if(SLANG_ENABLE_SLANG_GLSLANG)
)
endif()
- # SPIRV-Tools
- set(SPIRV_TOOLS_BUILD_STATIC ON)
- set(SPIRV_WERROR OFF)
- set(SPIRV_SKIP_TESTS ON)
- # Tools
- if(NOT SLANG_OVERRIDE_SPIRV_TOOLS_PATH)
- add_subdirectory(spirv-tools EXCLUDE_FROM_ALL ${system})
- else()
- add_subdirectory(
- ${SLANG_OVERRIDE_SPIRV_TOOLS_PATH}/spirv-tools
- spirv-tools
- EXCLUDE_FROM_ALL
- ${system}
- )
+ if(NOT ${SLANG_USE_SYSTEM_SPIRV_TOOLS})
+ # SPIRV-Tools
+ set(SPIRV_TOOLS_BUILD_STATIC ON)
+ set(SPIRV_WERROR OFF)
+ set(SPIRV_SKIP_TESTS ON)
+ # Tools
+ if(NOT SLANG_OVERRIDE_SPIRV_TOOLS_PATH)
+ add_subdirectory(spirv-tools EXCLUDE_FROM_ALL ${system})
+ else()
+ add_subdirectory(
+ ${SLANG_OVERRIDE_SPIRV_TOOLS_PATH}/spirv-tools
+ spirv-tools
+ EXCLUDE_FROM_ALL
+ ${system}
+ )
+ endif()
endif()
- # glslang
- set(SKIP_GLSLANG_INSTALL ON)
- set(ENABLE_OPT ON)
- set(ENABLE_PCH OFF)
- if(NOT SLANG_OVERRIDE_GLSLANG_PATH)
- add_subdirectory(glslang EXCLUDE_FROM_ALL ${system})
- else()
- add_subdirectory(
- ${SLANG_OVERRIDE_GLSLANG_PATH}/glslang
- glslang
- EXCLUDE_FROM_ALL
- ${system}
- )
+ if(NOT ${SLANG_USE_SYSTEM_GLSLANG})
+ # glslang
+ set(SKIP_GLSLANG_INSTALL ON)
+ set(ENABLE_OPT ON)
+ set(ENABLE_PCH OFF)
+ set(ALLOW_EXTERNAL_SPIRV_TOOLS ${SLANG_USE_SYSTEM_SPIRV_TOOLS})
+ if(NOT SLANG_OVERRIDE_GLSLANG_PATH)
+ add_subdirectory(glslang EXCLUDE_FROM_ALL ${system})
+ else()
+ add_subdirectory(
+ ${SLANG_OVERRIDE_GLSLANG_PATH}/glslang
+ glslang
+ EXCLUDE_FROM_ALL
+ ${system}
+ )
+ endif()
endif()
endif()