77 lines
1.6 KiB
Python
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"],
|
|
)
|