blob: 5ec89da19d910d2590778fc76de1f5c05ce3202a [file] [log] [blame]
module(
name = "hello_cross",
version = "0.0.0",
)
###############################################################################
# Bazel Dependencies # https://registry.bazel.build/
###############################################################################
# Get latest rules_rust release from:
# https://github.com/bazelbuild/rules_rust/releases
bazel_dep(name = "rules_rust", version = "0.0.0")
local_path_override(
module_name = "rules_rust",
path = "../..",
)
# https://github.com/bazelbuild/platforms/releases
bazel_dep(name = "platforms", version = "1.0.0")
# https://github.com/bazelbuild/rules_shell/releases
bazel_dep(name = "rules_shell", version = "0.4.0")
# https://github.com/bazel-contrib/toolchains_llvm
bazel_dep(name = "toolchains_llvm", version = "1.2.0", dev_dependency = True)
# https://github.com/bazelbuild/bazel/blob/master/tools/build_defs/repo/http.bzl
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
###############################################################################
# LLVM Toolchain #
###############################################################################
# INTEL/AMD64 Sysroot. LastModified: 2024-04-26T19:15
# https://commondatastorage.googleapis.com/chrome-linux-sysroot/
http_archive(
name = "sysroot_linux_x64",
build_file = "//build/sysroot:BUILD.bazel",
sha256 = "5df5be9357b425cdd70d92d4697d07e7d55d7a923f037c22dc80a78e85842d2c",
urls = ["https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/4f611ec025be98214164d4bf9fbe8843f58533f7/debian_bullseye_amd64_sysroot.tar.xz"],
)
# ARM 64 Sysroot. LastModified: 2024-04-26T18:33
# https://commondatastorage.googleapis.com/chrome-linux-sysroot/
http_archive(
name = "sysroot_linux_aarch64",
build_file = "//build/sysroot:BUILD.bazel",
sha256 = "d303cf3faf7804c9dd24c9b6b167d0345d41d7fe4bfb7d34add3ab342f6a236c",
urls = ["https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/906cc7c6bf47d4bd969a3221fc0602c6b3153caa/debian_bullseye_arm64_sysroot.tar.xz"],
)
# LLVM Versions and platforms
# https://github.com/bazel-contrib/toolchains_llvm/blob/master/toolchain/internal/llvm_distributions.bzl
llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm", dev_dependency = True)
llvm.toolchain(
name = "llvm_toolchain",
llvm_versions = {
"": "16.0.0",
"darwin-x86_64": "15.0.7", # For CI runner only; remove if you don't have an Intel Mac.
},
stdlib = {
"linux-aarch64": "stdc++",
"linux-x86_64": "stdc++",
},
)
llvm.sysroot(
name = "llvm_toolchain",
label = "@sysroot_linux_x64//:sysroot",
targets = ["linux-x86_64"],
)
llvm.sysroot(
name = "llvm_toolchain",
label = "@sysroot_linux_aarch64//:sysroot",
targets = ["linux-aarch64"],
)
use_repo(llvm, "llvm_toolchain")
register_toolchains(
"@llvm_toolchain//:all",
dev_dependency = True,
)
###############################################################################
# Rust Toolchain #
###############################################################################
RUST_EDITION = "2021" # NOTE: 2024 will be released with Rust 1.86.0
RUST_VERSION = "1.81.0"
rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
rust.toolchain(
edition = RUST_EDITION,
extra_target_triples = [
"aarch64-unknown-linux-gnu",
"x86_64-unknown-linux-gnu",
],
versions = [RUST_VERSION],
)
use_repo(rust, "rust_toolchains")
register_toolchains("@rust_toolchains//:all")
###############################################################################
# Rust Dependencies #
###############################################################################
crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate")
crate.spec(
package = "mimalloc",
version = "0.1.43",
)
crate.spec(
package = "lz4-sys",
version = "1.11.1",
)
crate.from_specs()
use_repo(crate, "crates")