# Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//base/allocator/allocator.gni") import("//build/apple/tweak_info_plist.gni") import("//build/config/features.gni") import("//build/config/ios/rules.gni") import("//ios/chrome/features.gni") import("//rlz/buildflags/buildflags.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", "//build:branding_buildflags", "//components/gcm_driver", ] } source_set("browser") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ "application_context.cc", "application_context.h", "arch_util.cc", "arch_util.h", "browser_about_rewriter.cc", "browser_about_rewriter.h", "chrome_browser_provider_observer_bridge.h", "chrome_browser_provider_observer_bridge.mm", "chrome_constants.cc", "chrome_constants.h", "chrome_root_coordinator.h", "chrome_root_coordinator.mm", "chrome_url_util.h", "chrome_url_util.mm", "file_metadata_util.h", "file_metadata_util.mm", "install_time_util.h", "install_time_util.mm", "installation_notifier.h", "installation_notifier.mm", "ios_chrome_field_trials.cc", "ios_chrome_field_trials.h", "ios_chrome_io_thread.h", "ios_chrome_io_thread.mm", "notification_promo.cc", "notification_promo.h", ] deps = [ ":settings_resources", "//base", "//components/autofill/core/browser", "//components/autofill/ios/browser", "//components/dom_distiller/core", "//components/feature_engagement", "//components/flags_ui", "//components/flags_ui:switches", "//components/handoff", "//components/invalidation/impl:impl", "//components/keyed_service/core", "//components/keyed_service/ios", "//components/metrics", "//components/metrics_services_manager", "//components/net_log", "//components/ntp_tiles", "//components/omnibox/browser", "//components/password_manager/core/common:common", "//components/pref_registry", "//components/prefs", "//components/proxy_config", "//components/proxy_config/ios", "//components/reading_list/ios", "//components/search_engines", "//components/security_state/core", "//components/send_tab_to_self", "//components/strings", "//components/sync", "//components/translate/core/browser", "//components/ukm/ios:features", "//components/unified_consent", "//components/url_formatter", "//components/variations/net", "//components/variations/service", "//components/version_info", "//components/webdata_services", "//google_apis", "//ios/chrome/app/strings", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/complex_tasks", "//ios/chrome/browser/download", "//ios/chrome/browser/itunes_urls", "//ios/chrome/browser/sync/glue", "//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/first_run:field_trial", "//ios/chrome/browser/ui/fullscreen:feature_flags", "//ios/chrome/browser/ui/omnibox", "//ios/chrome/browser/ui/toolbar_container:feature_flags", "//ios/chrome/browser/web:feature_flags", "//ios/chrome/common", "//ios/components/io_thread", "//ios/components/webui:url_constants", "//ios/net", "//ios/public/provider/chrome/browser", "//ios/public/provider/chrome/browser/voice", "//ios/web", "//ios/web/common", "//ios/web/public", "//net", "//rlz/buildflags", "//url", ] public_deps = [ ":chrome_paths", ":chrome_url_constants", ":pref_names", ":utils", ] allow_circular_includes_from = [ "//ios/chrome/browser/sync/glue", "//ios/chrome/browser/browser_state", ] frameworks = [ "UIKit.framework" ] } source_set("utils") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ "chrome_switches.cc", "chrome_switches.h", "procedural_block_types.h", "system_flags.h", "system_flags.mm", ] deps = [ "//base", "//build:branding_buildflags", "//components/autofill/core/common", "//components/password_manager/core/common", "//components/variations", "//ios/chrome/browser/browsing_data:feature_flags", "//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui/infobars:feature_flags", ] } source_set("chrome_url_constants") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ "chrome_url_constants.cc", "chrome_url_constants.h", ] deps = [ "//base", "//ios/components/webui:url_constants", ] frameworks = [ "UIKit.framework" ] } source_set("pref_names") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ "pref_names.cc", "pref_names.h", ] } source_set("browser_impl") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ "application_context_impl.h", "application_context_impl.mm", "ios_chrome_main_parts.h", "ios_chrome_main_parts.mm", ] deps = [ ":browser", "//base", "//base/allocator:buildflags", "//components/component_updater", "//components/content_settings/core/browser", "//components/content_settings/core/common", "//components/flags_ui", "//components/gcm_driver", "//components/history/core/browser", "//components/keyed_service/core", "//components/language/core/browser", "//components/language_usage_metrics", "//components/metrics", "//components/metrics:child_call_stack_profile_builder", "//components/metrics_services_manager", "//components/net_log", "//components/network_time", "//components/open_from_clipboard", "//components/prefs", "//components/rappor", "//components/safe_browsing/core:features", "//components/sessions", "//components/translate/core/browser", "//components/ukm", "//components/ukm/ios:features", "//components/update_client", "//components/variations", "//components/variations/field_trial_config", "//components/variations/service", "//components/version_info", "//ios/chrome/app:tests_hook", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/browser_state:browser_state_impl", "//ios/chrome/browser/component_updater", "//ios/chrome/browser/crash_report/breadcrumbs", "//ios/chrome/browser/crash_report/breadcrumbs:application_breadcrumbs_logger", "//ios/chrome/browser/crash_report/breadcrumbs:feature_flags", "//ios/chrome/browser/first_run", "//ios/chrome/browser/flags", "//ios/chrome/browser/gcm", "//ios/chrome/browser/history", "//ios/chrome/browser/metrics", "//ios/chrome/browser/metrics:expired_histograms_array", "//ios/chrome/browser/net", "//ios/chrome/browser/open_from_clipboard", "//ios/chrome/browser/policy", "//ios/chrome/browser/prefs", "//ios/chrome/browser/prefs:browser_prefs", "//ios/chrome/browser/safe_browsing", "//ios/chrome/browser/send_tab_to_self", "//ios/chrome/browser/translate", "//ios/chrome/browser/update_client", "//ios/chrome/common", "//ios/chrome/common/app_group", "//ios/public/provider/chrome/browser", "//ios/web", "//ios/web/public/init", "//net", "//rlz/buildflags", "//services/network:network_service", "//ui/base", ] if (enable_rlz) { deps += [ "//ios/chrome/browser/rlz" ] } # Heap profiling is not compiled unless use_allocator_shim is true, as some of # its dependencies require the allocator shim. This variable may be set to # false, for example, in cronet builds. if (use_allocator_shim) { deps += [ "//components/heap_profiling/in_process" ] } } tweak_info_plist("experimental_info_plist") { info_plists = [ "resources/Settings.bundle/Experimental.plist" ] if (ios_enable_metrickit) { info_plists += [ "resources/Settings.bundle/ExperimentalMetricKit.plist" ] } if (ios_enable_sandbox_dump) { info_plists += [ "resources/Settings.bundle/ExperimentalSandboxDump.plist" ] } info_plists += [ "resources/Settings.bundle/ExperimentalFlags.plist", "resources/Settings.bundle/ExperimentalBlank.plist", ] } bundle_data("settings_resources_experimental_plist") { public_deps = [ ":experimental_info_plist" ] sources = get_target_outputs(":experimental_info_plist") outputs = [ "{{bundle_resources_dir}}/Settings.bundle/Experimental.plist" ] } bundle_data("settings_resources") { public_deps = [ ":settings_resources_experimental_plist" ] sources = [ "resources/Settings.bundle/Root.plist" ] outputs = [ "{{bundle_resources_dir}}/Settings.bundle/{{source_file_part}}" ] } source_set("unit_tests") { configs += [ "//build/config/compiler:enable_arc" ] testonly = true sources = [ "browser_about_rewriter_unittest.cc", "chrome_browser_provider_observer_bridge_unittest.mm", "chrome_url_util_unittest.mm", "install_time_util_unittest.mm", "installation_notifier_unittest.mm", "notification_promo_unittest.cc", ] deps = [ ":browser", "//base", "//base/test:test_support", "//components/prefs", "//components/prefs:test_support", "//components/proxy_config", "//components/variations", "//ios/components/webui:url_constants", "//ios/public/provider/chrome/browser", "//ios/public/provider/chrome/browser/signin", "//ios/web/public/test", "//net", "//net:test_support", "//testing/gtest", "//third_party/ocmock", "//url", ] }