blob: 378eed7d6c5c21522ee2b8760f59c04d0c1c6e4f [file] [log] [blame]
""" 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,
)