srctree

.bazelrc
82af7f25  Robin Linden # Bazel configuration 82af7f25  Robin Linden # ========================================================= 82af7f25  Robin Linden 1f1206be  Robin Linden # https://github.com/bazelbuild/bazel/issues/18958 1f1206be  Robin Linden common --noenable_bzlmod 1f1206be  Robin Linden 82af7f25  Robin Linden build --enable_platform_specific_config 0176d4bd  Robin Linden coverage --combined_report=lcov c76c8910  Robin Linden coverage --instrumentation_filter=-'_fuzz_test' 8a7581c4  Robin Linden test --test_output=errors 4e87c530  Robin Linden test --test_summary=terse 84e17cc4  Robin Linden test --test_verbose_timeout_warnings 82af7f25  Robin Linden 7658fe5a  Robin Linden # Bazel deprecations 7658fe5a  Robin Linden # ========================================================= 7658fe5a  Robin Linden # See: https://docs.bazel.build/versions/main/backward-compatibility.html 7658fe5a  Robin Linden 38755c75  Robin Linden # https://github.com/bazelbuild/bazel/issues/12821 38755c75  Robin Linden common --nolegacy_external_runfiles 1df7ad27  Robin Linden build --incompatible_config_setting_private_default_visibility 7658fe5a  Robin Linden build --incompatible_disallow_empty_glob 1df7ad27  Robin Linden build --incompatible_enforce_config_setting_visibility 7658fe5a  Robin Linden 4dcb918d  Robin Linden # Third-party configuration 4dcb918d  Robin Linden # ========================================================= 4dcb918d  Robin Linden 4dcb918d  Robin Linden # Don't require a system Python installation. 4dcb918d  Robin Linden build --@rules_python//python/config_settings:bootstrap_impl=script 4dcb918d  Robin Linden cd990700  Robin Linden # Compiler configuration fc9d82a6  Robin Linden # ========================================================= fc9d82a6  Robin Linden b894542e  Robin Linden # Bazel + Clang supports this really cool features where it checks that you're b894542e  Robin Linden # not relying on transitive dependencies, so let's enable that! b894542e  Robin Linden build:linux --features=layering_check b894542e  Robin Linden a29fa8c1  Robin Linden build:linux --cxxopt='-std=c++2b' a29fa8c1  Robin Linden build:linux --host_cxxopt='-std=c++2b' a29fa8c1  Robin Linden build:linux --cxxopt='-fno-rtti' a29fa8c1  Robin Linden build:linux --host_cxxopt='-fno-rtti' 6aa8524f  Robin Linden bf783148  Robin Linden build:macos --apple_crosstool_top=@local_config_apple_cc//:toolchain bf783148  Robin Linden build:macos --crosstool_top=@local_config_apple_cc//:toolchain bf783148  Robin Linden build:macos --host_crosstool_top=@local_config_apple_cc//:toolchain 41396e3b  David Zero build:macos --features=layering_check a29fa8c1  Robin Linden build:macos --cxxopt='-std=c++2b' a29fa8c1  Robin Linden build:macos --host_cxxopt='-std=c++2b' a29fa8c1  Robin Linden build:macos --cxxopt='-fno-rtti' a29fa8c1  Robin Linden build:macos --host_cxxopt='-fno-rtti' 49deedb8  Robin Linden build:macos --objccopt='-ObjC++' 49deedb8  Robin Linden build:macos --objccopt='-std=c++2b' 41396e3b  David Zero 82af7f25  Robin Linden build:windows --enable_runfiles 2209f547  David Zero build:windows --action_env=LOCALAPPDATA # Quirk for running vswhere, remove when icu no-longer needed 2209f547  David Zero build:windows --action_env=ProgramData # Quirk for running vswhere, remove when icu no-longer needed a29fa8c1  Robin Linden build:windows --cxxopt='/std:c++latest' a29fa8c1  Robin Linden build:windows --host_cxxopt='/std:c++latest' a29fa8c1  Robin Linden build:windows --cxxopt='/GR-' # Disable rtti. a29fa8c1  Robin Linden build:windows --host_cxxopt='/GR-' a29fa8c1  Robin Linden build:windows --copt='/permissive-' # Conform to the standard. a29fa8c1  Robin Linden build:windows --host_copt='/permissive-' a29fa8c1  Robin Linden build:windows --copt='/Zc:__cplusplus' # Report the real supported C++ version, not just C++98. a29fa8c1  Robin Linden build:windows --host_copt='/Zc:__cplusplus' a29fa8c1  Robin Linden build:windows --copt='-utf-8' # Use UTF-8 as the source and execution character sets. a29fa8c1  Robin Linden build:windows --host_copt='-utf-8' fc9d82a6  Robin Linden 326e6c62  Robin Linden # Special build options 326e6c62  Robin Linden # ========================================================= 326e6c62  Robin Linden 9b55bcfe  Robin Linden # https://bazel.build/configure/windows#clang 6b88cecc  Robin Linden build:clang-cl --extra_toolchains=@local_config_cc//:cc-toolchain-x64_windows-clang-cl 6b88cecc  Robin Linden build:clang-cl --extra_execution_platforms=//:x64_windows-clang-cl 6b88cecc  Robin Linden build:clang-cl --platforms=//:x64_windows-clang-cl 6b88cecc  Robin Linden a7d6930f  Robin Linden build:libc++ --cxxopt=-stdlib=libc++ a7d6930f  Robin Linden build:libc++ --host_cxxopt=-stdlib=libc++ a7d6930f  Robin Linden build:libc++ --cxxopt=-fexperimental-library a7d6930f  Robin Linden build:libc++ --host_cxxopt=-fexperimental-library a7d6930f  Robin Linden build:libc++ --linkopt=-stdlib=libc++ a7d6930f  Robin Linden build:libc++ --host_linkopt=-stdlib=libc++ 98890db3  Robin Linden # https://releases.llvm.org/16.0.0/projects/libcxx/docs/ReleaseNotes.html#upcoming-deprecations-and-removals a7d6930f  Robin Linden build:libc++ --copt=-D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES a7d6930f  Robin Linden build:libc++ --host_copt=-D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES 7deb5605  Robin Linden 326e6c62  Robin Linden # Some of this is from "Can I run AddressSanitizer with more aggressive diagnostics enabled?" 326e6c62  Robin Linden # on https://github.com/google/sanitizers/wiki/AddressSanitizer#faq and some is from 326e6c62  Robin Linden # https://chromium.googlesource.com/external/github.com/grpc/grpc/+/4e9206f48c91e17f43856b016b12f59dd5118293/tools/bazel.rc 326e6c62  Robin Linden build:asan --strip=never 4d28da83  Robin Linden build:asan --features=asan 326e6c62  Robin Linden build:asan --copt=-fsanitize-address-use-after-scope 326e6c62  Robin Linden build:asan --copt=-fno-omit-frame-pointer 2151f972  Robin Linden build:asan --action_env=ASAN_OPTIONS=detect_odr_violations=2:detect_leaks=1:strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1 326e6c62  Robin Linden build:asan --action_env=LSAN_OPTIONS=report_objects=1 326e6c62  Robin Linden 0635a129  Robin Linden build:tsan --strip=never 4d28da83  Robin Linden build:tsan --features=tsan cc8a5dda  Robin Linden build:tsan --action_env=TSAN_OPTIONS=halt_on_error=1 0635a129  Robin Linden f0763134  Robin Linden build:ubsan --strip=never 4d28da83  Robin Linden build:ubsan --features=ubsan f0763134  Robin Linden build:ubsan --copt=-fno-omit-frame-pointer 95e26c66  Robin Linden build:ubsan --linkopt=-fsanitize-link-c++-runtime e9a214f7  Robin Linden build:ubsan --host_linkopt=-fsanitize-link-c++-runtime f0763134  Robin Linden build:ubsan --action_env=UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1 f0763134  Robin Linden 8f4db273  Robin Linden build:clang-coverage 8f4db273  Robin Linden build:clang-coverage --action_env=BAZEL_USE_LLVM_NATIVE_COVERAGE=1 8f4db273  Robin Linden build:clang-coverage --experimental_generate_llvm_lcov 8f4db273  Robin Linden 8f4db273  Robin Linden build:clang16-coverage --config=clang-coverage 8f4db273  Robin Linden build:clang16-coverage --action_env=BAZEL_LLVM_COV=llvm-cov-16 8f4db273  Robin Linden build:clang16-coverage --action_env=GCOV=llvm-profdata-16 0a66c6ea  Robin Linden 54a9634d  Robin Linden build:clang18-coverage --config=clang-coverage 54a9634d  Robin Linden build:clang18-coverage --action_env=BAZEL_LLVM_COV=llvm-cov-18 54a9634d  Robin Linden build:clang18-coverage --action_env=GCOV=llvm-profdata-18 54a9634d  Robin Linden 1e829c9c  Robin Linden build:clang-tidy --aspects @bazel_clang_tidy//clang_tidy:clang_tidy.bzl%clang_tidy_aspect 1e829c9c  Robin Linden build:clang-tidy --output_groups=report 1e829c9c  Robin Linden build:clang-tidy --@bazel_clang_tidy//:clang_tidy_config=//:clang_tidy_config 1e829c9c  Robin Linden bda55e1b  Robin Linden # Cross-compilation bda55e1b  Robin Linden # ========================================================= bda55e1b  Robin Linden 9ef768ae  Robin Linden # See: https://github.com/uber/hermetic_cc_toolchain/issues/134 9ef768ae  Robin Linden build:zig-cross --sandbox_add_mount_pair=/tmp ce659667  Robin Linden # build:zig-cross --sandbox_add_mount_pair=/var/tmp # macOS ce659667  Robin Linden # build:zig-cross --sandbox_add_mount_pair=C:\Temp # Windows 9ef768ae  Robin Linden build:zig-cross --dynamic_mode=off bd2079c4  Robin Linden # TODO(robinlinden): Make this transitive so we can tag the no-cross targets bd2079c4  Robin Linden # instead of everything depending on no-cross targets. bd2079c4  Robin Linden # * icu's pkgdata stuff doesn't work w/ cross-compilation. bd2079c4  Robin Linden # * sfml links against host libraries: GL, X11. bd2079c4  Robin Linden # * py_test targets have host dependencies. bd2079c4  Robin Linden build:zig-cross --build_tag_filters=-no-cross bd2079c4  Robin Linden build:zig-cross --test_tag_filters=-no-cross 9ef768ae  Robin Linden e5a797d3  Robin Linden build:zig-cross-musl --config=zig-cross e5a797d3  Robin Linden build:zig-cross-musl --copt=-fPIC e5a797d3  Robin Linden # TODO(robinlinden): asio assumes __GLIBC__ is defined. e5a797d3  Robin Linden build:zig-cross-musl --copt=-Wno-error=undef e5a797d3  Robin Linden e5a797d3  Robin Linden build:linux-amd64-musl --config=zig-cross-musl e5a797d3  Robin Linden build:linux-amd64-musl --platforms=@zig_sdk//platform:linux_amd64 e5a797d3  Robin Linden build:linux-amd64-musl --extra_toolchains=@zig_sdk//toolchain:linux_amd64_musl e5a797d3  Robin Linden e5a797d3  Robin Linden build:linux-aarch64-musl --config=zig-cross-musl bda55e1b  Robin Linden build:linux-aarch64-musl --platforms=@zig_sdk//platform:linux_arm64 bda55e1b  Robin Linden build:linux-aarch64-musl --extra_toolchains=@zig_sdk//toolchain:linux_arm64_musl b5b76b9b  Robin Linden 9ef768ae  Robin Linden build:macos-amd64 --config=zig-cross 9ef768ae  Robin Linden build:macos-amd64 --platforms=@zig_sdk//platform:darwin_amd64 9ef768ae  Robin Linden build:macos-amd64 --extra_toolchains=@zig_sdk//toolchain:darwin_amd64 9ef768ae  Robin Linden 9ef768ae  Robin Linden build:macos-aarch64 --config=zig-cross 9ef768ae  Robin Linden build:macos-aarch64 --platforms=@zig_sdk//platform:darwin_aarch64 9ef768ae  Robin Linden build:macos-aarch64 --extra_toolchains=@zig_sdk//toolchain:darwin_arm64 9ef768ae  Robin Linden 9ef768ae  Robin Linden build:windows-amd64 --config=zig-cross 9ef768ae  Robin Linden build:windows-amd64 --platforms=@zig_sdk//platform:windows_amd64 9ef768ae  Robin Linden build:windows-amd64 --extra_toolchains=@zig_sdk//toolchain:windows_amd64 bda55e1b  Robin Linden 581a8049  Robin Linden build:wasi-wasm --config=zig-cross 581a8049  Robin Linden build:wasi-wasm --platforms=@zig_sdk//platform:wasip1_wasm 581a8049  Robin Linden build:wasi-wasm --extra_toolchains=@zig_sdk//toolchain:wasip1_wasm 581a8049  Robin Linden # wasi doesn't support exceptions yet: 581a8049  Robin Linden # https://github.com/WebAssembly/wasi-sdk/tree/f1ebc52a74394cdf885d03bfde13899b3d5c6d2d?tab=readme-ov-file#notable-limitations 581a8049  Robin Linden build:wasi-wasm --copt=-fno-exceptions 581a8049  Robin Linden ddf686c5  Robin Linden # Fuzzing options ddf686c5  Robin Linden # ========================================================= ddf686c5  Robin Linden ddf686c5  Robin Linden # https://github.com/bazelbuild/rules_fuzzing says to also set ddf686c5  Robin Linden # @rules_fuzzing//fuzzing:cc_engine_sanitizer=asan or similar which sets things ddf686c5  Robin Linden # like -fsanitize=asan. We don't use this as we set these options ourselves. ddf686c5  Robin Linden # See: ddf686c5  Robin Linden # * https://github.com/bazelbuild/rules_fuzzing/blob/9865504b549e86ccfb4713afcc1914c982567f05/fuzzing/BUILD ddf686c5  Robin Linden # * https://github.com/bazelbuild/rules_fuzzing/blob/9865504b549e86ccfb4713afcc1914c982567f05/fuzzing/private/instrum_opts.bzl ddf686c5  Robin Linden 1f47ebec  Robin Linden build:libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:libfuzzer 1f47ebec  Robin Linden build:libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer 7cc79365  Robin Linden 1f47ebec  Robin Linden build:honggfuzz --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:honggfuzz 1f47ebec  Robin Linden build:honggfuzz --@rules_fuzzing//fuzzing:cc_engine_instrumentation=honggfuzz 081c229b  Robin Linden fc9d82a6  Robin Linden # Misc configuration fc9d82a6  Robin Linden # ========================================================= cd990700  Robin Linden cd990700  Robin Linden try-import %workspace%/.bazelrc.local