1load("//rust:defs.bzl", "rust_binary", "rust_clippy", "rust_library") 2load("//tools:tool_utils.bzl", "aspect_repository") 3 4exports_files( 5 [ 6 "rustfmt.toml", 7 "rustfmt_utils.bzl", 8 ], 9 visibility = ["//visibility:public"], 10) 11 12rust_library( 13 name = "rustfmt_lib", 14 srcs = glob( 15 include = ["src/**/*.rs"], 16 exclude = [ 17 "src/**/*main.rs", 18 "src/bin/**", 19 ], 20 ), 21 data = [ 22 "//:rustfmt.toml", 23 "//rust/toolchain:current_rustfmt_toolchain", 24 ], 25 edition = "2018", 26 rustc_env = { 27 "RUSTFMT": "$(rootpath //rust/toolchain:current_rustfmt_toolchain)", 28 "RUSTFMT_CONFIG": "$(rootpath //:rustfmt.toml)", 29 }, 30 deps = [ 31 "//tools/runfiles", 32 ], 33) 34 35rust_binary( 36 name = "rustfmt", 37 srcs = [ 38 "src/main.rs", 39 ], 40 data = [ 41 "//:rustfmt.toml", 42 ], 43 edition = "2018", 44 rustc_env = { 45 "ASPECT_REPOSITORY": aspect_repository(), 46 "RUST_DEFAULT_EDITION": "$(RUST_DEFAULT_EDITION)", 47 }, 48 toolchains = [ 49 "@rules_rust//rust/toolchain:current_rust_toolchain", 50 "@rules_rust//rust/toolchain:current_rustfmt_toolchain", 51 ], 52 visibility = ["//visibility:public"], 53 deps = [ 54 ":rustfmt_lib", 55 "//util/label", 56 ], 57) 58 59rust_binary( 60 name = "rustfmt_test", 61 srcs = [ 62 "src/bin/test_main.rs", 63 ], 64 edition = "2018", 65 visibility = ["//visibility:public"], 66 deps = [ 67 ":rustfmt_lib", 68 "//tools/runfiles", 69 ], 70) 71 72rust_clippy( 73 name = "rustfmt_clippy", 74 testonly = True, 75 visibility = ["//visibility:private"], 76 deps = [ 77 ":rustfmt", 78 ], 79) 80