diff --git a/bazel/emscripten_toolchain/toolchain.bzl b/bazel/emscripten_toolchain/toolchain.bzl index 58d9b6d..2bddd56 100644 --- a/bazel/emscripten_toolchain/toolchain.bzl +++ b/bazel/emscripten_toolchain/toolchain.bzl @@ -441,6 +441,9 @@ def _impl(ctx): name = "output_format_js", enabled = True, ), + feature( + name = "wasm_standalone", + ), ] crosstool_default_flag_sets = [ @@ -1015,6 +1018,11 @@ def _impl(ctx): flags = ["-Werror"], features = ["wasm_warnings_as_errors"], ), + flag_set( + actions = all_link_actions, + flags = ["-sSTANDALONE_WASM"], + features = ["wasm_standalone"], + ), ] crosstool_default_env_sets = [ diff --git a/bazel/emscripten_toolchain/wasm_cc_binary.bzl b/bazel/emscripten_toolchain/wasm_cc_binary.bzl index c4b9c9d..416ccae 100644 --- a/bazel/emscripten_toolchain/wasm_cc_binary.bzl +++ b/bazel/emscripten_toolchain/wasm_cc_binary.bzl @@ -25,6 +25,9 @@ def _wasm_transition_impl(settings, attr): if attr.simd: features.append("wasm_simd") + if attr.standalone: + features.append("wasm_standalone") + return { "//command_line_option:compiler": "emscripten", "//command_line_option:crosstool_top": "@emsdk//emscripten_toolchain:everything", @@ -86,6 +89,9 @@ _WASM_BINARY_COMMON_ATTRS = { "simd": attr.bool( default = False, ), + "standalone": attr.bool( + default = False, + ), "_allowlist_function_transition": attr.label( default = "@bazel_tools//tools/allowlists/function_transition_allowlist", ),