| # We don't have a great way to test the host system in order to use the right |
| # version of the toolchain. So we need to have the user specify what their host is. |
| build:clang_linux --crosstool_top=//toolchain:clang_suite_linux |
| build:clang_linux --compiler=host_is_linux_amd64 |
| |
| build:clang_mac --crosstool_top=//toolchain:clang_suite_mac |
| build:clang_mac --apple_crosstool_top=//toolchain:clang_suite_mac |
| build:clang_mac --compiler=host_is_mac_m1 |
| build:clang_mac --apple_platform_type=macos |
| |
| # ============================================================================= |
| # Alias to build configurations below. This makes configuring things from |
| # the command line easier. |
| build --flag_alias=fontmgr_factory=//bazel/common_config_settings:fontmgr_factory |
| build --flag_alias=gpu_backend=//bazel/common_config_settings:gpu_backend |
| build --flag_alias=include_decoder=//bazel/common_config_settings:include_decoder |
| build --flag_alias=include_encoder=//bazel/common_config_settings:include_encoder |
| build --flag_alias=include_fontmgr=//bazel/common_config_settings:include_fontmgr |
| build --flag_alias=shaper_backend=//bazel/common_config_settings:shaper_backend |
| build --flag_alias=with_gl_standard=//bazel/common_config_settings:with_gl_standard |
| |
| build --flag_alias=disable_effect_serialization=no//bazel/common_config_settings:enable_effect_serialization |
| build --flag_alias=enable_effect_serialization=//bazel/common_config_settings:enable_effect_serialization |
| build --flag_alias=disable_sksl=no//bazel/common_config_settings:enable_sksl |
| build --flag_alias=enable_sksl=//bazel/common_config_settings:enable_sksl |
| build --flag_alias=disable_skslc=no//bazel/common_config_settings:enable_skslc |
| build --flag_alias=enable_skslc=//bazel/common_config_settings:enable_skslc |
| build --flag_alias=disable_sksl_tracing=no//bazel/common_config_settings:enable_sksl_tracing |
| build --flag_alias=enable_sksl_tracing=//bazel/common_config_settings:enable_sksl_tracing |
| build --flag_alias=disable_tracing=no//bazel/common_config_settings:enable_tracing |
| build --flag_alias=enable_tracing=//bazel/common_config_settings:enable_tracing |
| build --flag_alias=disable_vma=no//bazel/common_config_settings:use_vulkan_memory_allocator |
| build --flag_alias=enable_vma=//bazel/common_config_settings:use_vulkan_memory_allocator |
| build --flag_alias=with_icu=//bazel/common_config_settings:use_icu |
| build --flag_alias=with_no_icu=no//bazel/common_config_settings:use_icu |
| |
| # CanvasKit flags |
| build --flag_alias=ck_enable_fonts=//modules/canvaskit:enable_fonts |
| build --flag_alias=ck_disable_fonts=no//modules/canvaskit:enable_fonts |
| |
| # ============================================================================= |
| # REMOTE BUILD EXECUTION |
| # ============================================================================= |
| |
| # ===== |
| # The following was copied from https://github.com/bazelbuild/bazel-toolchains/blob/ea243d43269df23de03a797cff2347e1fc3d02bb/bazelrc/bazel-4.1.0.bazelrc |
| # We should be free to modify this as we see fit. |
| # |
| # Depending on how many machines are in the remote execution instance, setting |
| # this higher can make builds faster by allowing more jobs to run in parallel. |
| # Setting it too high can result in jobs that timeout, however, while waiting |
| # for a remote machine to execute them. |
| build:remote --jobs=50 |
| |
| # Set several flags related to specifying the platform, toolchain and java |
| # properties. |
| build:remote --java_runtime_version=rbe_jdk |
| build:remote --tool_java_runtime_version=rbe_jdk |
| |
| build:remote --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 |
| # Platform flags: |
| # The toolchain container used for execution is defined in the target indicated |
| # by "extra_execution_platforms", "host_platform" and "platforms". |
| # More about platforms: https://docs.bazel.build/versions/master/platforms.html |
| |
| # Starting with Bazel 0.27.0 strategies do not need to be explicitly |
| # defined. See https://github.com/bazelbuild/bazel/issues/7480 |
| build:remote --define=EXECUTOR=remote |
| |
| # Enable remote execution so actions are performed on the remote systems. |
| build:remote --remote_executor=grpcs://remotebuildexecution.googleapis.com |
| |
| # Enforce stricter environment rules, which eliminates some non-hermetic |
| # behavior and therefore improves both the remote cache hit rate and the |
| # correctness and repeatability of the build. |
| build:remote --incompatible_strict_action_env=true |
| |
| # No compile task should take more than 180 seconds. Really long running tasks |
| # are probably a result of spinning up new workers. |
| build:remote --remote_timeout=180 |
| |
| # Enable authentication. This will pick up application default credentials by |
| # default. You can use --google_credentials=some_file.json to use a service |
| # account credential instead. |
| # See https://developers.google.com/remote-build-execution/docs/authentication |
| build:remote --google_default_credentials=true |
| |
| # End of the copied RBE settings |
| #===== |
| |
| # Use the RBE instance on the skia-rbe GCP project. |
| build:remote --remote_instance_name projects/skia-rbe/instances/default_instance |
| |
| # These settings are specific to compiling on our Linux RBE workers. For example, |
| # Use the worker pool as specified by the gce_linux_platform platform in |
| # //bazel/rbe/BUILD.bazel. |
| build:linux_rbe --config=remote |
| # Use our hermetic toolchain instead of the clang in the toolchain. |
| build:linux_rbe --crosstool_top=//toolchain:clang_suite_linux |
| # We want to run on this RBE platform |
| build:linux_rbe --extra_execution_platforms=//bazel/rbe:gce_linux_platform |
| # On the RBE instances, this Java and C++ toolchain are available |
| build:linux_rbe --extra_toolchains=//bazel/rbe/gce_linux/java:all |
| build:linux_rbe --extra_toolchains=//bazel/rbe/gce_linux/config:cc-toolchain |
| |
| # Import our specified build configurations |
| # https://docs.bazel.build/versions/main/best-practices.html#using-the-bazelrc-file |
| # We chose to split our build configurations into their own file to have better organization |
| # because we anticipate that file growing large. |
| import %workspace%/bazel/buildrc |
| # Import User's custom builds if they have defined any |
| try-import %workspace%/bazel/user/buildrc |