| 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", |
| ) |
| |
| load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies") |
| |
| crate_universe_dependencies(bootstrap = True) |
| |
| load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository", "render_config", "splicing_config") |
| |
| ############################################################################### |
| # A L I A S R U L E |
| ############################################################################### |
| |
| crates_repository( |
| name = "alias_rule_global_alias_annotation_none", |
| annotations = { |
| "test_data_passing_crate": [crate.annotation( |
| alias_rule = None, |
| )], |
| }, |
| cargo_lockfile = "//alias_rule:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//alias_rule:cargo-bazel-lock_global_alias_annotation_none.json", |
| packages = { |
| "test_data_passing_crate": crate.spec( |
| version = "0.1.0", |
| ), |
| }, |
| render_config = render_config( |
| default_alias_rule = "alias", |
| ), |
| ) |
| |
| load( |
| "@alias_rule_global_alias_annotation_none//:defs.bzl", |
| alias_rule_global_alias_annotation_none_crate_repositories = "crate_repositories", |
| ) |
| |
| alias_rule_global_alias_annotation_none_crate_repositories() |
| |
| crates_repository( |
| name = "alias_rule_global_alias_annotation_opt", |
| annotations = { |
| "test_data_passing_crate": [crate.annotation( |
| alias_rule = "opt", |
| )], |
| }, |
| cargo_lockfile = "//alias_rule:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//alias_rule:cargo-bazel-lock_global_alias_annotation_opt.json", |
| packages = { |
| "test_data_passing_crate": crate.spec( |
| version = "0.1.0", |
| ), |
| }, |
| render_config = render_config( |
| default_alias_rule = "alias", |
| ), |
| ) |
| |
| load( |
| "@alias_rule_global_alias_annotation_opt//:defs.bzl", |
| alias_rule_global_alias_annotation_opt_crate_repositories = "crate_repositories", |
| ) |
| |
| alias_rule_global_alias_annotation_opt_crate_repositories() |
| |
| crates_repository( |
| name = "alias_rule_global_opt_annotation_none", |
| annotations = { |
| "test_data_passing_crate": [crate.annotation( |
| alias_rule = None, |
| )], |
| }, |
| cargo_lockfile = "//alias_rule:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//alias_rule:cargo-bazel-lock_global_opt_annotation_none.json", |
| packages = { |
| "test_data_passing_crate": crate.spec( |
| version = "0.1.0", |
| ), |
| }, |
| render_config = render_config( |
| default_alias_rule = "opt", |
| ), |
| ) |
| |
| load( |
| "@alias_rule_global_opt_annotation_none//:defs.bzl", |
| alias_rule_global_opt_annotation_none_crate_repositories = "crate_repositories", |
| ) |
| |
| alias_rule_global_opt_annotation_none_crate_repositories() |
| |
| crates_repository( |
| name = "alias_rule_global_opt_annotation_alias", |
| annotations = { |
| "test_data_passing_crate": [crate.annotation( |
| alias_rule = "alias", |
| )], |
| }, |
| cargo_lockfile = "//alias_rule:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//alias_rule:cargo-bazel-lock_global_opt_annotation_alias.json", |
| packages = { |
| "test_data_passing_crate": crate.spec( |
| version = "0.1.0", |
| ), |
| }, |
| render_config = render_config( |
| default_alias_rule = "opt", |
| ), |
| ) |
| |
| load( |
| "@alias_rule_global_opt_annotation_alias//:defs.bzl", |
| alias_rule_global_opt_annotation_alias_crate_repositories = "crate_repositories", |
| ) |
| |
| alias_rule_global_opt_annotation_alias_crate_repositories() |
| |
| crates_repository( |
| name = "alias_rule_global_opt_annotation_dbg", |
| annotations = { |
| "test_data_passing_crate": [crate.annotation( |
| alias_rule = "dbg", |
| )], |
| }, |
| cargo_lockfile = "//alias_rule:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//alias_rule:cargo-bazel-lock_global_opt_annotation_dbg.json", |
| packages = { |
| "test_data_passing_crate": crate.spec( |
| version = "0.1.0", |
| ), |
| }, |
| render_config = render_config( |
| default_alias_rule = "opt", |
| ), |
| ) |
| |
| load( |
| "@alias_rule_global_opt_annotation_dbg//:defs.bzl", |
| alias_rule_global_opt_annotation_dbg_crate_repositories = "crate_repositories", |
| ) |
| |
| alias_rule_global_opt_annotation_dbg_crate_repositories() |
| |
| crates_repository( |
| name = "alias_rule_global_dbg_annotation_fastbuild", |
| annotations = { |
| "test_data_passing_crate": [crate.annotation( |
| alias_rule = "fastbuild", |
| )], |
| }, |
| cargo_lockfile = "//alias_rule:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//alias_rule:cargo-bazel-lock_global_dbg_annotation_fastbuild.json", |
| packages = { |
| "test_data_passing_crate": crate.spec( |
| version = "0.1.0", |
| ), |
| }, |
| render_config = render_config( |
| default_alias_rule = "dbg", |
| ), |
| ) |
| |
| load( |
| "@alias_rule_global_dbg_annotation_fastbuild//:defs.bzl", |
| alias_rule_global_dbg_annotation_fastbuild_crate_repositories = "crate_repositories", |
| ) |
| |
| alias_rule_global_dbg_annotation_fastbuild_crate_repositories() |
| |
| crates_repository( |
| name = "alias_rule_global_custom_annotation_none", |
| annotations = { |
| "test_data_passing_crate": [crate.annotation( |
| alias_rule = None, |
| )], |
| }, |
| cargo_lockfile = "//alias_rule:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//alias_rule:cargo-bazel-lock_global_custom_annotation_none.json", |
| packages = { |
| "test_data_passing_crate": crate.spec( |
| version = "0.1.0", |
| ), |
| }, |
| render_config = render_config( |
| default_alias_rule = "@//alias_rule:alias_rules.bzl:alias_rule", |
| ), |
| ) |
| |
| load( |
| "@alias_rule_global_custom_annotation_none//:defs.bzl", |
| alias_rule_global_custom_annotation_none_crate_repositories = "crate_repositories", |
| ) |
| |
| alias_rule_global_custom_annotation_none_crate_repositories() |
| |
| ############################################################################### |
| # 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 B I N D E P S |
| ############################################################################### |
| |
| crates_repository( |
| name = "crate_index_cargo_bindeps", |
| cargo_lockfile = "//cargo_bindeps:Cargo.lock", |
| generate_binaries = True, |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| manifests = ["//cargo_bindeps:Cargo.toml"], |
| rust_version = "nightly", |
| ) |
| |
| load( |
| "@crate_index_cargo_bindeps//:defs.bzl", |
| cargo_bindeps_crate_repositories = "crate_repositories", |
| ) |
| |
| cargo_bindeps_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() |
| |
| ############################################################################### |
| # C A R G O C O N D I T I O N A L D E P S |
| ############################################################################### |
| |
| crates_repository( |
| name = "crate_index_cargo_conditional_deps", |
| cargo_lockfile = "//cargo_conditional_deps: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_conditional_deps:cargo-bazel-lock.json", |
| manifests = [ |
| "//cargo_conditional_deps:Cargo.toml", |
| ], |
| ) |
| |
| load( |
| "@crate_index_cargo_conditional_deps//:defs.bzl", |
| cargo_conditional_deps_crate_repositories = "crate_repositories", |
| ) |
| |
| cargo_conditional_deps_crate_repositories() |
| |
| ############################################################################### |
| # M U L T I P A C K A G E |
| ############################################################################### |
| |
| # The name here needs to be short to avoid long path issues on windows |
| # when running the `libnghttp2-sys` build script. |
| multi_pkg_example_name = "m_pkgs" |
| |
| crates_repository( |
| name = multi_pkg_example_name, |
| annotations = { |
| "curl-sys": [crate.annotation( |
| gen_build_script = False, |
| deps = [ |
| "@m_pkgs__curl//:curl", |
| ], |
| )], |
| "httpmock": [crate.annotation( |
| shallow_since = "1673473097 +0100", |
| )], |
| "isahc": [crate.annotation( |
| shallow_since = "1667787880 -0600", |
| )], |
| "libnghttp2-sys": [crate.annotation( |
| build_script_data_glob = ["nghttp2/**"], |
| data_glob = ["nghttp2/**"], |
| )], |
| "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("//multi_package/3rdparty:third_party_deps.bzl", "third_party_deps") |
| |
| third_party_deps( |
| prefix = multi_pkg_example_name, |
| ) |
| |
| load( |
| "@m_pkgs//:defs.bzl", |
| multi_pkg_crate_repositories = "crate_repositories", |
| ) |
| |
| multi_pkg_crate_repositories() |
| |
| ############################################################################### |
| # 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.22", |
| ), |
| "mime": crate.spec( |
| version = "0.3", |
| ), |
| "serde_json": crate.spec( |
| version = "1.0", |
| ), |
| # TODO: This dependency is added and pinned forward due to the |
| # following issue: https://github.com/hyperium/hyper/issues/3038 |
| "socket2": crate.spec( |
| features = ["all"], |
| version = "0.4.7", |
| ), |
| "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() |
| |
| ############################################################################### |
| # U S I N G C X X C R A T E |
| ############################################################################### |
| |
| # CXX crate is a bit different since there are C++ headers provided. |
| |
| crates_repository( |
| name = "using_cxx", |
| cargo_lockfile = "//using_cxx:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//using_cxx:cargo-bazel-lock.json", |
| packages = { |
| "cxx": crate.spec( |
| version = "1.0.109", |
| ), |
| }, |
| splicing_config = splicing_config( |
| resolver_version = "2", |
| ), |
| ) |
| |
| load( |
| "@using_cxx//:defs.bzl", |
| using_cxx_crate_repositories = "crate_repositories", |
| ) |
| |
| using_cxx_crate_repositories() |
| |
| # The codegen tool needed by cxx. |
| http_archive( |
| name = "cxxbridge-cmd", |
| build_file_content = """ |
| load("@rules_rust//rust:defs.bzl", "rust_binary") |
| load("@cxxbridge_cmd_deps//:defs.bzl", "aliases", "all_crate_deps") |
| |
| rust_binary( |
| name = "cxxbridge-cmd", |
| srcs = glob(["src/**/*.rs"]), |
| aliases = aliases(), |
| data = [ |
| "src/gen/include/cxx.h", |
| ], |
| edition = "2021", |
| visibility = ["//visibility:public"], |
| deps = all_crate_deps( |
| normal = True, |
| ), |
| ) |
| """, |
| sha256 = "d93600487d429c8bf013ee96719af4e62e809ac57fc4cac24f17cf58e4526009", |
| strip_prefix = "cxxbridge-cmd-1.0.109", |
| type = "tar.gz", |
| urls = ["https://static.crates.io/crates/cxxbridge-cmd/cxxbridge-cmd-1.0.109.crate"], |
| ) |
| |
| crates_repository( |
| name = "cxxbridge_cmd_deps", |
| cargo_lockfile = "//using_cxx:cxxbridge-cmd.Cargo.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//using_cxx:cxxbridge-cmd.Cargo.Bazel.lock", |
| manifests = ["@cxxbridge-cmd//:Cargo.toml"], |
| splicing_config = splicing_config( |
| resolver_version = "2", |
| ), |
| ) |
| |
| load("@cxxbridge_cmd_deps//:defs.bzl", cxxbridge_cmd_deps = "crate_repositories") |
| |
| cxxbridge_cmd_deps() |
| |
| ############################################################################### |
| # 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() |
| |
| ############################################################################### |
| # C O M P L I C A T E D D E P E N D E N C I E S |
| ############################################################################### |
| |
| http_archive( |
| name = "rules_foreign_cc", |
| sha256 = "1eee5d216a3cec7a4c731f71ed731ac353290b1db61ab68b79440655bcb9acaa", |
| strip_prefix = "rules_foreign_cc-7ce62009557d73da9aa0d2a1ca7eded49078b3cf", |
| # Pulls in https://github.com/bazelbuild/rules_foreign_cc/pull/1163 and https://github.com/bazelbuild/rules_foreign_cc/pull/1199 which aren't currently in a release. |
| url = "https://github.com/bazelbuild/rules_foreign_cc/archive/7ce62009557d73da9aa0d2a1ca7eded49078b3cf.tar.gz", |
| ) |
| |
| load("@rules_foreign_cc//foreign_cc:repositories.bzl", "rules_foreign_cc_dependencies") |
| |
| rules_foreign_cc_dependencies() |
| |
| http_archive( |
| name = "aspect_bazel_lib", |
| sha256 = "f5ea76682b209cc0bd90d0f5a3b26d2f7a6a2885f0c5f615e72913f4805dbb0d", |
| strip_prefix = "bazel-lib-2.5.0", |
| url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.5.0/bazel-lib-v2.5.0.tar.gz", |
| ) |
| |
| load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "aspect_bazel_lib_register_toolchains") |
| |
| aspect_bazel_lib_dependencies() |
| |
| aspect_bazel_lib_register_toolchains() |
| |
| load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") |
| |
| git_repository( |
| name = "boringssl", |
| commit = "44b3df6f03d85c901767250329c571db405122d5", |
| patch_args = ["-p1"], |
| patches = [ |
| "//complicated_dependencies:boringssl-filegroup.patch", |
| # On the macOS bazelci builders, there's a system-installed openssl, and that takes priority over -isystem flags, which is what cc_library.includes uses. |
| # This forces our local system-includes to be chosen with higher priority, which avoids conflicts. |
| "//complicated_dependencies:boringssl-system-includes.patch", |
| ], |
| remote = "https://github.com/google/boringssl.git", |
| ) |
| |
| crates_repository( |
| name = "complicated_dependencies", |
| annotations = { |
| # boringssl natively builds with Bazel, but boring-sys tries to build it with cmake. |
| # We could pass boring-sys a cmake binary it can invoke, but the boring-sys build script wouldn't get to exploit the caching and parallelism of full Bazel builds of boringssl. |
| # Instead, we use the build script env var hooks to point the build script at the output of Bazel building boringssl. |
| "boring-sys": [ |
| crate.annotation( |
| build_script_data = [ |
| "@//complicated_dependencies:boringssl_gen_dir", |
| "@boringssl//:headers", |
| ], |
| build_script_env = { |
| # Ideally this would use an execpath macro, but we need to point at a directory and that's fiddly. We could probably copy the directory somewhere and point at that... For now, this works. |
| "BORING_BSSL_INCLUDE_PATH": "$${pwd}/external/boringssl/src/include", |
| "BORING_BSSL_PATH": "$(execpath @//complicated_dependencies:boringssl_gen_dir)", |
| }, |
| compile_data = [ |
| "@//complicated_dependencies:boringssl_gen_dir", |
| "@boringssl//:headers", |
| ], |
| ), |
| ], |
| # zlib-ng-sys's build script invokes cmake, so we need to make cmake available. |
| # Fortunately, rules_foreign_cc has a cmake toolchain we can use. |
| "libz-ng-sys": [crate.annotation( |
| # Setting build_script_data makes the files available on disk when the rule runs. |
| build_script_data = ["@rules_foreign_cc//toolchains:current_cmake_toolchain"], |
| build_script_env = { |
| # The toolchain supplies a value of $(CMAKE) which is an execroot-relative path, so we need to prefix it with $${pwd}/ because build scripts don't typically run in the execroot unlike most bazel rules, for improved compatibility with Cargo. |
| "CMAKE": "$${pwd}/$(CMAKE)", |
| }, |
| # Setting build_script_toolchains makes makefile variable substitution work so that we can reference $(CNAME) in attributes. |
| build_script_toolchains = ["@rules_foreign_cc//toolchains:current_cmake_toolchain"], |
| )], |
| }, |
| cargo_lockfile = "//complicated_dependencies:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//complicated_dependencies:cargo-bazel-lock.json", |
| packages = { |
| "boring": crate.spec( |
| version = "3.0.4", |
| ), |
| "libz-ng-sys": crate.spec( |
| version = "=1.1.15", |
| ), |
| }, |
| splicing_config = splicing_config( |
| resolver_version = "2", |
| ), |
| ) |
| |
| load( |
| "@complicated_dependencies//:defs.bzl", |
| complicated_dependencies_crate_repositories = "crate_repositories", |
| ) |
| |
| complicated_dependencies_crate_repositories() |
| |
| ############################################################################### |
| # O V E R R I D E T A R G E T |
| ############################################################################### |
| |
| crates_repository( |
| name = "override_target", |
| annotations = { |
| "foo": [crate.annotation( |
| override_targets = {"lib": "@//override_target:foo"}, |
| )], |
| }, |
| cargo_lockfile = "//override_target:Cargo.Bazel.lock", |
| # `generator` is not necessary in official releases. |
| # See load satement for `cargo_bazel_bootstrap`. |
| generator = "@cargo_bazel_bootstrap//:cargo-bazel", |
| lockfile = "//override_target:cargo-bazel-lock.json", |
| packages = { |
| "foo": crate.spec( |
| version = "0.0.0", |
| ), |
| }, |
| splicing_config = splicing_config( |
| resolver_version = "2", |
| ), |
| ) |
| |
| load( |
| "@override_target//:defs.bzl", |
| override_target_crate_repositories = "crate_repositories", |
| ) |
| |
| override_target_crate_repositories() |
| |
| ############################################################################### |
| |
| # Used for Bazel CI |
| http_archive( |
| name = "bazelci_rules", |
| sha256 = "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e", |
| strip_prefix = "bazelci_rules-1.0.0", |
| url = "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz", |
| ) |
| |
| load("@bazelci_rules//:rbe_repo.bzl", "rbe_preconfig") |
| |
| # 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_preconfig( |
| name = "buildkite_config", |
| toolchain = "ubuntu1804-bazel-java11", |
| ) |