blob: be65a4b7eee8847fa87f06a823e1948fa9b714ae [file] [log] [blame]
Philipp Schraderdada1072020-11-24 11:34:46 -08001# Use platforms to build our code.
2build --incompatible_enable_cc_toolchain_resolution
3
Austin Schuhc26a2902022-01-14 16:34:25 -08004# Rewrite all URLs to be on software.frc971.org
5common --experimental_downloader_config=tools/dependency_rewrite
6
Austin Schuh085eab92020-11-26 13:54:51 -08007# Default to py3 since that's all we support
8build --python_version=PY3
9
Philipp Schraderdada1072020-11-24 11:34:46 -080010# For now we only support building on x86 Linux so we can hard-code the host
11# platform.
12build --host_platform=//tools/platforms:linux_x86
Brian Silvermanfbe4fd52015-10-26 10:40:55 -040013
Brian Silverman5bc54342015-11-26 22:57:46 -050014# Always include debug information in the non-.stripped binaries.
15build --strip=never
16
Austin Schuhda9d0602019-09-15 17:29:38 -070017build --noincompatible_disable_nocopts
Austin Schuhda9d0602019-09-15 17:29:38 -070018
Brian Silverman516ceb22015-11-27 01:29:05 -050019# Use the malloc we want.
20build --custom_malloc=//tools/cpp:malloc
21
Philipp Schraderdada1072020-11-24 11:34:46 -080022# Shortcuts for selecting the target platform.
23build:k8 --platforms=//tools/platforms:linux_x86
24build:roborio --platforms=//tools/platforms:linux_roborio
Brian Silverman4c7235a2021-11-17 19:04:37 -080025build:armv7 --platforms=//tools/platforms:linux_armv7
Philipp Schraderf1bbf342022-02-05 14:30:15 -080026build:arm64 --platforms=//tools/platforms:linux_arm64
Philipp Schraderdada1072020-11-24 11:34:46 -080027build:cortex-m4f --platforms=//tools/platforms:cortex_m4f
Austin Schuh0a96ea32022-01-01 22:29:30 -080028build:rp2040 --platforms=//tools/platforms:rp2040
Philipp Schraderdada1072020-11-24 11:34:46 -080029
Austin Schuhc4788d12021-01-23 17:23:37 -080030# Without this, we end up rebuilding from scratch every time we change compilers. This is needed to make --cpu work (even though it shouldn't be used).
31build --crosstool_top=@//tools/cpp:toolchain --host_crosstool_top=@//tools/cpp:toolchain
32
Brian Silverman63889f92015-11-27 01:33:56 -050033build:asan --copt -fsanitize=address
34build:asan --linkopt -fsanitize=address --linkopt -ldl
35build:asan --platform_suffix=-asan
36build:asan --test_env ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.6
37build:asan --test_env ASAN_OPTIONS=detect_leaks=1:check_initialization_order=1:strict_init_order=1:detect_stack_use_after_return=1:detect_odr_violation=2:allow_user_segv_handler=1
Brian Silvermanb466eef2015-11-28 20:33:44 -050038build:asan --copt -fsanitize-blacklist=tools/cpp/asan-blacklist
Brian Silverman7dc6adb2017-02-19 17:04:36 -080039build:asan --define have_asan=true
Brian Silverman63889f92015-11-27 01:33:56 -050040
41build:tsan --copt -fsanitize=thread --copt -DAOS_SANITIZER_thread
42build:tsan --linkopt -fsanitize=thread
43build:tsan --platform_suffix=-tsan
44build:tsan --test_env TSAN_OPTIONS=external_symbolizer_path=/usr/bin/llvm-symbolizer-3.6:detect_deadlocks=1:second_deadlock_stack=1
Brian Silverman7dc6adb2017-02-19 17:04:36 -080045build:tsan --define have_tsan=true
Brian Silverman63889f92015-11-27 01:33:56 -050046
47build:isan --copt -fsanitize=integer
48build:isan --linkopt -fsanitize=integer
49build:isan --platform_suffix=-isan
50build:isan --test_env LLVM_SYMBOLIZER=/usr/bin/llvm-symbolizer-3.6
Brian Silverman7dc6adb2017-02-19 17:04:36 -080051build:isan --define have_isan=true
Brian Silverman63889f92015-11-27 01:33:56 -050052
Brian Silvermana4a4ea62015-11-27 10:27:53 -050053build:ubsan --copt -fsanitize=undefined --copt -fno-sanitize-recover
54# Bad alignment is just slow on x86 and traps on ARM, so we'll find
55# it other ways, and some x86 code does it on purpose.
56build:ubsan --copt -fno-sanitize=alignment
Brian Silverman63889f92015-11-27 01:33:56 -050057build:ubsan --linkopt -fsanitize=undefined
Brian Silvermanb466eef2015-11-28 20:33:44 -050058# TOOD(Brian): Remove this once Clang adds it itself like it should.
59build:ubsan --linkopt /usr/lib/llvm-3.6/lib/clang/3.6.2/lib/linux/libclang_rt.ubsan_cxx-x86_64.a
Brian Silverman63889f92015-11-27 01:33:56 -050060build:ubsan --platform_suffix=-ubsan
Brian Silvermanb466eef2015-11-28 20:33:44 -050061build:ubsan --test_env UBSAN_OPTIONS=external_symbolizer_path=/usr/bin/llvm-symbolizer-3.6:color=always:print_stacktrace=1
62build:ubsan --copt -fsanitize-blacklist=tools/cpp/ubsan-blacklist
Brian Silverman7dc6adb2017-02-19 17:04:36 -080063build:ubsan --define have_ubsan=true
Brian Silverman63889f92015-11-27 01:33:56 -050064
Brian Silvermana4a4ea62015-11-27 10:27:53 -050065build:msan --copt -fsanitize=memory --copt -fsanitize-memory-track-origins
Brian Silvermanb466eef2015-11-28 20:33:44 -050066build:msan --linkopt -fsanitize=memory --linkopt -fsanitize-memory-track-origins
Brian Silverman63889f92015-11-27 01:33:56 -050067build:msan --platform_suffix=-msan
68build:msan --test_env MSAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.6
Brian Silverman7dc6adb2017-02-19 17:04:36 -080069build:msan --define have_msan=true
Brian Silverman63889f92015-11-27 01:33:56 -050070
James Kuszmaul2af1ba82019-02-09 22:16:53 -080071# Sometime, we want to be able to have eigen assertions run so that we can
72# catch potential issues (e.g., accessing invalid indices).
73build:eigen --copt -UNDEBUG
74
Brian Silverman12b3fc52015-10-11 19:38:33 -040075# Show paths to a few more than just 1 target.
Austin Schuh00bc0932016-02-14 21:05:34 -080076build --show_result 5
Brian Silverman12b3fc52015-10-11 19:38:33 -040077# Dump the output of the failing test to stdout.
78test --test_output=errors
Brian Silvermanb200c172017-01-02 17:35:35 -080079
Philipp Schrader6efe5732022-02-12 15:11:13 -080080build --sandbox_base=/dev/shm/
Austin Schuh35c75e82017-03-11 21:54:05 -080081build --experimental_multi_threaded_digest
Austin Schuh9d92e6b2017-10-17 01:19:38 -070082
83build --sandbox_fake_hostname=true
84build --sandbox_fake_username=true
85
Austin Schuh9d92e6b2017-10-17 01:19:38 -070086startup --host_jvm_args=-Dbazel.DigestFunction=SHA1
87
88common --watchfs
Austin Schuhe18baff2018-10-20 17:40:42 -070089
90# Switch to SHA256 for compatibility with distributed caching.
91startup --host_jvm_args=-Dbazel.DigestFunction=SHA256
92
Austin Schuhb6043b22017-11-29 00:14:39 -080093build --spawn_strategy=linux-sandbox
Philipp Schrader6efe5732022-02-12 15:11:13 -080094build --sandbox_default_allow_network=false
Austin Schuhe18baff2018-10-20 17:40:42 -070095
Austin Schuh89a95052019-04-14 14:51:14 -070096build --strategy=TypeScriptCompile=worker --strategy=AngularTemplateCompile=worker
97
Austin Schuhe18baff2018-10-20 17:40:42 -070098# Use our hermetic JDK.
99# Note that this doesn't quite work fully, but it should. See
100# https://github.com/bazelbuild/bazel/issues/6341 for ongoing discussion with
101# upstream about this.
Philipp Schrader6efe5732022-02-12 15:11:13 -0800102build --java_runtime_version=openjdk_9 --tool_java_runtime_version=openjdk_9
Philipp Schraderd64e1302020-12-12 18:53:00 -0800103
104# Prevent falling back to the host JDK.
105startup --noautodetect_server_javabase