From eebe849075c21d163739cbc5e976e7b5b6837e7f Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 31 Jan 2025 05:02:26 -0800 Subject: Distribute slang-glsl-module.bin in release packages. (#6233) * Distribute slang-glsl-module.bin in release packages. * Fix. * fix2. * Build glsl modlue into a dll. --- source/slang-glsl-module/CMakeLists.txt | 39 ++++++++++++++++++++++ .../slang-embedded-glsl-module.cpp | 17 ++++++++++ 2 files changed, 56 insertions(+) create mode 100644 source/slang-glsl-module/CMakeLists.txt create mode 100644 source/slang-glsl-module/slang-embedded-glsl-module.cpp (limited to 'source/slang-glsl-module') diff --git a/source/slang-glsl-module/CMakeLists.txt b/source/slang-glsl-module/CMakeLists.txt new file mode 100644 index 000000000..d42b31ee6 --- /dev/null +++ b/source/slang-glsl-module/CMakeLists.txt @@ -0,0 +1,39 @@ +# +# Generate an embeddable glsl module +# + +set(glsl_module_generated_header_dir ${CMAKE_CURRENT_BINARY_DIR}) +set(glsl_module_generated_header + ${glsl_module_generated_header_dir}/slang-glsl-module-generated.h +) +add_custom_command( + OUTPUT ${glsl_module_generated_header} + COMMAND + slang-bootstrap -archive-type riff-lz4 -save-glsl-module-bin-source + ${glsl_module_generated_header} + DEPENDS slang-bootstrap + VERBATIM +) + +set(glsl_module_common_args + . + MODULE + FOLDER + generated + LINK_WITH_PRIVATE + core + USE_EXTRA_WARNINGS + EXPLICIT_SOURCE + ./slang-embedded-glsl-module.cpp +) + +slang_add_target( + ${glsl_module_common_args} + TARGET_NAME slang-glsl-module + EXCLUDE_FROM_ALL + EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL + EXPORT_SET_NAME SlangTargets + EXPLICIT_SOURCE ${glsl_module_generated_header} + INCLUDE_DIRECTORIES_PRIVATE ${glsl_module_generated_header_dir} + INSTALL +) diff --git a/source/slang-glsl-module/slang-embedded-glsl-module.cpp b/source/slang-glsl-module/slang-embedded-glsl-module.cpp new file mode 100644 index 000000000..7435f1edb --- /dev/null +++ b/source/slang-glsl-module/slang-embedded-glsl-module.cpp @@ -0,0 +1,17 @@ +#include "../core/slang-array-view.h" +#include "../core/slang-basic.h" +#include "../core/slang-blob.h" + +static const uint8_t g_glslModule[] = { +#include "slang-glsl-module-generated.h" +}; + +static Slang::StaticBlob g_glslModuleBlob((const void*)g_glslModule, sizeof(g_glslModule)); + +extern "C" +{ + SLANG_DLL_EXPORT ISlangBlob* slang_getEmbeddedModule() + { + return &g_glslModuleBlob; + } +} -- cgit v1.2.3