[build] MVP for building with bazel (#6994)

This commit is contained in:
PJ Reiniger
2024-10-19 12:54:49 -04:00
committed by GitHub
parent 95b9bd880b
commit 36e0c9d6db
31 changed files with 1544 additions and 1 deletions

View File

@@ -0,0 +1,28 @@
###############################
# Linux Common
###############################
# C++ only
build:base_linux --cxxopt=-std=c++20
build:base_linux --cxxopt=-Wformat=2
build:base_linux --cxxopt=-pedantic
build:base_linux --cxxopt=-Wno-psabi
build:base_linux --cxxopt=-Wno-unused-parameter
build:base_linux --cxxopt=-fPIC
build:base_linux --cxxopt=-pthread
# C Only
build:base_linux --conlyopt=-Wformat=2
build:base_linux --conlyopt=-pedantic
build:base_linux --conlyopt=-Wno-psabi
build:base_linux --conlyopt=-Wno-unused-parameter
build:base_linux --conlyopt=-fPIC
build:base_linux --conlyopt=-pthread
# Linker
build:base_linux --linkopt=-rdynamic
build:base_linux --linkopt=-pthread
build:base_linux --linkopt=-ldl
build:base_linux --linkopt=-latomic
build:base_linux --linkopt=-Wl,-rpath,'$ORIGIN'

View File

@@ -0,0 +1,5 @@
coverage --combined_report=lcov
coverage --build_tests_only
coverage --cache_test_results=no
coverage --coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main

View File

@@ -0,0 +1,14 @@
###############################
# Linux
###############################
build:linux --config=base_linux
# Warning level
build:linux --copt=-Wall
build:linux --copt=-Wextra
build:linux --copt=-Werror
# Not in nativetools
build:linux --cxxopt=-Wno-deprecated-enum-enum-conversion

View File

@@ -0,0 +1,44 @@
# Warning level
build:macos --copt=-Wall
build:macos --copt=-Wextra
build:macos --copt=-Werror
# C++ only
build:macos --cxxopt=-std=c++20
build:macos --cxxopt=-pedantic
build:macos --cxxopt=-fPIC
build:macos --cxxopt=-Wno-unused-parameter
build:macos --cxxopt=-Wno-error=deprecated-enum-enum-conversion
build:macos --cxxopt=-Wno-missing-field-initializers
build:macos --cxxopt=-Wno-unused-private-field
build:macos --cxxopt=-Wno-unused-const-variable
build:macos --cxxopt=-Wno-error=c11-extensions
build:macos --cxxopt=-pthread
build:macos --cxxopt=-Wno-deprecated-anon-enum-enum-conversion
# C only
build:macos --conlyopt=-pedantic
build:macos --conlyopt=-fPIC
build:macos --conlyopt=-Wno-unused-parameter
build:macos --conlyopt=-Wno-missing-field-initializers
build:macos --conlyopt=-Wno-unused-private-field
build:macos --conlyopt=-Wno-fixed-enum-extension"
build:macos --linkopt=-framework
build:macos --linkopt=CoreFoundation
build:macos --linkopt=-framework
build:macos --linkopt=AVFoundation
build:macos --linkopt=-framework
build:macos --linkopt=Foundation
build:macos --linkopt=-framework
build:macos --linkopt=CoreMedia
build:macos --linkopt=-framework
build:macos --linkopt=CoreVideo
build:macos --linkopt=-headerpad_max_install_names
build:macos --linkopt=-Wl,-rpath,'@loader_path'"
# Things not in nativetools
build:macos --copt=-Wno-shorten-64-to-32

View File

@@ -0,0 +1,16 @@
###############################
# Roborio
###############################
build:roborio --config=base_linux
build:roborio --platforms=@rules_bzlmodrio_toolchains//platforms/roborio
build:roborio --build_tag_filters=-no-roborio
build:roborio --features=compiler_param_file
build:roborio --platform_suffix=roborio
build:roborio --incompatible_enable_cc_toolchain_resolution
build:roborio --cxxopt=-Wno-error=deprecated-declarations
# Extra 11
build:roborio --cxxopt=-Wno-error=deprecated-enum-enum-conversion

View File

@@ -0,0 +1,27 @@
# ASAN (address sanitizer) config
build:asan --copt -fsanitize=address
build:asan --copt -fno-omit-frame-pointer
build:asan --linkopt -fsanitize=address
build:asan --build_tests_only
build:asan --test_tag_filters=-no-asan
# TSAN (thread sanitizer)
build:tsan --strip=never
build:tsan --copt -fsanitize=thread
build:tsan --copt -DTHREAD_SANITIZER
build:tsan --copt -DDYNAMIC_ANNOTATIONS_ENABLED=1
build:tsan --copt -DDYNAMIC_ANNOTATIONS_EXTERNAL_IMPL=1
build:tsan --copt -O1
build:tsan --copt -fno-omit-frame-pointer
build:tsan --linkopt -fsanitize=thread
build:tsan --build_tests_only
build:tsan --test_tag_filters=-no-tsan
# USAN (Undefined Behavior Sanitizer)
build:ubsan --copt -fsanitize=undefined
build:ubsan --copt -fno-sanitize-recover=all
build:ubsan --copt -fno-omit-frame-pointer
build:ubsan --linkopt -fsanitize=undefined
build:ubsan --linkopt -fno-sanitize-recover=all
build:ubsan --build_tests_only
build:ubsan --test_tag_filters=-no-ubsan

View File

@@ -0,0 +1,53 @@
################################
# Common Flags
################################
# Warning level
build:windows_common --copt=/W3
build:windows_common --copt=/WX
# C++ options
build:windows_common --cxxopt=/EHsc
build:windows_common --cxxopt=/FS
build:windows_common --cxxopt=/Zc:inline
build:windows_common --cxxopt=/wd4244
build:windows_common --cxxopt=/wd4267
build:windows_common --cxxopt=/wd4146
build:windows_common --cxxopt=/wd4996
build:windows_common --cxxopt=/Zc:throwingNew
build:windows_common --cxxopt=/D_CRT_SECURE_NO_WARNINGS
build:windows_common --cxxopt=/std:c++20
build:windows_common --cxxopt=/permissive-
build:windows_common --cxxopt=/utf-8
build:windows_common --cxxopt=/bigobj
build:windows_common --cxxopt=/Zc:__cplusplus
build:windows_common --cxxopt=/Zc:preprocessor
build:windows_common --cxxopt=/wd5105
# C Only
build:windows_common --conlyopt=/FS
build:windows_common --conlyopt=/Zc:inline
build:windows_common --conlyopt=/D_CRT_SECURE_NO_WARNINGS
# build:windows_common --linkopt=/IGNORE:4099
# TODO there is a "bug" in bazel that forces "/D_WIN32_WINNT=0x0601". Remove it from the files that break because of this.
build:windows_common --per_file_copt=wpiutil/src/main/native/cpp/timestamp.cpp,wpinet/src/main/native/thirdparty/libuv/src/win/util.cpp,hal/src/main/native/sim/HAL.cpp@/U_WIN32_WINNT
################################
# Standard Windows Flags
################################
build:windows --config=windows_common
build:windows --linkopt=/DEPENDENTLOADFLAG:0x1100
# TODO
build:windows --copt=/D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR
################################
# ARM Windows Flags
################################
build:windows_arm --config=windows_common
build:windows_arm --cpu=arm64_windows
build:windows_arm --linkopt=/IGNORE:4099