# Copyright 2013 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/dcheck_always_on.gni") import("//build/config/ozone.gni") import("//build/config/sysroot.gni") import("//build/config/ui.gni") import("//build/toolchain/gcc_toolchain.gni") clang_toolchain("clang_ppc64") { enable_linker_map = true toolchain_args = { current_cpu = "ppc64" current_os = "linux" } } clang_toolchain("clang_arm") { toolchain_args = { current_cpu = "arm" current_os = "linux" } } clang_toolchain("clang_arm64") { toolchain_args = { current_cpu = "arm64" current_os = "linux" } } gcc_toolchain("arm64") { toolprefix = "aarch64-linux-gnu-" cc = "${toolprefix}gcc" cxx = "${toolprefix}g++" ar = "${toolprefix}ar" ld = cxx readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" toolchain_args = { current_cpu = "arm64" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } gcc_toolchain("arm") { toolprefix = "arm-linux-gnueabihf-" cc = "${toolprefix}gcc" cxx = "${toolprefix}g++" ar = "${toolprefix}ar" ld = cxx readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" toolchain_args = { current_cpu = "arm" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } clang_toolchain("clang_x86") { # Output linker map files for binary size analysis. enable_linker_map = true toolchain_args = { current_cpu = "x86" current_os = "linux" } } gcc_toolchain("x86") { cc = "gcc" cxx = "g++" readelf = "readelf" nm = "nm" ar = "ar" ld = cxx # Output linker map files for binary size analysis. enable_linker_map = true toolchain_args = { current_cpu = "x86" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } clang_toolchain("clang_x64") { # Output linker map files for binary size analysis. enable_linker_map = true toolchain_args = { current_cpu = "x64" current_os = "linux" } } template("clang_v8_toolchain") { clang_toolchain(target_name) { toolchain_args = { current_os = "linux" forward_variables_from(invoker.toolchain_args, "*") } } } clang_v8_toolchain("clang_x86_v8_arm") { toolchain_args = { current_cpu = "x86" v8_current_cpu = "arm" } } clang_v8_toolchain("clang_x86_v8_mipsel") { toolchain_args = { current_cpu = "x86" v8_current_cpu = "mipsel" } } clang_v8_toolchain("clang_x86_v8_mips") { toolchain_args = { current_cpu = "x86" v8_current_cpu = "mips" } } clang_v8_toolchain("clang_x64_v8_arm64") { toolchain_args = { current_cpu = "x64" v8_current_cpu = "arm64" } } clang_v8_toolchain("clang_x64_v8_mips64el") { toolchain_args = { current_cpu = "x64" v8_current_cpu = "mips64el" } } clang_v8_toolchain("clang_x64_v8_mips64") { toolchain_args = { current_cpu = "x64" v8_current_cpu = "mips64" } } clang_v8_toolchain("clang_x64_v8_riscv64") { toolchain_args = { current_cpu = "x64" v8_current_cpu = "riscv64" } } clang_v8_toolchain("clang_x64_v8_loong64") { toolchain_args = { current_cpu = "x64" v8_current_cpu = "loong64" } } # In a LaCrOS build, this toolchain is intended to be used as an alternate # toolchain to build Ash-Chrome in a subdirectory. # This is a test-only toolchain. clang_toolchain("ash_clang_x64") { toolchain_args = { # This turns the toolchain into the "Linux ChromeOS" build current_os = "chromeos" target_os = "chromeos" current_cpu = current_cpu # This turns off all of the LaCrOS-specific flags. also_build_ash_chrome = false chromeos_is_browser_only = false use_clang_coverage = false # Never build ash with asan. It is too slow for builders and cause # tests being flaky. is_asan = false is_lsan = false } } # In an ash build, this toolchain is intended to be used as an alternate # toolchain to build lacros-Chrome in a subdirectory. # This is a test-only toolchain. clang_toolchain("lacros_clang_x64") { toolchain_args = { # This turns the toolchain into the "Lacros" build current_os = "chromeos" target_os = "chromeos" current_cpu = current_cpu # This turns on the LaCrOS-specific flag. also_build_lacros_chrome = false chromeos_is_browser_only = true use_clang_coverage = false } } gcc_toolchain("x64") { cc = "gcc" cxx = "g++" readelf = "readelf" nm = "nm" ar = "ar" ld = cxx # Output linker map files for binary size analysis. enable_linker_map = true toolchain_args = { current_cpu = "x64" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } clang_toolchain("clang_mipsel") { toolchain_args = { current_cpu = "mipsel" current_os = "linux" } } clang_toolchain("clang_mips64el") { toolchain_args = { current_cpu = "mips64el" current_os = "linux" } } gcc_toolchain("mipsel") { toolprefix = "mipsel-linux-gnu-" cc = "${toolprefix}gcc" cxx = " ${toolprefix}g++" ar = "${toolprefix}ar" ld = cxx readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" toolchain_args = { cc_wrapper = "" current_cpu = "mipsel" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } gcc_toolchain("mips64el") { toolprefix = "mips64el-linux-gnuabi64-" cc = "${toolprefix}gcc" cxx = "${toolprefix}g++" ar = "${toolprefix}ar" ld = cxx readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" toolchain_args = { cc_wrapper = "" current_cpu = "mips64el" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } clang_toolchain("clang_riscv64") { enable_linker_map = true toolchain_args = { current_cpu = "riscv64" current_os = "linux" is_clang = true } } gcc_toolchain("riscv64") { toolprefix = "riscv64-linux-gnu" cc = "${toolprefix}-gcc" cxx = "${toolprefix}-g++" readelf = "${toolprefix}-readelf" nm = "${toolprefix}-nm" ar = "${toolprefix}-ar" ld = cxx toolchain_args = { current_cpu = "riscv64" current_os = "linux" is_clang = false } } clang_toolchain("clang_s390x") { toolchain_args = { current_cpu = "s390x" current_os = "linux" is_clang = true } } gcc_toolchain("s390x") { cc = "gcc" cxx = "g++" readelf = "readelf" nm = "nm" ar = "ar" ld = cxx toolchain_args = { current_cpu = "s390x" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } gcc_toolchain("ppc64") { cc = "gcc" cxx = "g++" readelf = "readelf" nm = "nm" ar = "ar" ld = cxx toolchain_args = { current_cpu = "ppc64" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } gcc_toolchain("mips") { toolprefix = "mips-linux-gnu-" cc = "${toolprefix}gcc" cxx = "${toolprefix}g++" readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" ar = "${toolprefix}ar" ld = cxx toolchain_args = { current_cpu = "mips" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } gcc_toolchain("mips64") { toolprefix = "mips64-linux-gnuabi64-" cc = "${toolprefix}gcc" cxx = "${toolprefix}g++" readelf = "${toolprefix}readelf" nm = "${toolprefix}nm" ar = "${toolprefix}ar" ld = cxx toolchain_args = { current_cpu = "mips64" current_os = "linux" # remote execution does not support gcc. use_remoteexec = false is_clang = false } } clang_toolchain("clang_loong64") { toolchain_args = { current_cpu = "loong64" current_os = "linux" } } gcc_toolchain("loong64") { toolprefix = "loongarch64-unknown-linux-gnu" cc = "${toolprefix}-gcc" cxx = "${toolprefix}-g++" readelf = "${toolprefix}-readelf" nm = "${toolprefix}-nm" ar = "${toolprefix}-ar" ld = cxx toolchain_args = { current_cpu = "loong64" current_os = "linux" is_clang = false } }