• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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