[Bazel] Support generating a secondary cache (#1405)
This is a working solution for generating a separate Emscripten cache.
Note that this requires an additional entry in the workspace as follows:
```starlark
load("@emsdk//:emscripten_cache.bzl", emsdk_emscripten_cache = "emscripten_cache")
emsdk_emscripten_cache()
```
When used like this, the default Emscripten cache will be used. However,
if the entry is as follows:
```starlark
load("@emsdk//:emscripten_cache.bzl", emsdk_emscripten_cache = "emscripten_cache")
emsdk_emscripten_cache(flags = ["--lto"])
```
Then embuilder will be called to build all system libraries and ports
(i.e., the `ALL` option to embuilder) with the LTO option enabled. This
can take awhile, so I have also made possible to specify which libraries
you want to build explicitly:
```starlark
load("@emsdk//:emscripten_cache.bzl", emsdk_emscripten_cache = "emscripten_cache")
emsdk_emscripten_cache(
flags = ["--lto"],
libraries = [
"crtbegin",
"libprintf_long_double-debug",
"libstubs-debug",
"libnoexit",
"libc-debug",
"libdlmalloc",
"libcompiler_rt",
"libc++-noexcept",
"libc++abi-debug-noexcept",
"libsockets"
]
)
```
Resolves #807, resolves #971, resolves #1099, resolves #1362, resolves
#1401
This commit is contained in:
committed by
GitHub
parent
7fbd555dbe
commit
82d41a76d3
@@ -5,7 +5,7 @@ package(default_visibility = ["//visibility:public"])
|
||||
filegroup(
|
||||
name = "common_files",
|
||||
srcs = [
|
||||
"emscripten_config",
|
||||
"@emscripten_cache//:emscripten_config",
|
||||
"env.sh",
|
||||
"env.bat",
|
||||
"@nodejs//:node_files",
|
||||
@@ -60,7 +60,7 @@ cc_library(name = "malloc")
|
||||
emscripten_cc_toolchain_config_rule(
|
||||
name = "wasm",
|
||||
cpu = "wasm",
|
||||
em_config = "emscripten_config",
|
||||
em_config = "@emscripten_cache//:emscripten_config",
|
||||
emscripten_binaries = "@emsdk//:compiler_files",
|
||||
script_extension = select({
|
||||
"@bazel_tools//src/conditions:host_windows": "bat",
|
||||
|
||||
Reference in New Issue
Block a user