blob: bc094aabe85cab9ff1643fc0a68079d681169885 [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(
74 name = "clang_3p6_compiler_files",
75 srcs = [
76 "//tools/cpp/clang_3p6:clang",
77 "//tools/cpp/clang_3p6:ld",
78 "@clang_3p6_repo//:compiler_components",
79 "@clang_3p6_repo//:compiler_pieces",
80 ],
Brian Silverman12b3fc52015-10-11 19:38:33 -040081)
82
83cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080084 name = "cc-compiler-k8",
85 all_files = ":clang_3p6_all_files",
86 compiler_files = ":clang_3p6_compiler_files",
87 cpu = "k8",
88 dwp_files = ":empty",
89 dynamic_runtime_libs = [":empty"],
90 linker_files = ":clang_3p6_linker_files",
91 objcopy_files = "//tools/cpp/clang_3p6:objcopy",
92 static_runtime_libs = [":empty"],
93 strip_files = "//tools/cpp/clang_3p6:strip",
94 supports_param_files = 1,
Brian Silverman12b3fc52015-10-11 19:38:33 -040095)
Austin Schuh23da18b2015-10-11 20:52:49 -070096
Austin Schuh55139fe2015-10-14 23:55:24 -070097filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080098 name = "roborio-compiler-files",
99 srcs = [
100 ":flags_compiler_inputs",
101 "//tools/cpp/arm-frc-linux-gnueabi:as",
102 "//tools/cpp/arm-frc-linux-gnueabi:tool-wrappers",
103 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
104 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700105)
106
107filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800108 name = "roborio_linker_files",
109 srcs = [
110 "//tools/cpp/arm-frc-linux-gnueabi:ar",
111 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
112 "//tools/cpp/arm-frc-linux-gnueabi:ld",
113 "//tools/cpp/arm-frc-linux-gnueabi:libs",
114 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
115 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700116)
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800117
Austin Schuh55139fe2015-10-14 23:55:24 -0700118filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800119 name = "roborio_compiler_files",
120 srcs = [
121 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
122 "//tools/cpp/arm-frc-linux-gnueabi:ld",
123 "@arm_frc_linux_gnueabi_repo//:compiler_components",
124 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
125 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700126)
127
Austin Schuh23da18b2015-10-11 20:52:49 -0700128cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800129 name = "cc-compiler-roborio",
130 all_files = ":roborio-compiler-files",
131 compiler_files = ":roborio_compiler_files",
132 cpu = "roborio",
133 dwp_files = ":empty",
134 dynamic_runtime_libs = [":empty"],
135 linker_files = ":roborio_linker_files",
136 objcopy_files = "//tools/cpp/arm-frc-linux-gnueabi:objcopy",
137 static_runtime_libs = [":empty"],
138 strip_files = "//tools/cpp/arm-frc-linux-gnueabi:strip",
139 supports_param_files = 1,
Austin Schuh23da18b2015-10-11 20:52:49 -0700140)
Brian Silverman0d57fc82016-01-24 21:02:53 -0500141
142filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800143 name = "linaro-gcc-files",
144 srcs = [
145 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
146 "//tools/cpp/linaro_linux_gcc:tool-wrappers",
147 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
148 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500149)
150
151filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800152 name = "linaro_linux_linker_files",
153 srcs = [
154 "//tools/cpp/linaro_linux_gcc:ar",
155 "//tools/cpp/linaro_linux_gcc:clang",
156 "//tools/cpp/linaro_linux_gcc:clang-ld",
157 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
158 "//tools/cpp/linaro_linux_gcc:gcc",
159 "//tools/cpp/linaro_linux_gcc:ld",
160 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
161 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500162)
163
164filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800165 name = "linaro_linux_compiler_files",
166 srcs = [
167 "//tools/cpp/linaro_linux_gcc:as",
168 "//tools/cpp/linaro_linux_gcc:clang",
169 "//tools/cpp/linaro_linux_gcc:gcc",
170 "//tools/cpp/linaro_linux_gcc:ld",
171 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500172)
173
174cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800175 name = "cc-compiler-armhf-debian",
176 all_files = ":linaro-gcc-files",
177 compiler_files = ":linaro_linux_compiler_files",
178 cpu = "armhf",
179 dwp_files = ":empty",
180 dynamic_runtime_libs = [":empty"],
181 linker_files = ":linaro_linux_linker_files",
182 objcopy_files = "//tools/cpp/linaro_linux_gcc:objcopy",
183 static_runtime_libs = [":empty"],
184 strip_files = "//tools/cpp/linaro_linux_gcc:strip",
185 supports_param_files = 1,
Brian Silverman0d57fc82016-01-24 21:02:53 -0500186)
Brian Silverman8b638692017-06-26 23:10:26 -0700187
188cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800189 name = "cc-compiler-cortex-m4f",
190 all_files = ":empty",
191 compiler_files = ":empty",
192 cpu = "cortex-m4",
193 dwp_files = ":empty",
194 dynamic_runtime_libs = [":empty"],
195 linker_files = "//motors/core:linkerscript",
196 objcopy_files = ":empty",
197 static_runtime_libs = [":empty"],
198 strip_files = ":empty",
199 supports_param_files = 0,
Brian Silverman8b638692017-06-26 23:10:26 -0700200)