@@ -12,9 +12,10 @@ option(WASM_AUTO_FETCH_TOOLS "Auto-download missing tools during configure" ON)
1212option (WEBVULKAN_BUILD_TESTS "Build maintainer smoke tests" OFF )
1313option (WEBVULKAN_ALLOW_DEP_UPDATES "Allow dependency git update during configure" OFF )
1414option (WEBVULKAN_DEPS_EDITABLE "Use editable local dependency checkouts without automatic git reset/update" OFF )
15- set (WEBVULKAN_CLANG_WASM_PACKAGE "clang/clang" CACHE STRING "Wasmer package used for OpenCL C to SPIR-V compilation" )
16- set (WEBVULKAN_SPIRV_WASM_PACKAGE "lights0123/llvm-spir" CACHE STRING "Wasmer package that provides SPIR-V compiler entrypoint" )
17- set (WEBVULKAN_SPIRV_WASM_ENTRYPOINT "clspv" CACHE STRING "Wasmer package command used for OpenCL C to SPIR-V" )
15+ set (WEBVULKAN_DXC_WASM_JS "" CACHE FILEPATH "Path to dxc.js built for Wasm HLSL-to-SPIR-V helper" )
16+ set (WEBVULKAN_CLANG_WASM_PACKAGE "clang/clang" CACHE STRING "Wasmer package used for clang-in-wasm tooling" )
17+ set (WEBVULKAN_SPIRV_WASM_PACKAGE "lights0123/llvm-spir" CACHE STRING "Wasmer package used for optional SPIR-V probe tooling" )
18+ set (WEBVULKAN_SPIRV_WASM_ENTRYPOINT "clspv" CACHE STRING "Wasmer package command used for optional SPIR-V probe tooling" )
1819set (WASM_EMSDK_VERSION "latest" CACHE STRING "emsdk version or tag" )
1920set (WASM_EMSDK_GIT_URL "https://github.com/emscripten-core/emsdk.git" CACHE STRING "emsdk git repository URL" )
2021set (WASM_EMSDK_GIT_REF "14c18b569f55138fe4963924162244251f454fb0" CACHE STRING "Pinned emsdk git ref" )
@@ -79,7 +80,10 @@ include(cmake/BootstrapCpm.cmake)
7980webvulkan_bootstrap_cpm ()
8081include (cmake/FetchWebVulkanSources.cmake )
8182set (WEBVULKAN_SHADER_COMPILER_SCRIPT "${PROJECT_SOURCE_DIR} /tools/webvulkan_compile_spirv.mjs" )
83+ set (WEBVULKAN_RUNTIME_SHADER_REGISTRY_SOURCE "${PROJECT_SOURCE_DIR} /runtime/src/webvulkan_shader_runtime_registry.c" )
84+ set (WEBVULKAN_RUNTIME_SHADER_REGISTRY_INCLUDE_DIR "${PROJECT_SOURCE_DIR} /runtime/include" )
8285include (cmake/WebVulkanShaderTools.cmake )
86+ include (cmake/WebVulkanRuntimeShaderRegistry.cmake )
8387
8488include (cmake/BootstrapEmsdk.cmake )
8589ensure_emsdk_ready (
@@ -156,6 +160,8 @@ add_library(webvulkan_llvm_jit INTERFACE)
156160add_library (webvulkan::llvm_jit ALIAS webvulkan_llvm_jit )
157161add_library (webvulkan_shader_tools INTERFACE )
158162add_library (webvulkan::shader_tools ALIAS webvulkan_shader_tools )
163+ add_library (webvulkan_runtime_shader_registry INTERFACE )
164+ add_library (webvulkan::runtime_shader_registry ALIAS webvulkan_runtime_shader_registry )
159165
160166add_dependencies (webvulkan_llvmpipe_wasm llvmpipe_wasm_spike )
161167add_dependencies (webvulkan_llvm_jit llvmpipe_wasm_spike )
@@ -175,6 +181,12 @@ target_link_libraries(webvulkan_llvmpipe_wasm INTERFACE
175181target_link_libraries (webvulkan_llvm_jit INTERFACE webvulkan::llvmpipe_wasm )
176182target_compile_definitions (webvulkan_llvm_jit INTERFACE WEBVULKAN_ENABLE_LLVM_JIT=1 )
177183set_property (TARGET webvulkan_shader_tools PROPERTY WEBVULKAN_SHADER_COMPILER_SCRIPT "${WEBVULKAN_SHADER_COMPILER_SCRIPT} " )
184+ target_include_directories (webvulkan_runtime_shader_registry INTERFACE
185+ "$<BUILD_INTERFACE :${WEBVULKAN_RUNTIME_SHADER_REGISTRY_INCLUDE_DIR} >"
186+ "$<INSTALL_INTERFACE :${CMAKE_INSTALL_DATADIR} /webvulkan /runtime /include >"
187+ )
188+ set_property (TARGET webvulkan_runtime_shader_registry PROPERTY WEBVULKAN_RUNTIME_SHADER_REGISTRY_SOURCE "${WEBVULKAN_RUNTIME_SHADER_REGISTRY_SOURCE} " )
189+ set_property (TARGET webvulkan_runtime_shader_registry PROPERTY WEBVULKAN_RUNTIME_SHADER_REGISTRY_INCLUDE_DIR "${WEBVULKAN_RUNTIME_SHADER_REGISTRY_INCLUDE_DIR} " )
178190
179191set (WEBVULKAN_PACKAGE_NAME "WebVulkanLlvmpipeWasm" )
180192set (WEBVULKAN_CONFIG_DIR "${CMAKE_INSTALL_LIBDIR} /cmake/${WEBVULKAN_PACKAGE_NAME} " )
@@ -206,8 +218,11 @@ install(FILES "${WEBVULKAN_DRIVER_ARCHIVE}" DESTINATION "${CMAKE_INSTALL_LIBDIR}
206218install (DIRECTORY "${MESA_SRC_DIR} /include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /mesa" )
207219install (DIRECTORY "${MESA_SRC_DIR} /src/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /mesa/src" )
208220install (DIRECTORY "${LLVM_WASM_INSTALL_DIR} /include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /llvm" )
221+ install (DIRECTORY "${PROJECT_SOURCE_DIR} /runtime/include/" DESTINATION "${CMAKE_INSTALL_DATADIR} /webvulkan/runtime/include" )
222+ install (FILES "${WEBVULKAN_RUNTIME_SHADER_REGISTRY_SOURCE} " DESTINATION "${CMAKE_INSTALL_DATADIR} /webvulkan/runtime/src" )
209223install (FILES "${WEBVULKAN_CONFIG_FILE} " "${WEBVULKAN_VERSION_FILE} " DESTINATION "${WEBVULKAN_CONFIG_DIR} " )
210224install (FILES "${PROJECT_SOURCE_DIR} /cmake/WebVulkanShaderTools.cmake" DESTINATION "${WEBVULKAN_CONFIG_DIR} " )
225+ install (FILES "${PROJECT_SOURCE_DIR} /cmake/WebVulkanRuntimeShaderRegistry.cmake" DESTINATION "${WEBVULKAN_CONFIG_DIR} " )
211226install (FILES "${PROJECT_SOURCE_DIR} /tools/webvulkan_compile_spirv.mjs" DESTINATION "${CMAKE_INSTALL_DATADIR} /webvulkan/tools" )
212227
213228if (WEBVULKAN_BUILD_TESTS)
0 commit comments