gn build: Create a variable for the host toolchain and start using it in the tblgen template.

Differential Revision: https://reviews.llvm.org/D56575

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350964 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/gn/build/BUILDCONFIG.gn b/utils/gn/build/BUILDCONFIG.gn
index 5ff504d..1e5af9a 100644
--- a/utils/gn/build/BUILDCONFIG.gn
+++ b/utils/gn/build/BUILDCONFIG.gn
@@ -26,7 +26,9 @@
 }
 
 if (host_os == "win") {
-  set_default_toolchain("//llvm/utils/gn/build/toolchain:win")
+  host_toolchain = "//llvm/utils/gn/build/toolchain:win"
 } else {
-  set_default_toolchain("//llvm/utils/gn/build/toolchain:unix")
+  host_toolchain = "//llvm/utils/gn/build/toolchain:unix"
 }
+
+set_default_toolchain(host_toolchain)
diff --git a/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni b/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni
index 20706cc..efc1e3c 100644
--- a/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni
+++ b/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni
@@ -35,7 +35,6 @@
                              "visibility",
                            ])
 
-    # FIXME: In cross builds, this should depend on the host binary.
     tblgen_target = "//clang/utils/TableGen:clang-tblgen"
   }
 }
diff --git a/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni b/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni
index d98ed6b..5037832 100644
--- a/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni
+++ b/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni
@@ -39,9 +39,9 @@
     if (defined(invoker.tblgen_target)) {
       tblgen_target = invoker.tblgen_target
     } else {
-      # FIXME: In cross builds, this should depend on the host binary.
       tblgen_target = "//llvm/utils/TableGen:llvm-tblgen"
     }
+    tblgen_target += "($host_toolchain)"
     tblgen_executable = get_label_info(tblgen_target, "root_out_dir") +
                         "/bin/" + get_label_info(tblgen_target, "name")
     deps = [