1load("@rules_rust//rust:defs.bzl", "rust_library", "rust_proc_macro", "rust_test") 2load(":custom_alias.bzl", "custom_alias") 3 4rust_library( 5 name = "mylib", 6 srcs = ["mylib.rs"], 7 aliases = { 8 ":renamed_proc_macro_dep": "shorter_name", 9 }, 10 edition = "2018", 11 proc_macro_deps = [ 12 ":proc_macro_dep", 13 ":renamed_proc_macro_dep", 14 ], 15 deps = [ 16 ":alias_dep", 17 ":custom_alias_dep", 18 ":lib_dep", 19 ], 20) 21 22rust_library( 23 name = "lib_dep", 24 srcs = ["lib_dep.rs"], 25 edition = "2018", 26) 27 28alias( 29 name = "alias_dep", 30 actual = ":actual_dep", 31) 32 33rust_library( 34 name = "actual_dep", 35 srcs = ["actual_dep.rs"], 36 edition = "2018", 37 deps = [":dep_of_aliased_dep"], 38) 39 40rust_library( 41 name = "dep_of_aliased_dep", 42 srcs = ["dep_of_aliased_dep.rs"], 43 edition = "2018", 44) 45 46custom_alias( 47 name = "custom_alias_dep", 48 actual = ":custom_actual_dep", 49) 50 51rust_library( 52 name = "custom_actual_dep", 53 srcs = ["custom_actual_dep.rs"], 54 edition = "2018", 55 deps = [":dep_of_custom_aliased_dep"], 56) 57 58rust_library( 59 name = "dep_of_custom_aliased_dep", 60 srcs = ["dep_of_custom_aliased_dep.rs"], 61 edition = "2018", 62) 63 64rust_proc_macro( 65 name = "proc_macro_dep", 66 srcs = ["proc_macro_dep.rs"], 67 edition = "2018", 68) 69 70rust_test( 71 name = "mylib_test", 72 crate = ":mylib", 73 edition = "2018", 74 proc_macro_deps = [":extra_proc_macro_dep"], 75 deps = [":extra_test_dep"], 76) 77 78rust_library( 79 name = "extra_test_dep", 80 srcs = ["extra_test_dep.rs"], 81 edition = "2018", 82) 83 84rust_proc_macro( 85 name = "extra_proc_macro_dep", 86 srcs = ["extra_proc_macro_dep.rs"], 87 edition = "2018", 88) 89 90rust_proc_macro( 91 name = "renamed_proc_macro_dep", 92 srcs = ["renamed_proc_macro_dep.rs"], 93 edition = "2018", 94) 95 96rust_test( 97 name = "rust_project_json_test", 98 srcs = ["rust_project_json_test.rs"], 99 data = [":rust-project.json"], 100 edition = "2018", 101 env = {"RUST_PROJECT_JSON": "$(rootpath :rust-project.json)"}, 102 # This target is tagged as manual since it's not expected to pass in 103 # contexts outside of `//test/rust_analyzer:rust_analyzer_test`. Run 104 # that target to execute this test. 105 tags = ["manual"], 106 deps = [ 107 "@rules_rust//test/3rdparty/crates:serde", 108 "@rules_rust//test/3rdparty/crates:serde_json", 109 ], 110) 111