| # 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/gcc_toolchain.gni") | |
| import("//build/toolchain/goma.gni") | |
| declare_args() { | |
| toolchain_prefix = "" | |
| # TODO(zra): Add an argument for overriding the host toolchain. | |
| } | |
| 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 = "" | |
| } | |
| if (host_cpu == "arm64") { | |
| rebased_clang_dir = | |
| rebase_path("//buildtools/linux-arm64/clang/bin", root_build_dir) | |
| } else { | |
| rebased_clang_dir = | |
| rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) | |
| } | |
| 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" | |
| strip = "${prefix}strip" | |
| toolchain_cpu = "arm" | |
| toolchain_os = "linux" | |
| is_clang = false | |
| } | |
| gcc_toolchain("clang_arm") { | |
| prefix = rebased_clang_dir | |
| cc = "${compiler_prefix}${prefix}/clang" | |
| cxx = "${compiler_prefix}${prefix}/clang++" | |
| readelf = "${prefix}/llvm-readelf" | |
| nm = "${prefix}/llvm-nm" | |
| ar = "${prefix}/llvm-ar" | |
| ld = cxx | |
| llvm_objcopy = "${prefix}/llvm-objcopy" | |
| toolchain_cpu = "arm" | |
| toolchain_os = "linux" | |
| is_clang = true | |
| } | |
| 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" | |
| strip = "${prefix}strip" | |
| toolchain_cpu = "arm64" | |
| toolchain_os = "linux" | |
| is_clang = false | |
| } | |
| gcc_toolchain("clang_arm64") { | |
| prefix = rebased_clang_dir | |
| cc = "${compiler_prefix}${prefix}/clang" | |
| cxx = "${compiler_prefix}${prefix}/clang++" | |
| readelf = "readelf" | |
| nm = "${prefix}/llvm-nm" | |
| ar = "${prefix}/llvm-ar" | |
| ld = cxx | |
| llvm_objcopy = "${prefix}/llvm-objcopy" | |
| toolchain_cpu = "arm64" | |
| toolchain_os = "linux" | |
| is_clang = true | |
| } | |
| gcc_toolchain("clang_x86") { | |
| prefix = rebased_clang_dir | |
| cc = "${compiler_prefix}${prefix}/clang" | |
| cxx = "${compiler_prefix}${prefix}/clang++" | |
| readelf = "${prefix}/llvm-readelf" | |
| nm = "${prefix}/llvm-nm" | |
| ar = "${prefix}/llvm-ar" | |
| ld = cxx | |
| llvm_objcopy = "${prefix}/llvm-objcopy" | |
| toolchain_cpu = "x86" | |
| toolchain_os = "linux" | |
| is_clang = true | |
| } | |
| gcc_toolchain("x86") { | |
| prefix = "" | |
| cc = "${compiler_prefix}${prefix}gcc" | |
| cxx = "${compiler_prefix}${prefix}g++" | |
| readelf = "${prefix}readelf" | |
| nm = "${prefix}nm" | |
| ar = "${prefix}ar" | |
| ld = cxx | |
| strip = "${prefix}strip" | |
| toolchain_cpu = "x86" | |
| toolchain_os = "linux" | |
| is_clang = false | |
| } | |
| gcc_toolchain("clang_x64") { | |
| prefix = rebased_clang_dir | |
| cc = "${compiler_prefix}${prefix}/clang" | |
| cxx = "${compiler_prefix}${prefix}/clang++" | |
| readelf = "${prefix}/llvm-readelf" | |
| nm = "${prefix}/llvm-nm" | |
| ar = "${prefix}/llvm-ar" | |
| ld = cxx | |
| llvm_objcopy = "${prefix}/llvm-objcopy" | |
| toolchain_cpu = "x64" | |
| toolchain_os = "linux" | |
| is_clang = true | |
| } | |
| gcc_toolchain("x64") { | |
| prefix = "" | |
| cc = "${compiler_prefix}${prefix}gcc" | |
| cxx = "${compiler_prefix}${prefix}g++" | |
| readelf = "${prefix}readelf" | |
| nm = "${prefix}nm" | |
| ar = "${prefix}ar" | |
| ld = cxx | |
| strip = "${prefix}strip" | |
| toolchain_cpu = "x64" | |
| toolchain_os = "linux" | |
| is_clang = false | |
| } | |
| gcc_toolchain("riscv32") { | |
| prefix = "riscv32-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" | |
| strip = "${prefix}strip" | |
| toolchain_cpu = "riscv32" | |
| toolchain_os = "linux" | |
| is_clang = false | |
| } | |
| gcc_toolchain("clang_riscv32") { | |
| prefix = rebased_clang_dir | |
| cc = "${compiler_prefix}${prefix}/clang" | |
| cxx = "${compiler_prefix}${prefix}/clang++" | |
| readelf = "readelf" | |
| nm = "${prefix}/llvm-nm" | |
| ar = "${prefix}/llvm-ar" | |
| ld = cxx | |
| llvm_objcopy = "${prefix}/llvm-objcopy" | |
| toolchain_cpu = "riscv32" | |
| toolchain_os = "linux" | |
| is_clang = true | |
| } | |
| gcc_toolchain("riscv64") { | |
| prefix = "riscv64-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" | |
| strip = "${prefix}strip" | |
| toolchain_cpu = "riscv64" | |
| toolchain_os = "linux" | |
| is_clang = false | |
| } | |
| gcc_toolchain("clang_riscv64") { | |
| prefix = rebased_clang_dir | |
| cc = "${compiler_prefix}${prefix}/clang" | |
| cxx = "${compiler_prefix}${prefix}/clang++" | |
| readelf = "readelf" | |
| nm = "${prefix}/llvm-nm" | |
| ar = "${prefix}/llvm-ar" | |
| ld = cxx | |
| llvm_objcopy = "${prefix}/llvm-objcopy" | |
| toolchain_cpu = "riscv64" | |
| toolchain_os = "linux" | |
| is_clang = true | |
| } |