blob: 183d830b90bfba3deca0808538ea0a2466bea178 [file] [log] [blame]
Philipp Schrader9b1790e2018-03-10 20:21:30 -08001package(default_visibility = ["//visibility:public"])
Brian Silverman12b3fc52015-10-11 19:38:33 -04002
3cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -08004 name = "empty_main",
5 srcs = ["empty_main.c"],
Brian Silverman63889f92015-11-27 01:33:56 -05006)
7
8cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -08009 name = "malloc",
10 deps = select({
11 "//tools:has_asan": [],
12 "//tools:has_tsan": [],
13 "//tools:cpu_cortex_m4f": [],
14 "//conditions:default": ["//third_party/gperftools:tcmalloc"],
15 }),
Brian Silverman12b3fc52015-10-11 19:38:33 -040016)
17
18cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080019 name = "stl",
Brian Silverman12b3fc52015-10-11 19:38:33 -040020)
21
22filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080023 name = "empty",
24 srcs = [],
Brian Silverman12b3fc52015-10-11 19:38:33 -040025)
26
Brian Silvermanb200c172017-01-02 17:35:35 -080027# This is the entry point for --crosstool_top.
28cc_toolchain_suite(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080029 name = "toolchain",
30 toolchains = {
31 "k8|clang": ":cc-compiler-k8",
32 "roborio|gcc": ":cc-compiler-roborio",
33 "armhf-debian|clang": "cc-compiler-armhf-debian",
34 "cortex-m4f|gcc": "cc-compiler-cortex-m4f",
35 },
Brian Silvermanb466eef2015-11-28 20:33:44 -050036)
37
38# Compiler inputs given by --copt etc in //tools:bazel.rc.
39filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080040 name = "flags_compiler_inputs",
41 srcs = select({
42 "//tools:has_asan": [
43 "asan-blacklist",
44 ],
45 "//tools:has_ubsan": [
46 "ubsan-blacklist",
47 ],
48 "//conditions:default": [],
49 }),
50)
51
52filegroup(
53 name = "clang_3p6_all_files",
54 srcs = [
55 ":flags_compiler_inputs",
56 "//tools/cpp/clang_3p6:as",
57 "//tools/cpp/clang_3p6:tool-wrappers",
58 "@clang_3p6_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050059 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080060)
61
62filegroup(
63 name = "clang_3p6_linker_files",
64 srcs = [
65 "//tools/cpp/clang_3p6:ar",
66 "//tools/cpp/clang_3p6:clang",
67 "//tools/cpp/clang_3p6:clang-symlinks",
68 "//tools/cpp/clang_3p6:ld",
69 "@clang_3p6_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050070 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080071)
72
73filegroup(
Brian Silverman5c00e232018-08-12 02:08:32 -070074 name = "clang_3p6_strip_files",
75 srcs = [
76 "//tools/cpp/clang_3p6:strip",
77 "@clang_3p6_repo//:compiler_pieces",
78 ],
79)
80
81filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080082 name = "clang_3p6_compiler_files",
83 srcs = [
Brian Silverman7b8899e2018-06-30 19:19:24 -070084 "flags_compiler_inputs",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080085 "//tools/cpp/clang_3p6:clang",
86 "//tools/cpp/clang_3p6:ld",
87 "@clang_3p6_repo//:compiler_components",
88 "@clang_3p6_repo//:compiler_pieces",
89 ],
Brian Silverman12b3fc52015-10-11 19:38:33 -040090)
91
92cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080093 name = "cc-compiler-k8",
94 all_files = ":clang_3p6_all_files",
95 compiler_files = ":clang_3p6_compiler_files",
96 cpu = "k8",
97 dwp_files = ":empty",
98 dynamic_runtime_libs = [":empty"],
99 linker_files = ":clang_3p6_linker_files",
100 objcopy_files = "//tools/cpp/clang_3p6:objcopy",
101 static_runtime_libs = [":empty"],
Brian Silverman5c00e232018-08-12 02:08:32 -0700102 strip_files = ":clang_3p6_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800103 supports_param_files = 1,
Brian Silverman12b3fc52015-10-11 19:38:33 -0400104)
Austin Schuh23da18b2015-10-11 20:52:49 -0700105
Austin Schuh55139fe2015-10-14 23:55:24 -0700106filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800107 name = "roborio-compiler-files",
108 srcs = [
109 ":flags_compiler_inputs",
110 "//tools/cpp/arm-frc-linux-gnueabi:as",
111 "//tools/cpp/arm-frc-linux-gnueabi:tool-wrappers",
112 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
113 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700114)
115
116filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800117 name = "roborio_linker_files",
118 srcs = [
119 "//tools/cpp/arm-frc-linux-gnueabi:ar",
120 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
121 "//tools/cpp/arm-frc-linux-gnueabi:ld",
122 "//tools/cpp/arm-frc-linux-gnueabi:libs",
123 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
124 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700125)
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800126
Austin Schuh55139fe2015-10-14 23:55:24 -0700127filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800128 name = "roborio_compiler_files",
129 srcs = [
130 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
131 "//tools/cpp/arm-frc-linux-gnueabi:ld",
132 "@arm_frc_linux_gnueabi_repo//:compiler_components",
133 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
134 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700135)
136
Brian Silverman50b9ac02018-08-12 13:24:10 -0700137filegroup(
138 name = "roborio_strip_files",
139 srcs = [
140 "//tools/cpp/arm-frc-linux-gnueabi:strip",
141 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
142 ],
143)
144
Austin Schuh23da18b2015-10-11 20:52:49 -0700145cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800146 name = "cc-compiler-roborio",
147 all_files = ":roborio-compiler-files",
148 compiler_files = ":roborio_compiler_files",
149 cpu = "roborio",
150 dwp_files = ":empty",
151 dynamic_runtime_libs = [":empty"],
152 linker_files = ":roborio_linker_files",
153 objcopy_files = "//tools/cpp/arm-frc-linux-gnueabi:objcopy",
154 static_runtime_libs = [":empty"],
Brian Silverman50b9ac02018-08-12 13:24:10 -0700155 strip_files = ":roborio_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800156 supports_param_files = 1,
Austin Schuh23da18b2015-10-11 20:52:49 -0700157)
Brian Silverman0d57fc82016-01-24 21:02:53 -0500158
159filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800160 name = "linaro-gcc-files",
161 srcs = [
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700162 ":clang_3p6_all_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800163 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
164 "//tools/cpp/linaro_linux_gcc:tool-wrappers",
165 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
166 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500167)
168
169filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800170 name = "linaro_linux_linker_files",
171 srcs = [
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700172 ":clang_3p6_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800173 "//tools/cpp/linaro_linux_gcc:ar",
174 "//tools/cpp/linaro_linux_gcc:clang",
175 "//tools/cpp/linaro_linux_gcc:clang-ld",
176 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
177 "//tools/cpp/linaro_linux_gcc:gcc",
178 "//tools/cpp/linaro_linux_gcc:ld",
179 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
180 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500181)
182
183filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800184 name = "linaro_linux_compiler_files",
185 srcs = [
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700186 ":clang_3p6_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800187 "//tools/cpp/linaro_linux_gcc:as",
188 "//tools/cpp/linaro_linux_gcc:clang",
189 "//tools/cpp/linaro_linux_gcc:gcc",
190 "//tools/cpp/linaro_linux_gcc:ld",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700191 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
192 ],
193)
194
195filegroup(
196 name = "linaro_linux_strip_files",
197 srcs = [
198 "//tools/cpp/linaro_linux_gcc:strip",
199 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800200 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500201)
202
203cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800204 name = "cc-compiler-armhf-debian",
205 all_files = ":linaro-gcc-files",
206 compiler_files = ":linaro_linux_compiler_files",
207 cpu = "armhf",
208 dwp_files = ":empty",
209 dynamic_runtime_libs = [":empty"],
210 linker_files = ":linaro_linux_linker_files",
211 objcopy_files = "//tools/cpp/linaro_linux_gcc:objcopy",
212 static_runtime_libs = [":empty"],
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700213 strip_files = ":linaro_linux_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800214 supports_param_files = 1,
Brian Silverman0d57fc82016-01-24 21:02:53 -0500215)
Brian Silverman8b638692017-06-26 23:10:26 -0700216
217cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800218 name = "cc-compiler-cortex-m4f",
219 all_files = ":empty",
220 compiler_files = ":empty",
Brian Silverman7b8899e2018-06-30 19:19:24 -0700221 cpu = "cortex-m4f",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800222 dwp_files = ":empty",
223 dynamic_runtime_libs = [":empty"],
224 linker_files = "//motors/core:linkerscript",
225 objcopy_files = ":empty",
226 static_runtime_libs = [":empty"],
227 strip_files = ":empty",
228 supports_param_files = 0,
Brian Silverman8b638692017-06-26 23:10:26 -0700229)
Brian Silverman7b8899e2018-06-30 19:19:24 -0700230
231py_binary(
232 name = "gen_crosstool",
233 srcs = ["gen_crosstool.py"],
234 main = "gen_crosstool.py",
235 deps = [
236 "//third_party/bazel:crosstool_config_proto_py",
237 ],
238)