blob: 63fef39c80172be7074b3cf363e7d04ebb068bab [file] [log] [blame]
workspace(name = "examples")
local_repository(
name = "rules_rust",
path = "../../",
)
load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_register_toolchains")
rules_rust_dependencies()
rust_register_toolchains(
edition = "2018",
include_rustc_srcs = True,
)
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
crate_universe_dependencies()
load("@rules_rust//crate_universe:crates_deps.bzl", "crate_repositories")
crate_repositories()
load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository", "splicing_config")
###############################################################################
# C A R G O A L I A S E S
###############################################################################
crates_repository(
name = "cargo_aliases",
annotations = {
"names": [crate.annotation(
shallow_since = "1646516410 -0700",
version = "0.12.1-dev",
)],
},
cargo_lockfile = "//cargo_aliases:Cargo.Bazel.lock",
# `generator` is not necessary in official releases.
# See load satement for `cargo_bazel_bootstrap`.
generator = "@cargo_bazel_bootstrap//:cargo-bazel",
lockfile = "//cargo_aliases:cargo-bazel-lock.json",
manifests = ["//cargo_aliases:Cargo.toml"],
)
load(
"@cargo_aliases//:defs.bzl",
cargo_aliases_crate_repositories = "crate_repositories",
)
cargo_aliases_crate_repositories()
###############################################################################
# C A R G O L O C A L
###############################################################################
crates_repository(
name = "crate_index_cargo_local",
cargo_lockfile = "//cargo_local:Cargo.lock",
# `generator` is not necessary in official releases.
# See load satement for `cargo_bazel_bootstrap`.
generator = "@cargo_bazel_bootstrap//:cargo-bazel",
manifests = ["//cargo_local:Cargo.toml"],
)
load(
"@crate_index_cargo_local//:defs.bzl",
cargo_local_crate_repositories = "crate_repositories",
)
cargo_local_crate_repositories()
###############################################################################
# C A R G O R E M O T E
###############################################################################
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "names",
build_file = "//cargo_remote:BUILD.names.bazel",
sha256 = "eab40caca5805624ba31d028913931c3d054b22daafff6f43e3435cfa9fb761e",
strip_prefix = "names-0.13.0",
urls = ["https://github.com/fnichol/names/archive/refs/tags/v0.13.0.zip"],
)
crates_repository(
name = "crate_index_cargo_remote",
cargo_lockfile = "@names//:Cargo.lock",
# `generator` is not necessary in official releases.
# See load satement for `cargo_bazel_bootstrap`.
generator = "@cargo_bazel_bootstrap//:cargo-bazel",
manifests = ["@names//:Cargo.toml"],
)
load(
"@crate_index_cargo_remote//:defs.bzl",
cargo_remote_crate_repositories = "crate_repositories",
)
cargo_remote_crate_repositories()
###############################################################################
# C A R G O W O R K S P A C E
###############################################################################
crates_repository(
name = "crate_index_cargo_workspace",
cargo_config = "//cargo_workspace:.cargo/config.toml",
cargo_lockfile = "//cargo_workspace:Cargo.Bazel.lock",
# `generator` is not necessary in official releases.
# See load satement for `cargo_bazel_bootstrap`.
generator = "@cargo_bazel_bootstrap//:cargo-bazel",
lockfile = "//cargo_workspace:cargo-bazel-lock.json",
manifests = [
"//cargo_workspace:Cargo.toml",
"//cargo_workspace/num_printer:Cargo.toml",
"//cargo_workspace/printer:Cargo.toml",
"//cargo_workspace/rng:Cargo.toml",
],
)
load(
"@crate_index_cargo_workspace//:defs.bzl",
cargo_workspace_crate_repositories = "crate_repositories",
)
cargo_workspace_crate_repositories()
###############################################################################
# M U L T I P A C K A G E
###############################################################################
crates_repository(
# The name here needs to be short to avoid long path issues on windows
# when running the `libnghttp2-sys` build script.
name = "m_pkgs",
annotations = {
"curl-sys": [crate.annotation(
gen_build_script = False,
deps = [
"@curl",
"@libssh2",
],
)],
"lalrpop": [crate.annotation(
data_glob = ["**/*.lalrpop"],
)],
"libnghttp2-sys": [crate.annotation(
build_script_data_glob = ["nghttp2/**"],
data_glob = ["nghttp2/**"],
)],
"openssl-sys": [crate.annotation(
build_script_data = [
"@openssl//:gen_dir",
"@openssl//:openssl",
],
build_script_data_glob = ["build/**/*.c"],
build_script_env = {
"OPENSSL_DIR": "$(execpath @openssl//:gen_dir)",
"OPENSSL_STATIC": "1",
},
data = ["@openssl"],
deps = ["@openssl"],
)],
"wepoll-ffi": [crate.annotation(
build_script_data_glob = ["vendor/**"],
)],
},
cargo_lockfile = "//multi_package:Cargo.Bazel.lock",
# `generator` is not necessary in official releases.
# See load satement for `cargo_bazel_bootstrap`.
generator = "@cargo_bazel_bootstrap//:cargo-bazel",
lockfile = "//multi_package:cargo-bazel-lock.json",
manifests = [
"//multi_package/pkg_a:Cargo.toml",
"//multi_package/sub_pkgs/pkg_b:Cargo.toml",
"//multi_package/sub_pkgs/pkg_c:Cargo.toml",
],
)
load(
"@m_pkgs//:defs.bzl",
multi_pkg_crate_repositories = "crate_repositories",
)
multi_pkg_crate_repositories()
# ForeignCc is used to build OpenSSL
http_archive(
name = "rules_foreign_cc",
sha256 = "1df78c7d7eed2dc21b8b325a2853c31933a81e7b780f9a59a5d078be9008b13a",
strip_prefix = "rules_foreign_cc-0.7.0",
url = "https://github.com/bazelbuild/rules_foreign_cc/archive/0.7.0.tar.gz",
)
load("@rules_foreign_cc//foreign_cc:repositories.bzl", "rules_foreign_cc_dependencies")
rules_foreign_cc_dependencies()
# Load OpenSSL and other 3rd party dependencies
load("//multi_package/3rdparty:third_party_deps.bzl", "third_party_deps")
third_party_deps()
# perl is used to build openssl
http_archive(
name = "rules_perl",
sha256 = "0c0cc01b158321c3c84af49409393c14b66070249d0affb78a88ca594b2aa9c2",
strip_prefix = "rules_perl-43d2db0aafe595fe0ac61b808c9c13ea9769ce03",
urls = [
"https://github.com/bazelbuild/rules_perl/archive/43d2db0aafe595fe0ac61b808c9c13ea9769ce03.tar.gz",
],
)
load("@rules_perl//perl:deps.bzl", "perl_register_toolchains", "perl_rules_dependencies")
perl_rules_dependencies()
perl_register_toolchains()
###############################################################################
# N O C A R G O M A N I F E S T S
###############################################################################
crates_repository(
name = "no_cargo",
annotations = {
"axum": [crate.annotation(
compile_data_glob = ["**/*.md"],
)],
},
cargo_lockfile = "//no_cargo_manifests:Cargo.Bazel.lock",
# `generator` is not necessary in official releases.
# See load satement for `cargo_bazel_bootstrap`.
generator = "@cargo_bazel_bootstrap//:cargo-bazel",
lockfile = "//no_cargo_manifests:cargo-bazel-lock.json",
packages = {
"axum": crate.spec(
version = "0.4.0",
),
"hyper": crate.spec(
features = ["full"],
version = "0.14",
),
"mime": crate.spec(
version = "0.3",
),
"serde_json": crate.spec(
version = "1.0",
),
"tokio": crate.spec(
features = ["full"],
version = "1.17.0",
),
"tower": crate.spec(
features = ["util"],
version = "0.4",
),
"tower-http": crate.spec(
features = ["trace"],
version = "0.2.1",
),
"tracing": crate.spec(
version = "0.1",
),
"tracing-subscriber": crate.spec(
version = "0.3",
),
},
splicing_config = splicing_config(
resolver_version = "2",
),
)
load(
"@no_cargo//:defs.bzl",
no_cargo_crate_repositories = "crate_repositories",
)
no_cargo_crate_repositories()
###############################################################################
# V E N D O R E X T E R N A L
###############################################################################
http_archive(
name = "names_external",
build_file = "//cargo_remote:BUILD.names.bazel",
sha256 = "eab40caca5805624ba31d028913931c3d054b22daafff6f43e3435cfa9fb761e",
strip_prefix = "names-0.13.0",
urls = ["https://github.com/fnichol/names/archive/refs/tags/v0.13.0.zip"],
)
load(
"//vendor_external/crates:crates.bzl",
crates_vendor_external_repositories = "crate_repositories",
)
crates_vendor_external_repositories()
###############################################################################
# V E N D O R R E M O T E M A N I F E S T S
###############################################################################
load(
"//vendor_remote_manifests/crates:crates.bzl",
crates_vendor_manifests_repositories = "crate_repositories",
)
crates_vendor_manifests_repositories()
###############################################################################
# V E N D O R R E M O T E P A C K A G E S
###############################################################################
load(
"//vendor_remote_pkgs/crates:crates.bzl",
crates_vendor_packages_repositories = "crate_repositories",
)
crates_vendor_packages_repositories()
###############################################################################
# Used for Bazel CI
http_archive(
name = "bazel_toolchains",
sha256 = "179ec02f809e86abf56356d8898c8bd74069f1bd7c56044050c2cd3d79d0e024",
strip_prefix = "bazel-toolchains-4.1.0",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/4.1.0/bazel-toolchains-4.1.0.tar.gz",
"https://github.com/bazelbuild/bazel-toolchains/releases/download/4.1.0/bazel-toolchains-4.1.0.tar.gz",
],
)
load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig")
# Creates a default toolchain config for RBE.
# Use this as is if you are using the rbe_ubuntu16_04 container,
# otherwise refer to RBE docs.
rbe_autoconfig(name = "buildkite_config")