2021-12-09 00:47:45 +00:00
|
|
|
"Macros for loading dependencies and registering toolchains"
|
|
|
|
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
|
2022-04-22 01:35:10 +00:00
|
|
|
load("//lib/private:jq_toolchain.bzl", "JQ_PLATFORMS", "jq_host_alias_repo", "jq_platform_repo", "jq_toolchains_repo")
|
|
|
|
load("//lib/private:yq_toolchain.bzl", "YQ_PLATFORMS", "yq_host_alias_repo", "yq_platform_repo", "yq_toolchains_repo")
|
2021-12-09 00:47:45 +00:00
|
|
|
|
|
|
|
def aspect_bazel_lib_dependencies():
|
|
|
|
"Load dependencies required by aspect rules"
|
|
|
|
maybe(
|
|
|
|
http_archive,
|
|
|
|
name = "bazel_skylib",
|
|
|
|
sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d",
|
|
|
|
urls = [
|
|
|
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
|
|
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz",
|
|
|
|
],
|
|
|
|
)
|
|
|
|
|
|
|
|
def register_jq_toolchains(version, name = "jq"):
|
|
|
|
"""Registers jq toolchain and repositories
|
|
|
|
|
|
|
|
Args:
|
|
|
|
version: the version of jq to execute (see https://github.com/stedolan/jq/releases)
|
|
|
|
name: override the prefix for the generated toolchain repositories
|
|
|
|
"""
|
2022-04-22 00:45:33 +00:00
|
|
|
for [platform, meta] in JQ_PLATFORMS.items():
|
2021-12-09 00:47:45 +00:00
|
|
|
jq_platform_repo(
|
2022-04-22 01:35:10 +00:00
|
|
|
name = "%s_%s" % (name, platform),
|
2021-12-09 00:47:45 +00:00
|
|
|
platform = platform,
|
2022-04-22 00:45:33 +00:00
|
|
|
version = version,
|
2021-12-09 00:47:45 +00:00
|
|
|
)
|
|
|
|
native.register_toolchains("@%s_toolchains//:%s_toolchain" % (name, platform))
|
|
|
|
|
2022-04-22 01:35:10 +00:00
|
|
|
jq_host_alias_repo(
|
|
|
|
name = "%s_host" % name,
|
|
|
|
user_repository_name = name,
|
|
|
|
)
|
|
|
|
|
2021-12-09 00:47:45 +00:00
|
|
|
jq_toolchains_repo(
|
|
|
|
name = "%s_toolchains" % name,
|
2022-04-22 01:35:10 +00:00
|
|
|
user_repository_name = name,
|
2021-12-09 00:47:45 +00:00
|
|
|
)
|
2022-04-20 04:45:06 +00:00
|
|
|
|
|
|
|
def register_yq_toolchains(version, name = "yq"):
|
|
|
|
"""Registers yq toolchain and repositories
|
|
|
|
|
|
|
|
Args:
|
|
|
|
version: the version of yq to execute (see https://github.com/mikefarah/yq/releases)
|
|
|
|
name: override the prefix for the generated toolchain repositories
|
|
|
|
"""
|
2022-04-22 00:45:33 +00:00
|
|
|
for [platform, meta] in YQ_PLATFORMS.items():
|
2022-04-20 04:45:06 +00:00
|
|
|
yq_platform_repo(
|
2022-04-22 01:35:10 +00:00
|
|
|
name = "%s_%s" % (name, platform),
|
2022-04-20 04:45:06 +00:00
|
|
|
platform = platform,
|
2022-04-22 00:45:33 +00:00
|
|
|
version = version,
|
2022-04-20 04:45:06 +00:00
|
|
|
)
|
|
|
|
native.register_toolchains("@%s_toolchains//:%s_toolchain" % (name, platform))
|
|
|
|
|
2022-04-22 01:35:10 +00:00
|
|
|
yq_host_alias_repo(
|
|
|
|
name = "%s_host" % name,
|
|
|
|
user_repository_name = name,
|
|
|
|
)
|
|
|
|
|
2022-04-20 04:45:06 +00:00
|
|
|
yq_toolchains_repo(
|
|
|
|
name = "%s_toolchains" % name,
|
2022-04-22 01:35:10 +00:00
|
|
|
user_repository_name = name,
|
2022-04-20 04:45:06 +00:00
|
|
|
)
|