diff options
Diffstat (limited to '.bazelrc')
-rw-r--r-- | .bazelrc | 78 |
1 files changed, 62 insertions, 16 deletions
@@ -12,9 +12,29 @@ # License for the specific language governing permissions and limitations under # the License. +# Silence all C/C++ warnings in external code. +# +# Note that this will not silence warnings from external headers #include'd in +# first-party code. +common --per_file_copt=external/.*@-w +common --host_per_file_copt=external/.*@-w + +# Don't automatically create __init__.py files. +# +# This prevents spurious package name collisions at import time, and should be +# the default (https://github.com/bazelbuild/bazel/issues/7386). It's +# particularly helpful for Pigweed, because we have many potential package name +# collisions due to a profusion of stuttering paths like +# pw_transfer/py/pw_transfer. +common --incompatible_default_to_explicit_init_py + # Required for new toolchain resolution API. build --incompatible_enable_cc_toolchain_resolution +# Do not attempt to configure an autodetected (local) toolchain. We vendor all +# our toolchains, and CI VMs may not have any local toolchain to detect. +common --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 + # Required for combined code coverage reports. coverage --experimental_generate_llvm_lcov coverage --combined_report=lcov @@ -28,6 +48,10 @@ build --ui_event_filters=-debug # variables. build --incompatible_strict_action_env +# Workaround for https://github.com/bazelbuild/rules_jvm_external/issues/445. +build --java_runtime_version=remotejdk_11 +build --repo_env=JAVA_HOME=../bazel_tools/jdk + # Silence compiler warnings from external repositories. # # This is supported by Bazel's default C++ toolchain, but not yet by @@ -35,22 +59,11 @@ build --incompatible_strict_action_env # (https://github.com/bazelembedded/rules_cc_toolchain/issues/46). build --features=external_include_paths -# TODO(b/269204725): Move the following flags to the toolchain configuration. -# By default build with C++17. -build --cxxopt='-std=c++17' -build --cxxopt="-fno-rtti" -build --cxxopt="-Wnon-virtual-dtor" -# Allow uses of the register keyword, which may appear in C headers. -build --cxxopt="-Wno-register" - -# This leaks the PATH variable into the Bazel build environment, which -# enables the Python pw_protobuf plugins to find the Python version -# via CIPD and pw_env_setup. This is a partial fix for pwbug/437, -# however this does not provide a fix for downstream projects that -# use system Python < 3.6. This approach is problematic because of the -# Protobuf rebuild sensitivity to environment variable changes. -# TODO(pwbug/437): Remove this once pwbug/437 is completely resolved. -build --action_env=PATH +# This feature can't be enabled until __unordtf2 and __letf2 are implemented by +# compiler-rt. See https://reviews.llvm.org/D53608. +# build --features=fully_static_link + +build --@mbedtls//:mbedtls_config=//third_party/mbedtls:default_config # Define the --config=asan-libfuzzer configuration. build:asan-libfuzzer \ @@ -59,6 +72,31 @@ build:asan-libfuzzer \ --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan +# Include FuzzTest build configurations. +try-import %workspace%/third_party/fuzztest/fuzztest.bazelrc +build:fuzztest \ + --@pigweed//targets:pw_fuzzer_fuzztest_backend=@com_google_fuzztest//fuzztest +build:fuzztest \ + --@pigweed//targets:pw_unit_test_main=@com_google_fuzztest//fuzztest:fuzztest_gtest_main + +# We use non-default labels for the STM32Cube repositories upstream (to reserve +# the option of building for more than one MCU family down the road), so need to +# override the three labels below. +common --//third_party/stm32cube:hal_driver=@stm32f4xx_hal_driver//:hal_driver +common --@stm32f4xx_hal_driver//:cmsis_device=@cmsis_device_f4//:cmsis_device +common --@stm32f4xx_hal_driver//:cmsis_init=@cmsis_device_f4//:default_cmsis_init + +# Config for the stm32f429i_disc1_stm32cube platform. +# +# TODO: b/301334234 - Make the platform set the flags below. +build:stm32f429i --platforms=//targets/stm32f429i_disc1_stm32cube:platform +build:stm32f429i --copt="-DSTM32CUBE_HEADER=\"stm32f4xx.h\"" +build:stm32f429i --copt="-DSTM32F429xx" +build:stm32f429i --@stm32f4xx_hal_driver//:hal_config=//targets/stm32f429i_disc1_stm32cube:hal_config +build:stm32f429i --//pw_log:backend_impl=@pigweed//pw_log_tokenized:impl +build:stm32f429i --//targets:pw_log_backend=@pigweed//pw_log_tokenized +build:stm32f429i --//targets:pw_log_tokenized_handler_backend=@pigweed//pw_system:log_backend + # Specifies desired output mode for running tests. # Valid values are # 'summary' to output only test status summary @@ -68,3 +106,11 @@ build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan # (this will force tests to be executed locally one at a time regardless # of --test_strategy value). test --test_output=errors + +# User bazelrc file; see +# https://bazel.build/configure/best-practices#bazelrc-file +# +# Note: this should be at the bottom of the file, so that user-specified +# options override anything in this file +# (https://bazel.build/run/bazelrc#imports) +try-import %workspace%/user.bazelrc |