Split ios/chrome/app/startup targets to reduce dependencies.
This CL splits the startup targets to separate those without
/ios/chrome/browser/ dependencies. Showcase would prefer not to have a
large dependency tree, so it uses the startup_basic target.
This change removes ~2000 build steps from a clean Showcase build, but
chrome_paths still transitively depends on several large components
(sync, etc) even though it's only getting a single constant from gcm_driver.
BUG=
Review-Url: https://codereview.chromium.org/2661183002
Cr-Commit-Position: refs/heads/master@{#470304}
diff --git a/ios/chrome/browser/BUILD.gn b/ios/chrome/browser/BUILD.gn
index de6beb48..7779b47 100644
--- a/ios/chrome/browser/BUILD.gn
+++ b/ios/chrome/browser/BUILD.gn
@@ -8,6 +8,20 @@
import("//rlz/features/features.gni")
import("//third_party/protobuf/proto_library.gni")
+source_set("chrome_paths") {
+ configs += [ "//build/config/compiler:enable_arc" ]
+ sources = [
+ "chrome_paths.h",
+ "chrome_paths.mm",
+ "chrome_paths_internal.h",
+ ]
+
+ deps = [
+ "//base",
+ "//components/gcm_driver",
+ ]
+}
+
source_set("browser") {
configs += [ "//build/config/compiler:enable_arc" ]
sources = [
@@ -25,9 +39,6 @@
"chrome_constants.h",
"chrome_coordinator.h",
"chrome_coordinator.mm",
- "chrome_paths.h",
- "chrome_paths.mm",
- "chrome_paths_internal.h",
"chrome_root_coordinator.h",
"chrome_root_coordinator.mm",
"chrome_switches.cc",
@@ -66,6 +77,7 @@
"xcallback_parameters.h",
"xcallback_parameters.mm",
]
+
deps = [
":settings_resources",
"//base",
@@ -74,7 +86,6 @@
"//components/dom_distiller/core",
"//components/flags_ui",
"//components/flags_ui:switches",
- "//components/gcm_driver",
"//components/handoff",
"//components/keyed_service/core",
"//components/keyed_service/ios",
@@ -112,6 +123,9 @@
"//rlz/features",
"//url",
]
+ public_deps = [
+ ":chrome_paths",
+ ]
allow_circular_includes_from = [
"//ios/chrome/browser/sync/glue",
"//ios/chrome/browser/browser_state",