dart-sdk/build/config/sysroot.gni
Ryan Macnak bd5df6da60 [build] Enable building riscv64 with clang.
Change-Id: Ie09d92a4e23484b7c6d2963bb0d327e443a68e46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/338641
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2023-11-30 18:09:49 +00:00

64 lines
2.4 KiB
Plaintext

# 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 = ""
# The type of sysroot to be used. Empty string means no sysroot.
# Supported sysroots: ["alpine","debian"]
dart_sysroot = ""
}
if (is_linux) {
if (dart_sysroot == "alpine") {
if (current_cpu == "x86") {
target_sysroot =
rebase_path("//build/linux/alpine-linux-x86-sysroot", root_build_dir)
} else if (current_cpu == "x64") {
target_sysroot = rebase_path("//build/linux/alpine-linux-x86_64-sysroot",
root_build_dir)
} else if (current_cpu == "arm") {
target_sysroot = rebase_path("//build/linux/alpine-linux-armv7-sysroot",
root_build_dir)
} else if (current_cpu == "arm64") {
target_sysroot = rebase_path("//build/linux/alpine-linux-aarch64-sysroot",
root_build_dir)
} else if (current_cpu == "riscv64") {
target_sysroot = rebase_path("//build/linux/alpine-linux-riscv64-sysroot",
root_build_dir)
} else {
print("There is no $dart_sysroot sysroot present for $current_cpu")
assert(false)
}
} else if (dart_sysroot == "debian") {
if (current_cpu == "riscv64") {
target_sysroot = rebase_path("//buildtools/sysroot/focal", root_build_dir)
} else {
# Updating to focal would increase the required libc from 2.17 to 2.28.
target_sysroot = rebase_path("//buildtools/sysroot/linux", root_build_dir)
}
} else if (dart_sysroot != "") {
print("There is no $dart_sysroot sysroot support")
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_toolchain_root/sysroot", root_build_dir)
} else if (is_mac) {
import("//build/config/mac/mac_sdk.gni")
sysroot = mac_sdk_path
} else {
sysroot = ""
}