Revert of add gn_all, gyp_all targets to build files, remove GN's //:root (patchset #18 id:350001 of https://codereview.chromium.org/936193004/)

Reason for revert:
Suspecting this breaks Mac builds.
http://build.chromium.org/p/chromium/builders/Mac/builds/33993

Original issue's description:
> add gn_all, gyp_all targets to the build files, remove GN's //:root
>
> In order to be able to make sure we are building the same list of targets
> in both the GYP and GN builds, this patch adds new 'gn_all' and 'gyp_all'
> targets.
>
> Eventually, we should make sure that if one builds 'gn_all', then building
> 'gyp_all', 'All', or 'all' then has nothing to do. We're not there yet, but this
> is a start.
>
> The 'gn_all' target replaces the //:root target in the GN builds.
>
> [email protected]
> BUG=461019
> CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:android_chromium_gn_compile_dbg,android_chromium_gn_compile_rel;tryserver.chromium.win:win8_chromium_gn_rel,win8_chromium_gn_dbg;tryserver.chromium.mac:mac_chromium_gn_rel,mac_chromium_gn_dbg
>
> Committed: https://crrev.com/ff30e3de333305ccdaa103aa7f9e46765da83e99
> Cr-Commit-Position: refs/heads/master@{#317760}

[email protected],[email protected]
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=461019

Review URL: https://codereview.chromium.org/944573003

Cr-Commit-Position: refs/heads/master@{#317763}
diff --git a/BUILD.gn b/BUILD.gn
index e8c3c75..124e0ff9 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -10,7 +10,6 @@
 
 import("//build/config/features.gni")
 import("//build/config/ui.gni")
-
 if (is_android) {
   import("//build/config/android/config.gni")
 }
@@ -22,119 +21,127 @@
   root_extra_deps = []
 }
 
-group("gyp_all") {
-  testonly = true
-
-  # TODO(GYP): This target should describe everything that is built by a GYP
-  # build but not yet by a GN build, i.e., these are the targets that still
-  # need to be ported to GN. Eventually this target should be identical to
-  # gn_all.
-
-  deps = [
-    ":gn_all",
-    # "//chrome/test:chromedriver_unittests", # TODO(GYP)
-    # "//components:components_browsertests", # TODO(GYP)
-    # "//components/nacl:nacl_loader_unittests", # TODO(GYP)
-    # "//google_apis:google_apis_unittests", # TODO(GYP)
-    # "//ui/compositor:compositor_unittests", # TODO(GYP)
-    # "//device:device_unittests", # TODO(GYP)
-    # "//ppapi:ppapi_unittests", # TODO(GYP)
-    # "//remoting:remoting_unittests",  # TODO(GYP)
-  ]
-}
-
-# The "gn_all" target matches the "gn_all" target in build/all.gyp.
-# It is not (yet!) the same as building "all".
-# TODO(GYP): Make it be basically the same as building all, or at least
-# be sure that we don't want any of the stuff listed in gn_all to
-# be built by default.
-
 # In GN, a "group" is a dummy target that just lists other targets.
-group("gn_all") {
+group("root") {
+  # This should not be linked into production and depends on test targets.
   testonly = true
 
+  # Note that some dependencies are commented out. These are things that are
+  # currently written but not hooked up to the build yet. They may need to be
+  # completed or possibly just tested and then re-enabled.
   deps = [
-    "//base:base_unittests",
-    "//cc:cc_unittests",
-    "//chrome",
-    "//chrome/test:browser_tests",
-    "//chrome/test:interactive_ui_tests",
-    "//chrome/test:sync_integration_tests",
-    "//chrome/test:unit_tests",
-    "//components:components_unittests",
+    "//apps",
+    "//ash",
+    "//cc",
+    "//cc/blink",
+    "//chrome/browser",
+    "//chrome/browser/devtools",
+    "//chrome/common",
+    "//chrome/plugin",
+    "//chrome/renderer",
+    "//chrome/test",
+    "//chrome/tools",
+    "//chrome/utility",
+    "//components:all_components",
+    "//content",
     "//content/shell:content_shell",
-    "//content/test:content_browsertests",
-    "//content/test:content_perftests",
-    "//content/test:content_unittests",
-    "//crypto:crypto_unittests",
-    "//extensions:extensions_browsertests",
-    "//extensions:extensions_unittests",
-    "//google_apis/gcm:gcm_unit_tests",
-    "//gpu:gpu_unittests",
-    "//ipc:ipc_tests",
-    "//ipc/mojo:ipc_mojo_unittests",
-    "//jingle:jingle_unittests",
-    "//media:media_unittests",
-    "//media/mojo",  # only builds in mojo
-    "//media/cast:cast_unittests",
+    "//content/test:test_support",
+    "//crypto",
+    "//device/battery",
+    "//device/bluetooth",
+    "//device/nfc",
+    "//device/vibration",
+    "//extensions/browser",
+    "//extensions/common",
+    "//extensions/common/api",
+    "//extensions/renderer",
+    "//gin",
+    "//gpu",
+    "//google_apis",
+    "//google_apis/gcm",
+    "//ipc",
+    "//ipc/mojo",
+    "//jingle:notifier",
+    "//media",
+    "//media/blink",
+    "//media/cast",
+    "//media/mojo",
     "//mojo",
-    "//mojo/common:mojo_common_unittests",
-
-    # "//mojo/services/html_viewer:tests",  # TODO(GYP): Do we need this?
-    "//net:net_unittests",
-    "//ppapi/examples",  # TODO(GYP): What's the GYP equivalent?
-    "//printing:printing_unittests",
-    "//skia:skia_unittests",
-    "//sql:sql_unittests",
-    "//sync:sync_unit_tests",
-
-    # TODO(GYP): the Blink test targets should be public, but
-    # currently aren't. all_blink pulls them in, though.
-    # "//third_party/WebKit/Source/platform:heap_unittests",
-    # "//third_party/WebKit/Source/platform:platform_unittests",
-    # "//third_party/WebKit/Source/wtf:wtf_unittests",
+    "//net",
+    "//pdf",
+    "//ppapi/examples",
+    "//printing",
+    "//remoting/client/plugin",
+    "//sandbox",
+    "//sdch",
+    "//skia",
+    "//storage/browser",
+    "//sql",
+    "//sync",
     "//third_party/WebKit/public:all_blink",
-    "//third_party/cacheinvalidation:cacheinvalidation_unittests",
-
-    # TODO(GYP): This is needed only w/ cld_version==1. What configs set that?
+    "//third_party/angle:translator",
+    "//third_party/brotli",
+    "//third_party/cacheinvalidation",
     "//third_party/cld",
+    "//third_party/cld_2",
     "//third_party/codesighs",
-
-    # TODO(GYP): This is needed only w/ use_system_fontconfig==0.
-    # What configs set that?
-    # "//third_party/fontconfig",
-
-    # TODO(GYP): This will be pulled in automatically when enable_webrtc==true.
-    # For now pull it in manually so that it doesn't regress.
+    "//third_party/ffmpeg",
+    "//third_party/flac",
+    "//third_party/harfbuzz-ng",
+    "//third_party/hunspell",
+    "//third_party/iccjpeg",
+    "//third_party/icu",
+    "//third_party/leveldatabase",
+    "//third_party/libphonenumber",
+    "//third_party/libjingle",
+    "//third_party/libpng",
     "//third_party/libsrtp",
-    "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",
-    "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",
-    "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",
-    "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",
-    "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",
-    "//third_party/pdfium/samples:pdfium_test",
-
-    # TODO(GYP): Verify that this is no longer needed.
+    "//third_party/libusb",
+    "//third_party/libwebp",
+    "//third_party/libxslt",
+    "//third_party/libvpx",
+    "//third_party/libyuv",
+    "//third_party/lzma_sdk",
+    "//third_party/mesa",
+    "//third_party/opus",
+    "//third_party/ots",
+    "//third_party/protobuf:protobuf_lite",
+    "//third_party/qcms",
+    "//third_party/re2",
+    "//third_party/smhasher:cityhash",
+    "//third_party/smhasher:murmurhash3",
     "//third_party/smhasher:pmurhash",
-
-    # TODO(GYP): This will be pulled in automatically when enable_webrtc==true.
-    # For now pull it in manually so that it doesn't regress.
+    "//third_party/snappy",
+    "//third_party/speex",
     "//third_party/usrsctp",
-    "//tools/imagediff($host_toolchain)",
+    "//third_party/widevine/cdm:version_h",
+    "//third_party/webrtc",
+    "//third_party/zlib",
+    "//third_party:jpeg",
     "//tools/gn",
-    "//tools/gn:gn_unittests",
-    "//tools/telemetry:bitmaptools($host_toolchain)",
-    "//ui/accessibility:accessibility_unittests",
-    "//ui/app_list:app_list_unittests",
-    "//ui/base:ui_base_unittests",
-    "//ui/display:display_unittests",
-    "//ui/events:events_unittests",
-    "//ui/gfx:gfx_unittests",
-    "//ui/touch_selection:ui_touch_selection_unittests",
-    "//ui/views:views_unittests",
-    "//url:url_unittests",
+    "//tools/imagediff($host_toolchain)",
+    "//tools/telemetry:bitmaptools",
+    "//ui/accessibility",
+    "//ui/app_list",
+    "//ui/aura",
+    "//ui/base",
+    "//ui/display",
+    "//ui/events",
+    "//ui/gfx",
+    "//ui/gl",
+    "//ui/keyboard",
+    "//ui/native_theme",
+    "//ui/resources",
+    "//ui/snapshot",
+    "//ui/strings",
+    "//ui/surface",
+    "//ui/touch_selection",
+    "//ui/views",
+    "//ui/views/controls/webview",
+    "//ui/web_dialogs",
+    "//url",
+    "//v8:v8",
   ]
-
   deps += root_extra_deps
 
   # TODO(GYP): Get this working on the mac?
@@ -146,154 +153,166 @@
     deps += [ "//breakpad:symupload" ]
   }
 
+  if (is_linux) {
+    deps += [
+      "//dbus",
+      "//third_party/fontconfig",
+      "//third_party/freetype2",
+    ]
+  }
+
   if (use_x11) {
     deps += [ "//tools/xdisplaycheck" ]
   }
 
   if (use_aura) {
-    deps += [ "//ui/wm:wm_unittests" ]
+    deps += [ "//ui/wm" ]
   }
 
-  if (use_ozone) {
-    deps += [
-      "//ui/ozone",  # TODO(GYP) Needed??
-      "//ui/ozone/demo",  # TODO(GYP) Needed??
-    ]
+  if (is_win) {
+    deps += [ "//ui/metro_viewer" ]
   }
 
   if (is_win || is_mac || is_chromeos) {
     # RLZ works on these platforms.
-    # TODO(GYP): Is this target needed, or pulled in automatically?
     deps += [ "//rlz:rlz_lib" ]
   }
 
+  if (current_cpu == "x86" || current_cpu == "x64") {
+    # YASM is x86/x64 only.
+    deps += [ "//third_party/yasm($host_toolchain)" ]
+  }
+
   if (is_android) {
     deps += [
       "//base/android/linker:chromium_android_linker",
       "//build/android/gyp/test:hello_world",
       "//build/android/rezip",
-      "//chrome/android:chrome_shell_apk",
-      "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
-      "//tools/imagediff($host_toolchain)",
-
-      # TODO(GYP): Remove these when the components_unittests work.
-      "//components/history/core/test:test",
-      "//components/policy:policy_component_test_support",
-      "//components/policy:test_support",
-      "//components/rappor:test_support",
-      "//components/signin/core/browser:test_support",
-      "//components/sync_driver:test_support",
-      "//components/user_manager",
-      "//components/wallpaper",
+      "//third_party/openmax_dl/dl",
       "//content/shell/android:content_shell_apk",
-
-      # TODO(GYP): Are these needed, or will they be pulled in automatically?
+      "//chrome/android:chrome_shell_apk",
+      "//chrome/test:test_support_unit",
+      "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
+      "//ui/android:ui_java",
       "//third_party/android_tools:android_gcm_java",
       "//third_party/android_tools:uiautomator_java",
       "//third_party/android_tools:android_support_v13_java",
       "//third_party/android_tools:android_support_v7_appcompat_java",
       "//third_party/android_tools:android_support_v7_mediarouter_java",
-      "//third_party/mesa",
       "//third_party/mockito:mockito_java",
-      "//third_party/openmax_dl/dl",
-      "//third_party/speex",
-      "//ui/android:ui_java",
-
-      # TODO(GYP): Are these needed?
-      "//chrome/test:test_support_unit",
-      "//third_party/smhasher:murmurhash3",
-      "//ui/message_center:test_support",
-    ]
-    deps -= [
-      "//breakpad:symupload",  # TODO(GYP) ??
-      "//chrome",  # TODO(GYP) ??
-      "//chrome/test:browser_tests",  # TODO(GYP) ??
-      "//chrome/test:interactive_ui_tests",  # TODO(GYP) ??
-      "//chrome/test:sync_integration_tests",  # TODO(GYP) ??
-      "//chrome/test:unit_tests",  # TODO(GYP)
-      "//extensions:extensions_browsertests",
-      "//extensions:extensions_unittests",
-      "//google_apis/gcm:gcm_unit_tests",
-      "//ipc:ipc_tests",  # TODO(GYP) ??
-      "//jingle:jingle_unittests",  # TODO(GYP) ??
-      "//net:net_unittests",
-      "//ppapi/examples",
-      "//third_party/pdfium/samples:pdfium_test",
-      "//tools/gn",
-      "//tools/gn:gn_unittests",
-      "//ui/app_list:app_list_unittests",
-      "//ui/views:views_unittests",
-      "//url:url_unittests",
     ]
 
     if (has_chrome_android_internal) {
-      deps += [ "//clank" ]  # TODO(GYP) ??
+      deps += [ "//clank" ]
     }
-  } else if (is_linux) {
-    deps += [
-      "//dbus:dbus_unittests",
-      "//sandbox/linux:sandbox_linux_unittests",
+
+    # TODO(GYP): Move the targets in the rest of this block that still
+    # need to be made to work in the GN build to the bottom of the file
+    # so that all the remaining work is located in one place in the file.
+    # This block should contain only the targets that aren't actually
+    # needed on Android.
+
+    deps -= [
+      "//apps",  # Needs testing.
+      "//chrome/browser",
+      "//chrome/browser/devtools",
+      "//chrome/common",
+      "//chrome/plugin",
+      "//chrome/renderer",
+      "//chrome/test",
+      "//chrome/tools",
+      "//chrome/utility",
+      "//content/shell:content_shell",
+      "//extensions/browser",
+      "//extensions/common",
+      "//extensions/common/api",
+      "//extensions/renderer",
+      "//pdf",  # Not compiled on Android in GYP yet, either.
+      "//ppapi/examples",
+      "//third_party/libusb",
+      "//ui/keyboard",  # Blocked on content.
+
+      # Seems to not be compiled on Android. Otherwise it will need a config.h.
+      "//third_party/libxslt",
+
+      # Not relevant to Android.
+      "//ash",
+      "//tools/gn",
+      "//ui/aura",
+      "//ui/display",
+      "//ui/views",
+      "//ui/views/controls/webview",
+
+      # Fails on Android for unknown reasons.
+      "//third_party/flac",
+      "//breakpad:symupload",
+
+      # Not tested on Android yet:
+      "//google_apis/gcm",
+      "//remoting/client/plugin",
+      "//storage/browser",
+      "//third_party/cld_2",
+      "//third_party/ffmpeg",
+      "//ui/app_list",
+      "//ui/web_dialogs",
     ]
-  } else if (is_mac) {
+  }
+
+  if (use_ozone) {
+    deps += [
+      "//ui/ozone",
+      "//ui/ozone/demo",
+    ]
+  }
+
+  # Non-mobile builds.
+  if (!is_android && !is_ios) {
+    deps += [
+      "//device/usb",
+      "//device:device_unittests",
+      "//third_party/pdfium/samples",
+    ]
+  }
+
+  #
+  # TODO(GYP): Make everything below this work in the GN build.
+  #
+
+  if (is_mac) {
     deps += [
       "//third_party/apple_sample_code",
       "//third_party/molokocacao",
     ]
 
-    # TODO(GYP): Remove these when the targets below work and these
-    # are pulled in automatically.
-    deps += [
-      "//cc/blink",
-      "//components/ui/zoom:ui_zoom",
-      "//content",
-      "//content/test:test_support",
-      "//device/battery",
-      "//device/bluetooth",
-      "//device/nfc",
-      "//device/usb",
-      "//device/vibration",
-      "//media/blink",
-      "//pdf",
-      "//storage/browser",
-      "//third_party/brotli",
-      "//third_party/flac",
-      "//third_party/hunspell",
-      "//third_party/iccjpeg",
-      "//third_party/libphonenumber",
-      "//third_party/ots",
-      "//third_party/qcms",
-      "//third_party/smhasher:murmurhash3",
-      "//third_party/speex",
-      "//third_party/webrtc/system_wrappers",
-      "//ui/native_theme",
-      "//ui/snapshot",
-      "//ui/surface",
-    ]
-
     # TODO(dpranke): These are as-yet untriaged but need at least the above.
     deps -= [
-      "//chrome",  # TODO(GYP)
-      "//chrome/test:browser_tests",  # TODO(GYP)
-      "//chrome/test:interactive_ui_tests",  # TODO(GYP)
-      "//chrome/test:sync_integration_tests",  # TODO(GYP)
-      "//chrome/test:unit_tests",  # TODO(GYP)
-      "//components:components_unittests",  # TODO(GYP)
-      "//content/test:content_browsertests",  # TODO(GYP)
-      "//content/test:content_perftests",  # TODO(GYP)
-      "//content/test:content_unittests",  # TODO(GYP)
-      "//extensions:extensions_browsertests",  # TODO(GYP)
-      "//extensions:extensions_unittests",  # TODO(GYP)
-      "//net:net_unittests",  # TODO(GYP)
-      "//third_party/usrsctp",  # TODO(GYP)
-      "//ui/app_list:app_list_unittests",  # TODO(GYP)
-      "//ui/gfx:gfx_unittests",  # TODO(GYP)
-      "//ui/views:views_unittests",  # TODO(GYP)
+      "//apps",
+      "//ash",
+      "//chrome/browser",
+      "//chrome/browser/devtools",
+      "//chrome/common",
+      "//chrome/plugin",
+      "//chrome/renderer",
+      "//chrome/test",
+      "//chrome/utility",
+      "//components:all_components",
+      "//content/shell:content_shell",
+      "//extensions/browser",
+      "//extensions/common",
+      "//extensions/common/api",
+      "//extensions/renderer",
+      "//remoting/client/plugin",
+      "//third_party/usrsctp",
+      "//ui/app_list",
+      "//ui/aura",
+      "//ui/keyboard",
+      "//ui/views",
+      "//ui/views/controls/webview",
+      "//ui/web_dialogs",
     ]
-  } else if (is_win) {
-    deps += [ "//ui/metro_viewer" ]
-    deps -= [
-      "//crypto:crypto_unittests",  # TODO(GYP)
-      "//net:net_unittests",  # TODO(GYP)
-    ]
+  }
+
+  if (is_mac || is_ios) {
+    deps -= [ "//ui/touch_selection" ]
   }
 }