vere/BUILD.bazel

167 lines
3.1 KiB
Python
Raw Normal View History

load("//bazel:common_settings.bzl", "string_flag")
load("@io_bazel_rules_docker//cc:image.bzl", "cc_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_push")
#
# OS-CPU CONFIG SETTINGS
#
config_setting(
name = "linux_aarch64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:aarch64",
],
)
config_setting(
name = "linux_x86_64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
],
)
config_setting(
name = "macos_aarch64",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:aarch64",
],
)
config_setting(
name = "macos_x86_64",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:x86_64",
],
)
#
# COMPILERS
#
# Version flag for clang.
string_flag(
name = "clang_version",
# macOS uses `clang-14.0.0` by default.
build_setting_default = "14.0.0",
visibility = ["//visibility:public"],
)
# Version flag for gcc.
string_flag(
name = "gcc_version",
# musl-cross-make uses `gcc-9.4.0` by default.
build_setting_default = "9.4.0",
visibility = ["//visibility:public"],
)
#
# PLATFORMS
#
# A platform takes one of two formats: `<compiler>-<os>-<cpu>` or `<os>-<cpu>`
# if the compiler is unspecified.
# Linux aarch64 platform with unspecified compiler.
platform(
name = "linux-aarch64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:aarch64",
],
)
# Linux x86_64 platform with unspecified compiler.
platform(
name = "linux-x86_64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
],
)
# Linux x86_64 platform with gcc.
platform(
name = "gcc-linux-x86_64",
constraint_values = [
":gcc",
"@platforms//os:linux",
"@platforms//cpu:x86_64",
],
)
platform(
name = "macos-aarch64",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:aarch64",
],
)
platform(
name = "clang-macos-aarch64",
constraint_values = [
":clang",
"@platforms//os:macos",
"@platforms//cpu:aarch64",
],
)
platform(
name = "macos-x86_64",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:x86_64",
],
)
platform(
name = "clang-macos-x86_64",
constraint_values = [
":clang",
"@platforms//os:macos",
"@platforms//cpu:x86_64",
],
)
alias(
name = "urbit",
actual = "//pkg/vere:urbit",
)
#
# DOCKER IMAGE
#
cc_image(
name = "docker",
binary = "//pkg/vere:urbit",
)
genrule(
name = "docker_tag",
visibility = ["//visibility:private"],
srcs = [
"//pkg/vere:PACE",
"//pkg/vere:VERSION",
],
outs = ["DOCKER_TAG"],
cmd = """
pace=`tr -d '\n' < $(execpath //pkg/vere:PACE)`
version=v`tr -d '\n' < $(execpath //pkg/vere:VERSION)`
echo "$$version-$$pace" > $@
""",
)
container_push(
name = "upload_docker",
format = "Docker",
image = ":docker",
registry = "docker.io",
repository = "tloncorp/vere",
tag_file = ":docker_tag",
)