mirror of
https://github.com/raysan5/raylib.git
synced 2026-01-26 16:59:18 -05:00
Update examples collection
This commit is contained in:
99
emsdk-cache/emsdk-main/bazel/emscripten_deps.bzl
Normal file
99
emsdk-cache/emsdk-main/bazel/emscripten_deps.bzl
Normal file
@ -0,0 +1,99 @@
|
||||
load(":remote_emscripten_repository.bzl", "remote_emscripten_repository")
|
||||
load(":revisions.bzl", "EMSCRIPTEN_TAGS")
|
||||
|
||||
def _parse_version(v):
|
||||
return [int(u) for u in v.split(".")]
|
||||
|
||||
def _empty_repository_impl(ctx):
|
||||
ctx.file("MODULE.bazel", """module(name = "{}")""".format(ctx.name))
|
||||
ctx.file("BUILD.bazel", "")
|
||||
|
||||
_empty_repository = repository_rule(
|
||||
implementation = _empty_repository_impl,
|
||||
)
|
||||
|
||||
def emscripten_repo_name(name):
|
||||
return "emscripten_bin_{}".format(name)
|
||||
|
||||
def _emscripten_deps_impl(ctx):
|
||||
version = None
|
||||
|
||||
for mod in ctx.modules:
|
||||
for config in mod.tags.config:
|
||||
if config.version and version != None:
|
||||
fail("More than one emscripten version specified!")
|
||||
version = config.version
|
||||
if version == None:
|
||||
version = "latest"
|
||||
|
||||
if version == "latest":
|
||||
version = reversed(sorted(EMSCRIPTEN_TAGS.keys(), key = _parse_version))[0]
|
||||
|
||||
revision = EMSCRIPTEN_TAGS[version]
|
||||
|
||||
emscripten_url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/{}/{}/wasm-binaries{}.{}"
|
||||
|
||||
remote_emscripten_repository(
|
||||
name = emscripten_repo_name("linux"),
|
||||
bin_extension = "",
|
||||
sha256 = revision.sha_linux,
|
||||
strip_prefix = "install",
|
||||
type = "tar.xz",
|
||||
url = emscripten_url.format("linux", revision.hash, "", "tar.xz"),
|
||||
)
|
||||
|
||||
# Not all versions have a linux/arm64 release: https://github.com/emscripten-core/emsdk/issues/547
|
||||
if hasattr(revision, "sha_linux_arm64"):
|
||||
remote_emscripten_repository(
|
||||
name = emscripten_repo_name("linux_arm64"),
|
||||
bin_extension = "",
|
||||
sha256 = revision.sha_linux_arm64,
|
||||
strip_prefix = "install",
|
||||
type = "tar.xz",
|
||||
url = emscripten_url.format("linux", revision.hash, "-arm64", "tar.xz"),
|
||||
)
|
||||
else:
|
||||
_empty_repository(
|
||||
name = emscripten_repo_name("linux_arm64"),
|
||||
)
|
||||
|
||||
remote_emscripten_repository(
|
||||
name = emscripten_repo_name("mac"),
|
||||
bin_extension = "",
|
||||
sha256 = revision.sha_mac,
|
||||
strip_prefix = "install",
|
||||
type = "tar.xz",
|
||||
url = emscripten_url.format("mac", revision.hash, "", "tar.xz"),
|
||||
)
|
||||
|
||||
remote_emscripten_repository(
|
||||
name = emscripten_repo_name("mac_arm64"),
|
||||
bin_extension = "",
|
||||
sha256 = revision.sha_mac_arm64,
|
||||
strip_prefix = "install",
|
||||
type = "tar.xz",
|
||||
url = emscripten_url.format("mac", revision.hash, "-arm64", "tar.xz"),
|
||||
)
|
||||
|
||||
remote_emscripten_repository(
|
||||
name = emscripten_repo_name("win"),
|
||||
bin_extension = ".exe",
|
||||
sha256 = revision.sha_win,
|
||||
strip_prefix = "install",
|
||||
type = "zip",
|
||||
url = emscripten_url.format("win", revision.hash, "", "zip"),
|
||||
)
|
||||
|
||||
emscripten_deps = module_extension(
|
||||
tag_classes = {
|
||||
"config": tag_class(
|
||||
attrs = {
|
||||
"version": attr.string(
|
||||
doc = "Version to use. 'latest' to use latest.",
|
||||
values = ["latest"] + EMSCRIPTEN_TAGS.keys(),
|
||||
),
|
||||
},
|
||||
),
|
||||
},
|
||||
implementation = _emscripten_deps_impl,
|
||||
)
|
||||
Reference in New Issue
Block a user