Major clean up build files, use flags-per-feature.

These days we support an incredible number of build configurations:
- standalone (GN)
- in chromium (GN)
- in v8 (GN)
- in Fuchsia (GN)
- in Android (soong)
- in Google3
- amalgamated SDK


For each config we want to pick only some components of the
codebase. So far we've been carefully using intersections of
platform flags (e.g. build_standalone && !build_with_android)
but that has become unmaintainable.
This CL mainly introduces one flag per feature. Benefit:
1. All feature flags live in one place (perfetto.gni) and are
   easy to reason about.
2. All the GN conditions depend on these feature flags.

Test: manually rolled in chromium and v8 and looked
      at diff of .ninja files.
Bug: 132678367
Bug: 140126865
Change-Id: I36c4653f25751654c04ab257bdb7a0756269a813
diff --git a/gn/perfetto_unittests.gni b/gn/perfetto_unittests.gni
new file mode 100644
index 0000000..e7c5a44
--- /dev/null
+++ b/gn/perfetto_unittests.gni
@@ -0,0 +1,58 @@
+# Copyright (C) 2019 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("perfetto.gni")
+
+perfetto_unittests_targets = [
+  "gn:default_deps",
+  "gn:gtest_main",
+  "src/base:unittests",
+  "src/protozero:unittests",
+  "src/tracing:unittests",
+]
+
+if (enable_perfetto_tools) {
+  perfetto_unittests_targets += [
+    "tools/ftrace_proto_gen:unittests",
+    "tools/sanitizers_unittests",
+  ]
+}
+
+if (enable_perfetto_ipc) {
+  perfetto_unittests_targets += [ "src/ipc:unittests" ]
+}
+
+if (enable_perfetto_platform_services) {
+  perfetto_unittests_targets += [
+    "src/perfetto_cmd:unittests",
+    "src/traced/probes:unittests",
+    "src/traced/probes/filesystem:unittests",
+    "src/traced/probes/ftrace:unittests",
+    "src/traced/service:unittests",
+  ]
+}
+
+if (enable_perfetto_heapprofd) {
+  perfetto_unittests_targets += [
+    "src/profiling/memory:unittests",
+    "src/profiling/memory:ring_buffer_unittests",
+  ]
+}
+
+if (enable_perfetto_trace_processor) {
+  perfetto_unittests_targets += [
+    "src/trace_processor:unittests",
+    "src/trace_processor/metrics:unittests",
+  ]
+}