databuild/runtime/BUILD.bazel
2025-04-18 19:38:05 -07:00

77 lines
1.6 KiB
Python

# In modules/jq/BUILD.bazel
load("@bazel_skylib//lib:selects.bzl", "selects")
exports_files([
"simple_executable_wrapper.sh.tpl",
])
# Platform detection
config_setting(
name = "darwin",
constraint_values = ["@platforms//os:osx"],
)
config_setting(
name = "linux",
constraint_values = ["@platforms//os:linux"],
)
# Download jq binaries
genrule(
name = "download_jq_linux",
outs = ["jq-linux64"],
cmd = """
curl -L "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64" -o "$@"
chmod +x "$@"
""",
)
genrule(
name = "download_jq_macos",
outs = ["jq-osx-amd64"],
cmd = """
curl -L "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64" -o "$@"
chmod +x "$@"
""",
)
# Create jq binary target for each platform
genrule(
name = "jq_linux_bin",
srcs = [":jq-linux64"],
outs = ["jq_linux"],
cmd = "cp $< $@ && chmod +x $@",
executable = True,
)
genrule(
name = "jq_macos_bin",
srcs = [":jq-osx-amd64"],
outs = ["jq_macos"],
cmd = "cp $< $@ && chmod +x $@",
executable = True,
)
# Create platform-specific filegroups
filegroup(
name = "jq_bin_linux",
srcs = [":jq_linux"],
visibility = ["//visibility:public"],
)
filegroup(
name = "jq_bin_macos",
srcs = [":jq_macos"],
visibility = ["//visibility:public"],
)
# Create a binary target for jq
sh_binary(
name = "jq",
srcs = select({
":darwin": [":jq_macos"],
":linux": [":jq_linux"],
"//conditions:default": [":jq_linux"],
}),
visibility = ["//visibility:public"],
)