86678ed625
Our SVG code depends on our XML code which depends on expat. See also cl/457481999 Change-Id: I83b61f5d73570d0aa7e851a01ccd019b4b1019e4 Bug: skia:12541 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/553376 Reviewed-by: Florin Malita <fmalita@google.com>
136 lines
7.4 KiB
Plaintext
136 lines
7.4 KiB
Plaintext
# https://bazel.build/concepts/platforms-intro#cxx
|
|
# This forces Bazel's C++ rules use platforms to select toolchains instead of the default
|
|
# --crosstool_top, --compiler, etc.
|
|
build --incompatible_enable_cc_toolchain_resolution
|
|
|
|
# We do not want Bazel to detect any C++ toolchains on the local machine
|
|
# https://github.com/bazelbuild/bazel/blob/4ccc21f2f089971e5f4032397764a4be3549c40a/tools/cpp/cc_configure.bzl#L47
|
|
build --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
|
|
|
|
# We would like developers to not upload to the remote build cache, only the RBE workers themselves.
|
|
build --remote_upload_local_results=false
|
|
|
|
# This tells Bazel that the host platform can use the hermetic toolchain. This is a small lie until
|
|
# Windows support is added.
|
|
build --host_platform=//bazel/platform:host_with_hermetic_toolchain
|
|
|
|
# Register our toolchains. We do this here, and not in WORKSPACE.bazel because
|
|
# --extra_toolchains has priority over register_toolchains and we conditionally add some toolchains
|
|
# for RBE.
|
|
build --extra_toolchains=//toolchain:clang_linux_x64_toolchain
|
|
build --extra_toolchains=//toolchain:clang_mac_x64_toolchain
|
|
build --extra_toolchains=//toolchain:clang_mac_arm64_toolchain
|
|
|
|
# --platforms refers to the target for which we are compiling. By setting the target to be a
|
|
# platform which has our own custom constraint_setting and constraint_value
|
|
# (skia_hermetic_toolchain=use_hermetic_toolchain), this causes Bazel to resolve the toolchain
|
|
# to be our hermetic one because our hermetic toolchains have that same constraint set in their
|
|
# target_compatible_with list.
|
|
build:for_linux_x64 --platforms=//bazel/platform:linux_x64_hermetic
|
|
build:for_linux_x64_with_rbe --config=linux_rbe --platforms=//bazel/platform:linux_x64_hermetic
|
|
|
|
build:for_mac_arm64 --platforms=//bazel/platform:mac_arm64_hermetic
|
|
build:for_mac_x64 --platforms=//bazel/platform:mac_x64_hermetic
|
|
# some aliases using more common lingo
|
|
build:for_mac_m1 --config=for_mac_arm64
|
|
build:for_mac_intel --config=for_mac_x64
|
|
|
|
# =============================================================================
|
|
# 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_svg_canvas=no//bazel/common_config_settings:enable_svg_canvas
|
|
build --flag_alias=enable_svg_canvas=//bazel/common_config_settings:enable_svg_canvas
|
|
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
|
|
|
|
# When a remote configuration is chosen, add "remote" to the list of spawn_strategies.
|
|
build:remote --spawn_strategy=remote,sandboxed
|
|
|
|
# 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
|
|
# To authenticate, you should run gcloud auth application-default login
|
|
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
|
|
|
|
# The linxu_rbe config will build on RBE and default to compiling for linux_x64 using
|
|
# the hermetic toolchain.
|
|
build:linux_rbe --config=remote
|
|
# On the RBE instances, we also have the Java and C++ toolchain from the Docker image available.
|
|
# These need to come after the --extra_toolchains flags (above) that register our hermetic
|
|
# toolchains, because we only want these backup toolchains to be used by Bazel internals,
|
|
# if at all.
|
|
build:linux_rbe --extra_toolchains=//bazel/rbe/gce_linux/java:all
|
|
build:linux_rbe --extra_toolchains=//bazel/rbe/gce_linux/config:cc-toolchain
|
|
# Make the RBE platform available for selection as an Execution platform.
|
|
build:linux_rbe --extra_execution_platforms=//bazel/rbe:gce_linux_platform
|
|
|
|
# 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
|