GN: fix cross-compilation support

Refactor and clean up the cc/target_cc logic.
The intended semantic is:
ar/cc/cxx:
  In non-cross builds define the compiler for everything
  In cross builds define the host compiler.

target_ar/target_cc/target_cxx:
  In non-cross builds: are ignored
  In cross builds define the target compiler.A

Also adds supports for GCC cross toolchains.

Bug: 141319350
Change-Id: Ia2aed634b7aa19518c8762039f1f4d67cc5758c0
diff --git a/BUILD.gn b/BUILD.gn
index 0ba5807..831a546 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -107,8 +107,8 @@
     "protos/perfetto/trace:merged_trace",  # For syntax-checking the proto.
 
     # The diff testing framework depends on these descriptors.
-    "protos/perfetto/metrics:descriptor",
-    "protos/perfetto/trace:descriptor",
+    "protos/perfetto/metrics:descriptor($host_toolchain)",
+    "protos/perfetto/trace:descriptor($host_toolchain)",
 
     # Used in the when updating the ftrace protos
     "protos/perfetto/trace/ftrace:descriptor",