Move gn goma setup to gcc_toolchain

R=jamesr@chromium.org

Review URL: https://codereview.chromium.org/1373923004 .
diff --git a/build/toolchain/android/BUILD.gn b/build/toolchain/android/BUILD.gn
index f7f47ff..24c9c29 100644
--- a/build/toolchain/android/BUILD.gn
+++ b/build/toolchain/android/BUILD.gn
@@ -3,9 +3,7 @@
 # found in the LICENSE file.
 
 import("//build/config/sysroot.gni")  # Imports android/config.gni.
-import("//build/toolchain/ccache.gni")
 import("//build/toolchain/clang.gni")
-import("//build/toolchain/goma.gni")
 import("//build/toolchain/gcc_toolchain.gni")
 
 # The Android GCC toolchains share most of the same parameters, so we have this
@@ -36,21 +34,12 @@
     # The tools should be run relative to the build dir.
     tool_prefix = rebase_path(invoker.tool_prefix, root_build_dir)
 
-    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 = ""
-    }
-
-    cc = compiler_prefix + tool_prefix + "gcc"
-    cxx = compiler_prefix + tool_prefix + "g++"
+    cc = tool_prefix + "gcc"
+    cxx = tool_prefix + "g++"
     ar = tool_prefix + "ar"
     ld = cxx
-    readelf = compiler_prefix + tool_prefix + "readelf"
-    nm = compiler_prefix + tool_prefix + "nm"
+    readelf = tool_prefix + "readelf"
+    nm = tool_prefix + "nm"
 
     toolchain_os = "android"
     toolchain_cpu = invoker.toolchain_cpu
diff --git a/build/toolchain/cros/BUILD.gn b/build/toolchain/cros/BUILD.gn
index 140958b..9174161 100644
--- a/build/toolchain/cros/BUILD.gn
+++ b/build/toolchain/cros/BUILD.gn
@@ -32,4 +32,6 @@
   toolchain_cpu = "${target_cpu}"
   toolchain_os = "linux"
   is_clang = is_clang
+  use_ccache = false
+  use_goma = false
 }
diff --git a/build/toolchain/fnl/BUILD.gn b/build/toolchain/fnl/BUILD.gn
index 1e4a075..b66c639 100644
--- a/build/toolchain/fnl/BUILD.gn
+++ b/build/toolchain/fnl/BUILD.gn
@@ -21,4 +21,7 @@
   toolchain_cpu = "${target_cpu}"
   toolchain_os = "linux"
   is_clang = is_clang
+  use_ccache = false
+  use_goma = false
+
 }
diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni
index 13cfba1..f2045e1 100644
--- a/build/toolchain/gcc_toolchain.gni
+++ b/build/toolchain/gcc_toolchain.gni
@@ -3,6 +3,8 @@
 # found in the LICENSE file.
 
 import("//build/config/nacl/config.gni")
+import("//build/toolchain/ccache.gni")
+import("//build/toolchain/goma.gni")
 
 # This value will be inherited in the toolchain below.
 concurrent_links = exec_script("get_concurrent_links.py", [], "value")
@@ -58,6 +60,21 @@
     assert(defined(invoker.toolchain_os),
            "gcc_toolchain() must specify a \"toolchain_os\"")
 
+    if (defined(invoker.use_ccache)) {
+      use_ccache = invoker.use_ccache
+    }
+    if (defined(invoker.use_goma)) {
+      use_goma = invoker.use_goma
+    }
+    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 = ""
+    }
+
     # This define changes when the toolchain changes, forcing a rebuild.
     # Nothing should ever use this define.
     if (defined(invoker.rebuild_define)) {
@@ -69,8 +86,8 @@
     # We can't do string interpolation ($ in strings) on things with dots in
     # them. To allow us to use $cc below, for example, we create copies of
     # these values in our scope.
-    cc = invoker.cc
-    cxx = invoker.cxx
+    cc = compiler_prefix + invoker.cc
+    cxx = compiler_prefix + invoker.cxx
     ar = invoker.ar
     ld = invoker.ld
     if (defined(invoker.readelf)) {
diff --git a/build/toolchain/linux/BUILD.gn b/build/toolchain/linux/BUILD.gn
index 9145284..51768df 100644
--- a/build/toolchain/linux/BUILD.gn
+++ b/build/toolchain/linux/BUILD.gn
@@ -3,23 +3,12 @@
 # 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")
-
-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") {
-  cc = "${compiler_prefix}arm-linux-gnueabi-gcc"
-  cxx = "${compiler_prefix}arm-linux-gnueabi-g++"
+  cc = "arm-linux-gnueabi-gcc"
+  cxx = "arm-linux-gnueabi-g++"
 
   ar = "arm-linux-gnueabi-ar"
   ld = cxx
@@ -39,8 +28,8 @@
     prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
                          root_build_dir)
   }
-  cc = "${compiler_prefix}$prefix/clang"
-  cxx = "${compiler_prefix}$prefix/clang++"
+  cc = "$prefix/clang"
+  cxx = "$prefix/clang++"
   readelf = "readelf"
   nm = "nm"
   ar = "ar"
@@ -52,8 +41,8 @@
 }
 
 gcc_toolchain("x86") {
-  cc = "${compiler_prefix}gcc"
-  cxx = "${compiler_prefix}g++"
+  cc = "gcc"
+  cxx = "g++"
 
   readelf = "readelf"
   nm = "nm"
@@ -73,8 +62,8 @@
     prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
                          root_build_dir)
   }
-  cc = "${compiler_prefix}$prefix/clang"
-  cxx = "${compiler_prefix}$prefix/clang++"
+  cc = "$prefix/clang"
+  cxx = "$prefix/clang++"
 
   readelf = "readelf"
   nm = "nm"
@@ -87,8 +76,8 @@
 }
 
 gcc_toolchain("x64") {
-  cc = "${compiler_prefix}gcc"
-  cxx = "${compiler_prefix}g++"
+  cc = "gcc"
+  cxx = "g++"
 
   readelf = "readelf"
   nm = "nm"
@@ -111,4 +100,6 @@
   toolchain_cpu = "mipsel"
   toolchain_os = "linux"
   is_clang = false
+  use_ccache = false
+  use_goma = false
 }