1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2015 The Chromium Authors 2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file. 4*8975f5c5SAndroid Build Coastguard Worker 5*8975f5c5SAndroid Build Coastguard Workerdeclare_args() { 6*8975f5c5SAndroid Build Coastguard Worker # Native Client supports multiple toolchains: 7*8975f5c5SAndroid Build Coastguard Worker # - nacl_glibc, based on gcc and glibc. 8*8975f5c5SAndroid Build Coastguard Worker # - pnacl_newlib, based on llvm 3.7 and newlib (default). 9*8975f5c5SAndroid Build Coastguard Worker # - saigo_newlib, based on llvm 12+ and newlib. 10*8975f5c5SAndroid Build Coastguard Worker 11*8975f5c5SAndroid Build Coastguard Worker # True if nacl_glibc is used. 12*8975f5c5SAndroid Build Coastguard Worker is_nacl_glibc = false 13*8975f5c5SAndroid Build Coastguard Worker 14*8975f5c5SAndroid Build Coastguard Worker # True if saigo_newlib is used. 15*8975f5c5SAndroid Build Coastguard Worker is_nacl_saigo = false 16*8975f5c5SAndroid Build Coastguard Worker} 17*8975f5c5SAndroid Build Coastguard Worker 18*8975f5c5SAndroid Build Coastguard Workernacl_toolchain_dir = "//native_client/toolchain/${host_os}_x86" 19*8975f5c5SAndroid Build Coastguard Worker 20*8975f5c5SAndroid Build Coastguard Workerif (is_nacl_glibc) { 21*8975f5c5SAndroid Build Coastguard Worker if (current_cpu == "x86" || current_cpu == "x64") { 22*8975f5c5SAndroid Build Coastguard Worker nacl_toolchain_package = "nacl_x86_glibc" 23*8975f5c5SAndroid Build Coastguard Worker } else if (current_cpu == "arm") { 24*8975f5c5SAndroid Build Coastguard Worker nacl_toolchain_package = "nacl_arm_glibc" 25*8975f5c5SAndroid Build Coastguard Worker } 26*8975f5c5SAndroid Build Coastguard Worker} else { 27*8975f5c5SAndroid Build Coastguard Worker nacl_toolchain_package = "pnacl_newlib" 28*8975f5c5SAndroid Build Coastguard Worker} 29*8975f5c5SAndroid Build Coastguard Worker 30*8975f5c5SAndroid Build Coastguard Workerif (current_cpu == "pnacl") { 31*8975f5c5SAndroid Build Coastguard Worker _nacl_tuple = "pnacl" 32*8975f5c5SAndroid Build Coastguard Worker} else if (current_cpu == "x86" || current_cpu == "x64") { 33*8975f5c5SAndroid Build Coastguard Worker _nacl_tuple = "x86_64-nacl" 34*8975f5c5SAndroid Build Coastguard Worker} else if (current_cpu == "arm") { 35*8975f5c5SAndroid Build Coastguard Worker _nacl_tuple = "arm-nacl" 36*8975f5c5SAndroid Build Coastguard Worker} else if (current_cpu == "mipsel") { 37*8975f5c5SAndroid Build Coastguard Worker _nacl_tuple = "mipsel-nacl" 38*8975f5c5SAndroid Build Coastguard Worker} else { 39*8975f5c5SAndroid Build Coastguard Worker # In order to allow this file to be included unconditionally 40*8975f5c5SAndroid Build Coastguard Worker # from build files that can't depend on //components/nacl/features.gni 41*8975f5c5SAndroid Build Coastguard Worker # we provide a dummy value that should be harmless if nacl isn't needed. 42*8975f5c5SAndroid Build Coastguard Worker # If nacl *is* needed this will result in a real error, indicating that 43*8975f5c5SAndroid Build Coastguard Worker # people need to set the toolchain path correctly. 44*8975f5c5SAndroid Build Coastguard Worker _nacl_tuple = "unknown" 45*8975f5c5SAndroid Build Coastguard Worker} 46*8975f5c5SAndroid Build Coastguard Worker 47*8975f5c5SAndroid Build Coastguard Workernacl_toolchain_bindir = "${nacl_toolchain_dir}/${nacl_toolchain_package}/bin" 48*8975f5c5SAndroid Build Coastguard Workernacl_toolchain_tooldir = 49*8975f5c5SAndroid Build Coastguard Worker "${nacl_toolchain_dir}/${nacl_toolchain_package}/${_nacl_tuple}" 50*8975f5c5SAndroid Build Coastguard Workernacl_toolprefix = "${nacl_toolchain_bindir}/${_nacl_tuple}-" 51*8975f5c5SAndroid Build Coastguard Worker 52*8975f5c5SAndroid Build Coastguard Workernacl_irt_toolchain = "//build/toolchain/nacl:irt_" + current_cpu 53*8975f5c5SAndroid Build Coastguard Workeris_nacl_irt = current_toolchain == nacl_irt_toolchain 54