• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@rules_testing//lib:util.bzl", "util")
2load("//cc/toolchains:args.bzl", "cc_args")
3load("//cc/toolchains:feature.bzl", "cc_feature")
4load("//cc/toolchains:feature_set.bzl", "cc_feature_set")
5load("//cc/toolchains:tool.bzl", "cc_tool")
6load("//cc/toolchains:tool_map.bzl", "cc_tool_map")
7load("//cc/toolchains/args:sysroot.bzl", "cc_sysroot")
8load("//cc/toolchains/impl:external_feature.bzl", "cc_external_feature")
9load("//cc/toolchains/impl:toolchain_config.bzl", "cc_legacy_file_group", "cc_toolchain_config")
10load("//tests/rule_based_toolchain:analysis_test_suite.bzl", "analysis_test_suite")
11load(":toolchain_config_test.bzl", "TARGETS", "TESTS")
12
13util.helper_target(
14    cc_feature_set,
15    name = "all_simple_features",
16    all_of = [
17        ":simple_feature",
18        "simple_feature2",
19    ],
20)
21
22util.helper_target(
23    cc_external_feature,
24    name = "builtin_feature",
25    feature_name = "builtin_feature",
26    overridable = True,
27)
28
29util.helper_target(
30    cc_args,
31    name = "c_compile_args",
32    actions = ["//tests/rule_based_toolchain/actions:c_compile"],
33    allowlist_include_directories = ["//tests/rule_based_toolchain/testdata:subdirectory_1"],
34    args = ["c_compile_args"],
35    data = ["//tests/rule_based_toolchain/testdata:file1"],
36)
37
38util.helper_target(
39    cc_args,
40    name = "cpp_compile_args",
41    actions = ["//tests/rule_based_toolchain/actions:cpp_compile"],
42    args = ["cpp_compile_args"],
43    env = {"CPP_COMPILE": "1"},
44)
45
46cc_tool(
47    name = "c_compile_tool",
48    src = "//tests/rule_based_toolchain/testdata:bin_wrapper",
49    allowlist_include_directories = ["//tests/rule_based_toolchain/testdata:subdirectory_3"],
50    capabilities = ["//cc/toolchains/capabilities:supports_pic"],
51)
52
53cc_sysroot(
54    name = "sysroot",
55    actions = [
56        "//cc/toolchains/actions:cpp_compile_actions",
57        "//cc/toolchains/actions:c_compile",
58        "//cc/toolchains/actions:link_actions",
59        "//tests/rule_based_toolchain/actions:c_compile",
60        "//tests/rule_based_toolchain/actions:cpp_compile",
61    ],
62    sysroot = "//tests/rule_based_toolchain/testdata:directory",
63)
64
65util.helper_target(
66    cc_toolchain_config,
67    name = "collects_files_toolchain_config",
68    args = [
69        ":sysroot",
70        ":c_compile_args",
71    ],
72    enabled_features = [":simple_feature"],
73    known_features = [":compile_feature"],
74    tool_map = ":compile_tool_map",
75)
76
77util.helper_target(
78    cc_legacy_file_group,
79    name = "collects_files_c_compile",
80    actions = ["//tests/rule_based_toolchain/actions:c_compile"],
81    config = ":collects_files_toolchain_config",
82)
83
84util.helper_target(
85    cc_legacy_file_group,
86    name = "collects_files_cpp_compile",
87    actions = ["//tests/rule_based_toolchain/actions:cpp_compile"],
88    config = ":collects_files_toolchain_config",
89)
90
91util.helper_target(
92    cc_args,
93    name = "compile_args",
94    actions = ["//tests/rule_based_toolchain/actions:all_compile"],
95    allowlist_include_directories = ["//tests/rule_based_toolchain/testdata:subdirectory_2"],
96    args = ["compile_args"],
97    data = ["//tests/rule_based_toolchain/testdata:file2"],
98)
99
100util.helper_target(
101    cc_tool_map,
102    name = "compile_tool_map",
103    tools = {
104        "//tests/rule_based_toolchain/actions:c_compile": ":c_compile_tool",
105        "//tests/rule_based_toolchain/actions:cpp_compile": "//tests/rule_based_toolchain/tool:wrapped_tool",
106    },
107)
108
109util.helper_target(
110    cc_feature,
111    name = "compile_feature",
112    args = [":compile_args"],
113    feature_name = "compile_feature",
114)
115
116util.helper_target(
117    cc_tool_map,
118    name = "c_compile_tool_map",
119    tools = {
120        "//tests/rule_based_toolchain/actions:c_compile": "//tests/rule_based_toolchain/tool:wrapped_tool",
121    },
122)
123
124util.helper_target(
125    cc_tool_map,
126    name = "empty_tool_map",
127    tools = {},
128)
129
130util.helper_target(
131    cc_feature,
132    name = "implies_simple_feature",
133    args = [":c_compile_args"],
134    feature_name = "implies",
135    implies = [":simple_feature"],
136)
137
138util.helper_target(
139    cc_feature,
140    name = "overrides_feature",
141    args = [":c_compile_args"],
142    overrides = ":builtin_feature",
143)
144
145util.helper_target(
146    cc_args,
147    name = "requires_all_simple_args",
148    actions = ["//tests/rule_based_toolchain/actions:c_compile"],
149    args = ["--foo"],
150    requires_any_of = [":all_simple_features"],
151)
152
153util.helper_target(
154    cc_feature,
155    name = "requires_all_simple_feature",
156    args = [":c_compile_args"],
157    feature_name = "requires_any_simple",
158    requires_any_of = [":all_simple_features"],
159)
160
161util.helper_target(
162    cc_feature,
163    name = "requires_any_simple_feature",
164    args = [":c_compile_args"],
165    feature_name = "requires_any_simple",
166    requires_any_of = [
167        ":simple_feature",
168        ":simple_feature2",
169    ],
170)
171
172util.helper_target(
173    cc_feature,
174    name = "same_feature_name",
175    args = [":c_compile_args"],
176    feature_name = "simple_feature",
177    visibility = ["//tests/rule_based_toolchain:__subpackages__"],
178)
179
180util.helper_target(
181    cc_feature,
182    name = "simple_feature",
183    args = [":c_compile_args"],
184    feature_name = "simple_feature",
185)
186
187util.helper_target(
188    cc_feature,
189    name = "simple_feature2",
190    args = [":c_compile_args"],
191    feature_name = "simple_feature2",
192    visibility = ["//tests/rule_based_toolchain:__subpackages__"],
193)
194
195analysis_test_suite(
196    name = "test_suite",
197    targets = TARGETS,
198    tests = TESTS,
199)
200