""" Nix Repositories """ load("@io_tweag_rules_nixpkgs//nixpkgs:nixpkgs.bzl", "nixpkgs_flake_package") _CONFIG_BUILD_FILE_CONTENT = """ package(default_visibility = ["//visibility:public"]) exports_files(["config.bzl"]) """ _RUST_BUILD_FILE_CONTENT = """ load("@rules_rust//rust:toolchain.bzl", "rust_stdlib_filegroup") package(default_visibility = ["//visibility:public"]) # https://github.com/tweag/rules_nixpkgs/blob/master/toolchains/rust/rust.bzl#L33-L116 filegroup( name = "rustc", srcs = ["bin/rustc"], ) filegroup( name = "rustdoc", srcs = ["bin/rustdoc"], ) filegroup( name = "rustfmt", srcs = ["bin/rustfmt"], ) filegroup( name = "cargo", srcs = ["bin/cargo"], ) filegroup( name = "clippy_driver", srcs = ["bin/clippy-driver"], ) filegroup( name = "proc_macro_srv", srcs = ["libexec/rust-analyzer-proc-macro-srv"], ) filegroup( name = "rustc_lib", srcs = glob( [ "bin/*.so", "lib/*.so", "lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/*.so", "lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/*.dylib", "lib/rustlib/x86_64-unknown-linux-gnu/bin/*", "lib/rustlib/x86_64-unknown-linux-gnu/lib/*.so", "lib/rustlib/x86_64-unknown-linux-gnu/lib/*.dylib", ], allow_empty = True, ), ) filegroup( name = "rust-src", srcs = glob(["lib/rustlib/src/**/*"]), ) rust_stdlib_filegroup( name = "rust_std-aarch64-apple-darwin", srcs = glob( [ "lib/rustlib/aarch64-apple-darwin/lib/*.rlib", "lib/rustlib/aarch64-apple-darwin/lib/*.so", "lib/rustlib/aarch64-apple-darwin/lib/*.dylib", "lib/rustlib/aarch64-apple-darwin/lib/*.a", "lib/rustlib/aarch64-apple-darwin/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-aarch64-apple-ios", srcs = glob( [ "lib/rustlib/aarch64-apple-ios/lib/*.rlib", "lib/rustlib/aarch64-apple-ios/lib/*.so", "lib/rustlib/aarch64-apple-ios/lib/*.dylib", "lib/rustlib/aarch64-apple-ios/lib/*.a", "lib/rustlib/aarch64-apple-ios/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-aarch64-linux-android", srcs = glob( [ "lib/rustlib/aarch64-linux-android/lib/*.rlib", "lib/rustlib/aarch64-linux-android/lib/*.so", "lib/rustlib/aarch64-linux-android/lib/*.dylib", "lib/rustlib/aarch64-linux-android/lib/*.a", "lib/rustlib/aarch64-linux-android/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-aarch64-unknown-linux-gnu", srcs = glob( [ "lib/rustlib/aarch64-unknown-linux-gnu/lib/*.rlib", "lib/rustlib/aarch64-unknown-linux-gnu/lib/*.so", "lib/rustlib/aarch64-unknown-linux-gnu/lib/*.dylib", "lib/rustlib/aarch64-unknown-linux-gnu/lib/*.a", "lib/rustlib/aarch64-unknown-linux-gnu/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-wasm32-unknown-unknown", srcs = glob( [ "lib/rustlib/wasm32-unknown-unknown/lib/*.rlib", "lib/rustlib/wasm32-unknown-unknown/lib/*.so", "lib/rustlib/wasm32-unknown-unknown/lib/*.dylib", "lib/rustlib/wasm32-unknown-unknown/lib/*.a", "lib/rustlib/wasm32-unknown-unknown/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-wasm32-wasi", srcs = glob( [ "lib/rustlib/wasm32-wasi/lib/*.rlib", "lib/rustlib/wasm32-wasi/lib/*.so", "lib/rustlib/wasm32-wasi/lib/*.dylib", "lib/rustlib/wasm32-wasi/lib/*.a", "lib/rustlib/wasm32-wasi/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-x86_64-apple-darwin", srcs = glob( [ "lib/rustlib/x86_64-apple-darwin/lib/*.rlib", "lib/rustlib/x86_64-apple-darwin/lib/*.so", "lib/rustlib/x86_64-apple-darwin/lib/*.dylib", "lib/rustlib/x86_64-apple-darwin/lib/*.a", "lib/rustlib/x86_64-apple-darwin/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-x86_64-pc-windows-msvc", srcs = glob( [ "lib/rustlib/x86_64-pc-windows-msvc/lib/*.rlib", "lib/rustlib/x86_64-pc-windows-msvc/lib/*.so", "lib/rustlib/x86_64-pc-windows-msvc/lib/*.dylib", "lib/rustlib/x86_64-pc-windows-msvc/lib/*.a", "lib/rustlib/x86_64-pc-windows-msvc/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) rust_stdlib_filegroup( name = "rust_std-x86_64-unknown-linux-gnu", srcs = glob( [ "lib/rustlib/x86_64-unknown-linux-gnu/lib/*.rlib", "lib/rustlib/x86_64-unknown-linux-gnu/lib/*.so", "lib/rustlib/x86_64-unknown-linux-gnu/lib/*.dylib", "lib/rustlib/x86_64-unknown-linux-gnu/lib/*.a", "lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained/**", ], # Some patterns (e.g. `lib/*.a`) don't match anything, see https://github.com/bazelbuild/rules_rust/pull/245 allow_empty = True, ), ) """ def nix_repositories(): nixpkgs_flake_package( name = "nix_config", nix_flake_file = "//nix:flake.nix", nix_flake_lock_file = "//nix:flake.lock", package = "bazel.config", build_file_content = _CONFIG_BUILD_FILE_CONTENT, ) nixpkgs_flake_package( name = "nix_rust", nix_flake_file = "//nix:flake.nix", nix_flake_lock_file = "//nix:flake.lock", package = "bazel.rust", build_file_content = _RUST_BUILD_FILE_CONTENT, )