dart-sdk/build/toolchain/linux/BUILD.gn
Zachary Anderson cc968ca45b [infra] Roll clang to match the version used by Flutter
Flutter uses the same clang toolchain as Fuchsia. This CL puts Dart
on that toolchain, as well. This roll should entail no changes to
glibc version requirements on Linux.

The Fuchsia buildtools distribute clang-format with the toolchain
rather than separately, so this CL introduces forwarding scripts
that are copied to the right place under //buildtools.

This CL sets the default for the number of workers in //tools/gn.py
to 1, as the newer GN version fails occasionally when run
concurrently with other invocations.

As Flutter does, this CL uses the clang toolchain to build for
Android. Thus, it is now possible to build for Android on MacOS.

This change is a prerequisite for assembling the SDK in GN
rather than with a python script:

https://codereview.chromium.org/2848943003/

and will be nicer for making prebuilt SDKs for Fuchsia.

R=whesse@google.com

Review-Url: https://codereview.chromium.org/2854583002 .
2017-05-03 14:50:59 -07:00

133 lines
2.8 KiB
Plaintext

# Copyright 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.
import("//build/config/sysroot.gni")
import("//build/toolchain/ccache.gni")
import("//build/toolchain/clang.gni")
import("//build/toolchain/gcc_toolchain.gni")
import("//build/toolchain/goma.gni")
declare_args() {
toolchain_prefix = ""
}
if (use_goma) {
assert(!use_ccache, "Goma and ccache can't be used together.")
compiler_prefix = "$goma_dir/gomacc "
} else if (use_ccache) {
compiler_prefix = "ccache "
} else {
compiler_prefix = ""
}
gcc_toolchain("arm") {
prefix = "arm-linux-gnueabihf-"
if (toolchain_prefix != "") {
prefix = toolchain_prefix
}
cc = "${compiler_prefix}${prefix}gcc"
cxx = "${compiler_prefix}${prefix}g++"
ar = "${prefix}ar"
ld = cxx
readelf = "${prefix}readelf"
nm = "${prefix}nm"
toolchain_cpu = "arm"
toolchain_os = "linux"
is_clang = false
}
gcc_toolchain("arm64") {
prefix = "aarch64-linux-gnu-"
if (toolchain_prefix != "") {
prefix = toolchain_prefix
}
cc = "${compiler_prefix}${prefix}gcc"
cxx = "${compiler_prefix}${prefix}g++"
ar = "${prefix}ar"
ld = cxx
readelf = "${prefix}readelf"
nm = "${prefix}nm"
toolchain_cpu = "arm64"
toolchain_os = "linux"
is_clang = false
}
gcc_toolchain("clang_x86") {
prefix = rebase_path("//buildtools/toolchain/clang+llvm-x86_64-linux/bin",
root_build_dir)
cc = "${compiler_prefix}$prefix/clang"
cxx = "${compiler_prefix}$prefix/clang++"
readelf = "readelf"
nm = "nm"
ar = "ar"
ld = cxx
toolchain_cpu = "x86"
toolchain_os = "linux"
is_clang = true
}
gcc_toolchain("x86") {
cc = "${compiler_prefix}gcc"
cxx = "${compiler_prefix}g++"
readelf = "readelf"
nm = "nm"
ar = "ar"
ld = cxx
toolchain_cpu = "x86"
toolchain_os = "linux"
is_clang = false
}
gcc_toolchain("clang_x64") {
prefix = rebase_path("//buildtools/toolchain/clang+llvm-x86_64-linux/bin",
root_build_dir)
cc = "${compiler_prefix}$prefix/clang"
cxx = "${compiler_prefix}$prefix/clang++"
readelf = "readelf"
nm = "nm"
ar = "ar"
ld = cxx
toolchain_cpu = "x64"
toolchain_os = "linux"
is_clang = true
}
gcc_toolchain("x64") {
cc = "${compiler_prefix}gcc"
cxx = "${compiler_prefix}g++"
readelf = "readelf"
nm = "nm"
ar = "ar"
ld = cxx
toolchain_cpu = "x64"
toolchain_os = "linux"
is_clang = false
}
gcc_toolchain("mipsel") {
cc = "${compiler_prefix}${toolchain_prefix}gcc"
cxx = "${compiler_prefix}${toolchain_prefix}g++"
ar = "${toolchain_prefix}ar"
ld = cxx
readelf = "${toolchain_prefix}readelf"
nm = "${toolchain_prefix}nm"
toolchain_cpu = "${target_cpu}"
toolchain_os = "linux"
is_clang = is_clang
}