1
1
load ("@bazel_tools//tools/build_defs/repo:http.bzl" , "http_archive" )
2
- load ("@build_bazel_rules_nodejs//:index.bzl" , "npm_install" )
2
+ load ("@build_bazel_rules_nodejs//:index.bzl" , "npm_install" , "node_repositories" )
3
3
load (":revisions.bzl" , "EMSCRIPTEN_TAGS" )
4
4
5
5
def _parse_version (v ):
@@ -19,16 +19,22 @@ def emscripten_deps(emscripten_version = "latest"):
19
19
20
20
revision = EMSCRIPTEN_TAGS [version ]
21
21
22
- emscripten_url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/{}/{}/wasm-binaries.{}"
22
+ emscripten_url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/{}/{}/wasm-binaries{} .{}"
23
23
24
24
# This could potentially backfire for projects with multiple emscripten
25
25
# dependencies that use different emscripten versions
26
26
excludes = native .existing_rules ().keys ()
27
+ if "nodejs_toolchains" not in excludes :
28
+ # Node 16 is the first version that supports darwin_arm64
29
+ node_repositories (
30
+ node_version = "16.6.2" ,
31
+ )
32
+
27
33
if "emscripten_bin_linux" not in excludes :
28
34
http_archive (
29
35
name = "emscripten_bin_linux" ,
30
36
strip_prefix = "install" ,
31
- url = emscripten_url .format ("linux" , revision .hash , "tbz2" ),
37
+ url = emscripten_url .format ("linux" , revision .hash , "" , " tbz2" ),
32
38
sha256 = revision .sha_linux ,
33
39
build_file = "@emsdk//emscripten_toolchain:emscripten.BUILD" ,
34
40
type = "tar.bz2" ,
@@ -38,17 +44,27 @@ def emscripten_deps(emscripten_version = "latest"):
38
44
http_archive (
39
45
name = "emscripten_bin_mac" ,
40
46
strip_prefix = "install" ,
41
- url = emscripten_url .format ("mac" , revision .hash , "tbz2" ),
47
+ url = emscripten_url .format ("mac" , revision .hash , "" , " tbz2" ),
42
48
sha256 = revision .sha_mac ,
43
49
build_file = "@emsdk//emscripten_toolchain:emscripten.BUILD" ,
44
50
type = "tar.bz2" ,
45
51
)
46
52
53
+ if "emscripten_bin_mac_arm64" not in excludes :
54
+ http_archive (
55
+ name = "emscripten_bin_mac_arm64" ,
56
+ strip_prefix = "install" ,
57
+ url = emscripten_url .format ("mac" , revision .hash , "-arm64" , "tbz2" ),
58
+ sha256 = revision .sha_mac_arm64 ,
59
+ build_file = "@emsdk//emscripten_toolchain:emscripten.BUILD" ,
60
+ type = "tar.bz2" ,
61
+ )
62
+
47
63
if "emscripten_bin_win" not in excludes :
48
64
http_archive (
49
65
name = "emscripten_bin_win" ,
50
66
strip_prefix = "install" ,
51
- url = emscripten_url .format ("win" , revision .hash , "zip" ),
67
+ url = emscripten_url .format ("win" , revision .hash , "" , " zip" ),
52
68
sha256 = revision .sha_win ,
53
69
build_file = "@emsdk//emscripten_toolchain:emscripten.BUILD" ,
54
70
type = "zip" ,
@@ -68,6 +84,13 @@ def emscripten_deps(emscripten_version = "latest"):
68
84
package_lock_json = "@emscripten_bin_mac//:emscripten/package-lock.json" ,
69
85
)
70
86
87
+ if "emscripten_npm_mac_arm64" not in excludes :
88
+ npm_install (
89
+ name = "emscripten_npm_mac" ,
90
+ package_json = "@emscripten_bin_mac_arm64//:emscripten/package.json" ,
91
+ package_lock_json = "@emscripten_bin_mac_arm64//:emscripten/package-lock.json" ,
92
+ )
93
+
71
94
if "emscripten_npm_win" not in excludes :
72
95
npm_install (
73
96
name = "emscripten_npm_win" ,
0 commit comments