# Must be first. Enables build:windows, build:linux, build:macos, build:freebsd, build:openbsd build --enable_platform_specific_config ############################################################################### # On Windows, provide: USE_CLANG_CL=1, CC=clang, BAZEL_LLVM, BAZEL_SH # On all platforms, provide: PYTHON3_BIN_PATH=python ############################################################################### build --action_env=PATH # For --compilation_mode=dbg, consider enabling checks in the standard library as well (below). build --compilation_mode=opt build --experimental_ui_deduplicate # This workaround is needed to prevent Bazel from compiling the same file twice (once PIC and once not). build:linux --force_pic build:macos --force_pic # TODO(mehrdadn): Revert the "-\\.(asm|S)$" exclusion when this Bazel bug # for compiling assembly files is fixed on Windows: # https://github.com/bazelbuild/bazel/issues/8924 # Warnings should be errors build --per_file_copt="-\\.(asm|S)$,-.*/arrow/util/logging\\.cc@-Werror" # Ignore warnings for protobuf generated files and external projects. build --per_file_copt="-\\.(asm|S)$,\\.pb\\.cc$@-w" build --per_file_copt="-\\.(asm|S)$,external/.*@-w" # Ignore this warning since it's impractical to fix in the relevant headers build --per_file_copt="-\\.(asm|S)$,.*/ray/raylet/reconstruction_policy_test\\.cc@-Wno-inconsistent-missing-override" # Ignore this warning since CPython and Cython have issue removing deprecated tp_print on MacOS build --per_file_copt="-\\.(asm|S)$,.*/_raylet\\.cpp@-Wno-deprecated-declarations" build --per_file_copt="-\\.(asm|S)$,.*/_streaming\\.cpp@-Wno-deprecated-declarations" # Ignore minor warnings for host tools, which we generally can't control build --host_copt="-Wno-builtin-macro-redefined" build --host_copt="-Wno-inconsistent-missing-override" build --host_copt="-Wno-microsoft-unqualified-friend" # This workaround is needed due to https://github.com/bazelbuild/bazel/issues/4341 build --per_file_copt="-\\.(asm|S)$,external/com_github_grpc_grpc/.*@-DGRPC_BAZEL_BUILD" # Don't generate warnings about kernel features we don't need https://github.com/ray-project/ray/issues/6832 build:linux --per_file_copt="-\\.(asm|S)$,external/com_github_grpc_grpc/.*@-DGPR_MANYLINUX1" build --http_timeout_scaling=5.0 build --verbose_failures build:iwyu --experimental_action_listener=//:iwyu_cpp # Print relative paths when possible build:windows --attempt_to_print_relative_paths # Save disk space by hardlinking cache hits instead of copying build:windows --experimental_repository_cache_hardlinks # Clean the environment before building, to make builds more deterministic build:windows --incompatible_strict_action_env # For colored output (seems necessary on Windows) build:windows --color=yes # For compiler colored output (seems necessary on Windows) build:windows --per_file_copt="-\\.(asm|S)$@-fansi-escape-codes" build:windows --per_file_copt="-\\.(asm|S)$@-fcolor-diagnostics" # Debug build flags. Uncomment in '-c dbg' builds to enable checks in the C++ standard library: #build:linux --cxxopt="-D_GLIBCXX_DEBUG=1" #build:linux --cxxopt="-D_GLIBCXX_DEBUG_PEDANTIC=1" #build:linux --cxxopt="-D_LIBCPP_DEBUG=1" #build:macos --cxxopt="-D_GLIBCXX_DEBUG=1" #build:macos --cxxopt="-D_GLIBCXX_DEBUG_PEDANTIC=1" #build:windows --cxxopt="-D_ITERATOR_DEBUG_LEVEL=2" # Thread sanitizer configuration: build:tsan --strip=never build:tsan --copt -fsanitize=thread build:tsan --copt -DTHREAD_SANITIZER build:tsan --copt -g build:tsan --copt -fno-omit-frame-pointer build:tsan --linkopt -fsanitize=thread # Memory sanitizer configuration build:asan --strip=never build:asan --copt -g build:asan --copt -fsanitize=address build:asan --copt -fno-sanitize=vptr build:asan --copt -DADDRESS_SANITIZER build:asan --copt -fno-omit-frame-pointer build:asan --linkopt -fsanitize=address build:asan --linkopt -fno-sanitize=vptr test:asan --jobs=1 test:asan --test_env=ASAN_OPTIONS="detect_leaks=0" # This LD_PRELOAD is set for Travis. You will need to change it for local debugging. test:asan --test_env=LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libasan.so.2 /usr/lib/gcc/x86_64-linux-gnu/7/libasan.so" # For example, for Ubuntu 18.04 libasan can be found here: # test:asan --test_env=LD_PRELOAD="/usr/lib/gcc/x86_64-linux-gnu/7/libasan.so" # CI configuration: build:ci --color=yes build:ci --curses=no build:ci --disk_cache=~/ray-bazel-cache build:ci --remote_cache="https://storage.googleapis.com/ray-bazel-cache" build:ci --progress_report_interval=100 build:ci --show_progress_rate_limit=15 build:ci --show_task_finish build:ci --ui_actions_shown=1024 build:ci-travis --show_timestamps # Travis doesn't have an option to show timestamps, but GitHub Actions does # GitHub Actions has low disk space, so prefer hardlinks there. build:ci-github --experimental_repository_cache_hardlinks test:ci --flaky_test_attempts=3 test:ci --nocache_test_results test:ci --spawn_strategy=local test:ci --test_output=errors test:ci --test_verbose_timeout_warnings # [Linux] Uncomment this line to print a stack trace on exit. #test:linux --run_under="bash -c 'if command -v strace >/dev/null && strace -qq -k -e exit true 2>/dev/null; then strace -qq -k -e exit -e trace=\"!all\" -s 32768 -f -o >(awk \"/^[0-9]+ / { y = \\$3 != \\\"SIGCHLD\\\" && \\$3 != \\\"SIGTERM\\\" && \\$5 != \\\"SIGTERM\\\" && \\$5 != \\\"SIGKILL2\\\"; } y { print; }\" 1>&2 && cat 1>&2) -- \"$@\"; else \"$@\"; fi' -" # [Linux] Uncomment this line to preload libSegFault.so if available, to print a stack trace on aborts and segfault. (Note: This doesn't always work.) #test:linux --run_under="bash -c 'unset GREP_OPTIONS && if ! grep -q -o Microsoft /proc/version 2>/dev/null; then libs=\"$(command -v ldconfig >/dev/null && ldconfig -p | grep -F -o -e \"libSegFault.so\" | uniq | tr \"\\\\n\" :)\" && if [ -n \"${libs%:}\" ]; then export SEGFAULT_SIGNALS=\"abrt segv\" LD_PRELOAD=\"${libs}${LD_PRELOAD-}\"; fi; fi && \"$@\"' -"