| load(":crosstool.bzl", "emscripten_cc_toolchain_config_rule") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| filegroup( |
| name = "common-script-includes", |
| srcs = [ |
| "emar.sh", |
| "emcc.sh", |
| "emscripten_config", |
| "env.sh", |
| "@nodejs//:node_files", |
| "@emsdk//:binaries", |
| "@emsdk//:node_modules", |
| ], |
| ) |
| |
| filegroup( |
| name = "compile-emscripten", |
| srcs = [":common-script-includes"], |
| ) |
| |
| filegroup( |
| name = "link-emscripten", |
| srcs = [ |
| "emcc_link.sh", |
| "link_wrapper.py", |
| ":common-script-includes", |
| "@emsdk//:binaries", |
| "@nodejs//:node_files", |
| ], |
| ) |
| |
| filegroup( |
| name = "every-file", |
| srcs = [ |
| ":compile-emscripten", |
| ":link-emscripten", |
| "@emsdk//:binaries", |
| "@nodejs//:node_files", |
| ], |
| ) |
| |
| filegroup(name = "empty") |
| |
| # dlmalloc.bc is implictly added by the emscripten toolchain |
| cc_library(name = "malloc") |
| |
| emscripten_cc_toolchain_config_rule( |
| name = "wasm", |
| cpu = "wasm", |
| em_config = "emscripten_config", |
| emscripten_binaries = "@emsdk//:binaries", |
| ) |
| |
| cc_toolchain( |
| name = "cc-compiler-wasm", |
| all_files = ":every-file", |
| ar_files = ":common-script-includes", |
| as_files = ":empty", |
| compiler_files = ":compile-emscripten", |
| dwp_files = ":empty", |
| linker_files = ":link-emscripten", |
| objcopy_files = ":empty", |
| strip_files = ":empty", |
| toolchain_config = "wasm", |
| toolchain_identifier = "emscripten-wasm", |
| ) |
| |
| cc_toolchain_suite( |
| name = "everything", |
| toolchains = { |
| "wasm": ":cc-compiler-wasm", |
| "wasm|emscripten": ":cc-compiler-wasm", |
| }, |
| ) |
| |
| py_binary( |
| name = "wasm_binary", |
| srcs = ["wasm_binary.py"], |
| ) |