From f5bf5ba5170058f9a9634438f7ff06f1a02e1da6 Mon Sep 17 00:00:00 2001 From: Anders Leino Date: Wed, 25 Sep 2024 10:24:51 +0300 Subject: Enable emscripten builds to compile slang.dll to WebAssembly. (#5131) * Compile fixes for Wasm The issues are all are due to 'long' types being 32 bits on WASM. - class members redeclared errors - << with StringBuilder and unsigned long is ambiguous This helps to address issue #5115. * Use the host executable suffix for generators Since the generators are run at build-time, we should not use CMAKE_EXECUTABLE_SUFFIX, which is the suffix for the target platform. Instead, define CMAKE_HOST_EXECUTABLE_SUFFIX as appropriate, and use that suffix instead. This helps to address issue #5115. * Add support for Wasm as a platform This helps to address issue #5115. * Add emscripten build This closes #5115. --- CMakePresets.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'CMakePresets.json') diff --git a/CMakePresets.json b/CMakePresets.json index e87b976bd..7b847e03e 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -15,6 +15,16 @@ "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$:Debug>" } }, + { + "name": "emscripten", + "description": "Emscripten-based Wasm build", + "generator": "ninja", + "binaryDir": "${sourceDir}/build.em", + "cacheVariables": { + "SLANG_SLANG_LLVM_FLAVOR": "DISABLE", + "CMAKE_EXE_LINKER_FLAGS": "-sASSERTIONS -sALLOW_MEMORY_GROWTH" + } + }, { "name": "msvc-base", "hidden": true, @@ -74,6 +84,14 @@ "configurePreset": "default", "configuration": "Release" }, + { + "name": "emscripten", + "configurePreset": "emscripten", + "configuration": "Release", + "targets": [ + "slang" + ] + }, { "name": "generators", "inherits": "release", -- cgit v1.2.3