dart-sdk/build/config/sysroot.gni
Alexander Thomas 5f8c21f9e9 [build] Use a sysroot also for the host toolchain when cross compiling
Previously, we didn't use a sysroot for the host toolchain used to
create the host_tool used in dart_actions. The compile action then
failed on the new goma backend causing long build times.

Before (dart-sdk-linux-try/429, ~38 mins):
finished=10627 cache_hit=7334 retry=3277 fail=3277

After (dart-sdk-linux-try/430, ~12 mins):
finished=10625 cache_hit=7352 retry=0 fail=0

Change-Id: Iebf967be6eb67c3056f766839a3d58d18fc608f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150421
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Auto-Submit: Alexander Thomas <athom@google.com>
2020-06-08 16:50:21 +00:00

47 lines
1.6 KiB
Text

# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This header file defines the "sysroot" variable which is the absolute path
# of the sysroot. If no sysroot applies, the variable will be an empty string.
declare_args() {
# The absolute path of the sysroot that is applied when compiling using
# the target toolchain.
target_sysroot = ""
# Whether the Debian sysroot should be used.
dart_use_debian_sysroot = false
}
if (is_linux && dart_use_debian_sysroot) {
if (current_cpu == "x86") {
target_sysroot =
rebase_path("//build/linux/debian_jessie_i386-sysroot", root_build_dir)
} else if (current_cpu == "x64") {
target_sysroot =
rebase_path("//build/linux/debian_jessie_amd64-sysroot", root_build_dir)
} else if (current_cpu == "arm") {
target_sysroot =
rebase_path("//build/linux/debian_jessie_arm-sysroot", root_build_dir)
} else if (current_cpu == "arm64") {
target_sysroot =
rebase_path("//build/linux/debian_jessie_arm64-sysroot", root_build_dir)
} else {
print("There is no Debian sysroot present for $current_cpu")
assert(false)
}
}
if ((current_toolchain == host_toolchain ||
current_toolchain == default_toolchain) && target_sysroot != "") {
sysroot = target_sysroot
} else if (is_android) {
import("//build/config/android/config.gni")
sysroot = rebase_path("$android_ndk_root/sysroot")
} else if (is_mac) {
import("//build/config/mac/mac_sdk.gni")
sysroot = mac_sdk_path
} else {
sysroot = ""
}