123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634 |
- # 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("//build/apple/compile_entitlements.gni")
- import("//build/apple/tweak_info_plist.gni")
- import("//build/buildflag_header.gni")
- import("//build/config/ios/ios_sdk.gni")
- import("//build/config/ios/rules.gni")
- import("//build/ios/extension_bundle_data.gni")
- import("//ios/build/chrome_build.gni")
- import("//ios/build/config.gni")
- import("//ios/chrome/features.gni")
- import("//ios/public/provider/chrome/browser/build_config.gni")
- buildflag_header("buildflags") {
- header = "background_mode_buildflags.h"
- flags = [ "IOS_BACKGROUND_MODE_ENABLED=$ios_enable_background_mode" ]
- }
- source_set("app") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "app_startup_parameters.h",
- "app_startup_parameters.mm",
- "deferred_initialization_runner.h",
- "deferred_initialization_runner.mm",
- ]
- deps = [
- "//base",
- "//ios/chrome/browser",
- "//ios/chrome/browser/ui:feature_flags",
- "//net",
- "//url",
- ]
- frameworks = [ "Foundation.framework" ]
- }
- source_set("unit_tests") {
- configs += [ "//build/config/compiler:enable_arc" ]
- testonly = true
- sources = [
- "app_metrics_app_state_agent_unittest.mm",
- "deferred_initialization_runner_unittest.mm",
- "main_application_delegate_unittest.mm",
- "safe_mode_app_state_agent_unittest.mm",
- "tab_opener_unittest.mm",
- ]
- deps = [
- ":app",
- ":app_internal",
- ":app_metrics_app_state_agent",
- ":safe_mode_app_state_agent",
- "//base",
- "//base/test:test_support",
- "//components/metrics",
- "//components/prefs",
- "//components/sync_preferences:sync_preferences",
- "//components/sync_preferences:test_support",
- "//ios/chrome/app:enterprise_app_agent",
- "//ios/chrome/app/application_delegate",
- "//ios/chrome/app/application_delegate:application_delegate_internal",
- "//ios/chrome/app/application_delegate:tab_opening",
- "//ios/chrome/app/application_delegate:test_support",
- "//ios/chrome/app/application_delegate:url_opener_params",
- "//ios/chrome/browser",
- "//ios/chrome/browser/browser_state:test_support",
- "//ios/chrome/browser/metrics:metrics",
- "//ios/chrome/browser/prefs:browser_prefs",
- "//ios/chrome/browser/tabs",
- "//ios/chrome/browser/ui/main:scene",
- "//ios/chrome/browser/ui/main:scene_state_header",
- "//ios/chrome/browser/ui/main/test",
- "//ios/chrome/browser/ui/safe_mode",
- "//ios/chrome/common/app_group",
- "//ios/chrome/test:test_support",
- "//ios/public/provider/chrome/browser:browser",
- "//ios/public/provider/chrome/browser:test_support",
- "//ios/public/provider/chrome/browser/app_distribution:app_distribution_api",
- "//ios/testing:block_swizzler",
- "//ios/third_party/material_components_ios",
- "//ios/web/public/test:test",
- "//testing/gtest",
- "//third_party/ocmock",
- "//url",
- ]
- }
- source_set("tests_hook") {
- # This target is intentionally not test-only, as the main app depends on it.
- sources = [ "tests_hook.h" ]
- }
- source_set("tests_fake_hook") {
- configs += [ "//build/config/compiler:enable_arc" ]
- # This target is intentionally not test-only, as the main app depends on it.
- sources = [ "tests_fake_hook.mm" ]
- deps = [ ":tests_hook" ]
- }
- if (!is_fat_secondary_toolchain) {
- tweak_info_plist("info_plist") {
- info_plists = [
- "resources/Info.plist",
- "resources/ChromeAddition+Info.plist",
- ]
- if (ios_enable_background_mode) {
- info_plists += [ "resources/Background+Info.plist" ]
- }
- if (target_environment == "catalyst") {
- info_plists += [ "resources/Environment+Catalyst.plist" ]
- } else {
- info_plists += [ "resources/Environment+Default.plist" ]
- }
- if (ios_chrome_info_plist_additions != []) {
- info_plists += ios_chrome_info_plist_additions
- }
- if (ios_encryption_export_compliance_code != "") {
- info_plists += [ "resources/EncryptionExportCompliance+Info.plist" ]
- }
- if (ios_chrome_info_plist_addition_targets != []) {
- if (!defined(deps)) {
- deps = []
- }
- deps += ios_chrome_info_plist_addition_targets
- }
- args = [
- "--breakpad=$breakpad_enabled_as_int",
- "--branding=$chromium_short_name",
- "--add-gtm-metadata=1",
- ]
- }
- compile_entitlements("entitlements") {
- entitlements_templates = [ "resources/Chrome.entitlements" ]
- if (ios_chrome_entitlements_additions != []) {
- entitlements_templates += ios_chrome_entitlements_additions
- }
- if (target_environment == "catalyst") {
- entitlements_templates +=
- [ "resources/Environment+Catalyst.entitlements" ]
- }
- substitutions = [ "IOS_BUNDLE_ID_PREFIX=$ios_app_bundle_id_prefix" ]
- output_name = "$target_gen_dir/$chromium_short_name.entitlements"
- }
- }
- if (ios_enable_credential_provider_extension) {
- source_set("credential_provider_migrator_app_agent") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "credential_provider_migrator_app_agent.h",
- "credential_provider_migrator_app_agent.mm",
- ]
- deps = [
- "//components/keyed_service/core",
- "//ios/chrome/app/application_delegate:app_state_header",
- "//ios/chrome/app/application_delegate:observing_app_state_agent",
- "//ios/chrome/browser/credential_provider",
- "//ios/chrome/browser/passwords:store_factory",
- "//ios/chrome/browser/ui/main:browser_interface_provider",
- "//ios/chrome/browser/ui/main:scene_state_header",
- "//ios/chrome/common/app_group",
- "//ios/chrome/common/credential_provider",
- ]
- }
- }
- source_set("app_metrics_app_state_agent") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "app_metrics_app_state_agent.h",
- "app_metrics_app_state_agent.mm",
- ]
- deps = [
- "//base",
- "//ios/chrome/app/application_delegate:application_delegate_internal",
- "//ios/chrome/app/application_delegate:observing_app_state_agent",
- "//ios/chrome/browser/metrics",
- "//ios/chrome/browser/ui/main:scene_state_header",
- ]
- }
- source_set("safe_mode_app_state_agent") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "safe_mode_app_state_agent.h",
- "safe_mode_app_state_agent.mm",
- ]
- deps = [
- "//base",
- "//ios/chrome/app/application_delegate:app_state_header",
- "//ios/chrome/browser/ui/main:observing_scene_agent",
- "//ios/chrome/browser/ui/safe_mode",
- ]
- }
- source_set("enterprise_app_agent") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "enterprise_app_agent.h",
- "enterprise_app_agent.mm",
- ]
- deps = [
- ":enterprise_app_agent_ui",
- "//base",
- "//components/policy/core/common",
- "//ios/chrome/app:tests_hook",
- "//ios/chrome/app/application_delegate:app_state_header",
- "//ios/chrome/app/application_delegate:application_delegate_internal",
- "//ios/chrome/browser",
- "//ios/chrome/browser/policy",
- "//ios/chrome/browser/ui/first_run:utils",
- "//ios/chrome/browser/ui/main:scene_state_header",
- ]
- }
- source_set("enterprise_app_agent_ui") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "enterprise_loading_screen_view_controller.h",
- "enterprise_loading_screen_view_controller.mm",
- ]
- deps = [
- "//base",
- "//ios/chrome/app/strings:ios_chromium_strings_grit",
- "//ios/chrome/browser/ui/first_run:constants",
- "//ios/chrome/common/ui/colors",
- "//ios/chrome/common/ui/util",
- "//ios/chrome/common/ui/util:dynamic_type_util",
- ]
- }
- source_set("first_run_app_state_agent") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "first_run_app_state_agent.h",
- "first_run_app_state_agent.mm",
- ]
- deps = [
- "//base",
- "//ios/chrome/app:blocking_scene_commands",
- "//ios/chrome/app/application_delegate:app_state_header",
- "//ios/chrome/app/application_delegate:application_delegate_internal",
- "//ios/chrome/browser",
- "//ios/chrome/browser/browsing_data",
- "//ios/chrome/browser/geolocation",
- "//ios/chrome/browser/policy",
- "//ios/chrome/browser/ui:feature_flags",
- "//ios/chrome/browser/ui/blocking_overlay",
- "//ios/chrome/browser/ui/browser_view",
- "//ios/chrome/browser/ui/commands:commands",
- "//ios/chrome/browser/ui/first_run",
- "//ios/chrome/browser/ui/first_run:field_trial",
- "//ios/chrome/browser/ui/first_run:first_run_provider",
- "//ios/chrome/browser/ui/first_run:utils",
- "//ios/chrome/browser/ui/main:browser_interface_provider",
- "//ios/chrome/browser/ui/main:observing_scene_agent",
- "//ios/chrome/browser/ui/main:scene_state_header",
- "//ios/chrome/browser/ui/screen:screen_provider",
- ]
- }
- source_set("feed_app_agent") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "feed_app_agent.h",
- "feed_app_agent.mm",
- ]
- deps = [
- "//base",
- "//ios/chrome/app/application_delegate:app_state_header",
- "//ios/chrome/app/application_delegate:observing_app_state_agent",
- "//ios/chrome/browser/browser_state",
- "//ios/chrome/browser/discover_feed:discover_feed",
- "//ios/chrome/browser/discover_feed:discover_feed_factory",
- "//ios/chrome/browser/ntp:features",
- ]
- frameworks = [
- "BackgroundTasks.framework",
- "UserNotifications.framework",
- ]
- }
- source_set("app_internal") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "chrome_overlay_window.h",
- "chrome_overlay_window.mm",
- "main_application_delegate.h",
- "main_application_delegate.mm",
- "main_application_delegate_testing.h",
- "main_controller.h",
- "main_controller.mm",
- "main_controller_private.h",
- "memory_monitor.h",
- "memory_monitor.mm",
- "startup_tasks.h",
- "startup_tasks.mm",
- ]
- deps = [
- ":app",
- ":app_metrics_app_state_agent",
- ":blocking_scene_commands",
- ":enterprise_app_agent",
- ":feed_app_agent",
- ":first_run_app_state_agent",
- ":mode",
- ":safe_mode_app_state_agent",
- ":tests_hook",
- "//base",
- "//build:branding_buildflags",
- "//components/bookmarks/browser",
- "//components/breadcrumbs/core",
- "//components/breadcrumbs/core:feature_flags",
- "//components/browser_sync",
- "//components/browsing_data/core",
- "//components/component_updater",
- "//components/component_updater:crl_set_remover",
- "//components/component_updater/installer_policies",
- "//components/crash/core/common",
- "//components/favicon/core",
- "//components/favicon_base",
- "//components/feature_engagement",
- "//components/handoff",
- "//components/history/core/browser",
- "//components/infobars/core",
- "//components/keyed_service/core",
- "//components/keyed_service/ios",
- "//components/metrics",
- "//components/password_manager/core/common",
- "//components/prefs",
- "//components/prefs/ios",
- "//components/previous_session_info",
- "//components/proxy_config",
- "//components/sync",
- "//components/web_resource",
- "//ios/chrome/app/application_delegate",
- "//ios/chrome/app/application_delegate:application_delegate_internal",
- "//ios/chrome/app/application_delegate:tab_opening",
- "//ios/chrome/app/application_delegate:url_opener_params",
- "//ios/chrome/app/spotlight",
- "//ios/chrome/app/startup",
- "//ios/chrome/app/startup:startup_basic",
- "//ios/chrome/app/strings",
- "//ios/chrome/browser",
- "//ios/chrome/browser/accessibility",
- "//ios/chrome/browser/bookmarks",
- "//ios/chrome/browser/browser_state",
- "//ios/chrome/browser/browser_state:browser_state_impl",
- "//ios/chrome/browser/browsing_data",
- "//ios/chrome/browser/crash_report",
- "//ios/chrome/browser/crash_report:crash_report_internal",
- "//ios/chrome/browser/crash_report/breadcrumbs",
- "//ios/chrome/browser/credential_provider:buildflags",
- "//ios/chrome/browser/download",
- "//ios/chrome/browser/external_files",
- "//ios/chrome/browser/favicon",
- "//ios/chrome/browser/feature_engagement",
- "//ios/chrome/browser/first_run",
- "//ios/chrome/browser/geolocation",
- "//ios/chrome/browser/history",
- "//ios/chrome/browser/mailto_handler",
- "//ios/chrome/browser/mailto_handler:mailto_handler_factory",
- "//ios/chrome/browser/main",
- "//ios/chrome/browser/memory",
- "//ios/chrome/browser/metrics",
- "//ios/chrome/browser/metrics:metrics_internal",
- "//ios/chrome/browser/ntp:features",
- "//ios/chrome/browser/omaha",
- "//ios/chrome/browser/passwords",
- "//ios/chrome/browser/reading_list",
- "//ios/chrome/browser/screenshot",
- "//ios/chrome/browser/search_engines",
- "//ios/chrome/browser/search_engines:extension_search_engine_data_updater",
- "//ios/chrome/browser/sessions:scene_util",
- "//ios/chrome/browser/share_extension",
- "//ios/chrome/browser/signin",
- "//ios/chrome/browser/snapshots",
- "//ios/chrome/browser/sync",
- "//ios/chrome/browser/ui:feature_flags",
- "//ios/chrome/browser/ui/appearance",
- "//ios/chrome/browser/ui/authentication",
- "//ios/chrome/browser/ui/commands",
- "//ios/chrome/browser/ui/download",
- "//ios/chrome/browser/ui/first_run",
- "//ios/chrome/browser/ui/first_run:utils",
- "//ios/chrome/browser/ui/main",
- "//ios/chrome/browser/ui/main:scene",
- "//ios/chrome/browser/ui/main:scene_state_header",
- "//ios/chrome/browser/ui/tab_switcher/tab_grid",
- "//ios/chrome/browser/ui/tab_switcher/tab_grid:tab_grid_ui",
- "//ios/chrome/browser/ui/table_view",
- "//ios/chrome/browser/ui/tabs",
- "//ios/chrome/browser/ui/toolbar:toolbar_ui",
- "//ios/chrome/browser/ui/toolbar/public",
- "//ios/chrome/browser/ui/util",
- "//ios/chrome/browser/ui/webui:webui_internal",
- "//ios/chrome/browser/upgrade",
- "//ios/chrome/browser/url_loading",
- "//ios/chrome/browser/variations:ios_chrome_ui_string_overrider_factory",
- "//ios/chrome/browser/voice",
- "//ios/chrome/browser/web",
- "//ios/chrome/browser/web:web_internal",
- "//ios/chrome/browser/web/session_state",
- "//ios/chrome/browser/web_state_list",
- "//ios/chrome/common/app_group",
- "//ios/chrome/common/app_group:main_app",
- "//ios/chrome/common/intents",
- "//ios/components/cookie_util",
- "//ios/net",
- "//ios/public/provider/chrome/browser",
- "//ios/public/provider/chrome/browser/app_distribution:app_distribution_api",
- "//ios/public/provider/chrome/browser/overrides:overrides_api",
- "//ios/public/provider/chrome/browser/ui_utils:ui_utils_api",
- "//ios/public/provider/chrome/browser/user_feedback",
- "//ios/third_party/material_components_ios",
- "//ios/web/common:features",
- "//ios/web/common:uikit",
- "//ios/web/public/webui",
- "//net",
- "//skia",
- "//ui/base",
- "//ui/gfx",
- "//ui/resources",
- "//ui/strings:ui_strings",
- ]
- if (ios_enable_credential_provider_extension) {
- deps += [
- ":credential_provider_migrator_app_agent",
- "//ios/chrome/browser/credential_provider",
- ]
- }
- frameworks = [
- "CoreSpotlight.framework",
- "MediaPlayer.framework",
- ]
- allow_circular_includes_from = [
- "//ios/chrome/app/application_delegate:application_delegate_internal",
- "//ios/chrome/browser/ui/main:scene",
- ]
- }
- source_set("blocking_scene_commands") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [ "blocking_scene_commands.h" ]
- deps = [ "//base" ]
- }
- source_set("mode") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [ "application_mode.h" ]
- deps = [ "//base" ]
- }
- source_set("main") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [ "chrome_exe_main.mm" ]
- deps = [
- ":app_internal",
- "//base",
- "//components/crash/core/common",
- "//ios/chrome/app/startup:ios_enable_sandbox_dump_buildflags",
- "//ios/chrome/app/startup:startup_basic",
- "//ios/chrome/browser/crash_report",
- "//ios/chrome/common",
- ]
- if (ios_enable_sandbox_dump) {
- deps += [ "//ios/chrome/app/startup:sandbox_dump" ]
- }
- if (ios_chrome_links_with_material_components_framework) {
- deps += [
- "//ios/third_party/material_components_ios:material_components_ios+bundle",
- "//ios/third_party/material_components_ios:material_components_ios+link",
- ]
- } else {
- assert_no_deps = [
- "//ios/third_party/material_components_ios:material_components_ios+bundle",
- "//ios/third_party/material_components_ios:material_components_ios+link",
- ]
- }
- }
- source_set("multitasking_test_app_delegate") {
- configs += [ "//build/config/compiler:enable_arc" ]
- sources = [
- "multitasking_test_application_delegate.h",
- "multitasking_test_application_delegate.mm",
- "multitasking_test_scene_delegate.h",
- "multitasking_test_scene_delegate.mm",
- ]
- deps = [
- ":app_internal",
- "//base",
- "//ios/chrome/app/application_delegate:application_delegate_internal",
- "//ios/chrome/browser/ui/main:scene",
- "//ios/third_party/material_components_ios",
- ]
- }
- ios_app_bundle("chrome") {
- output_name = chromium_short_name
- entitlements_target = ":entitlements"
- info_plist_target = ":info_plist"
- bundle_identifier = "$chromium_bundle_id"
- bundle_deps = [ "//ios/chrome/app/resources" ]
- if (!is_chrome_branded || ios_chrome_app_variants == []) {
- assert(ios_application_icons_target != "",
- "ios_application_icons_target must be defined.")
- bundle_deps += [ ios_application_icons_target ]
- bundle_deps += ios_providers_resources_targets
- } else {
- variants = ios_chrome_app_variants
- }
- xcode_extra_attributes = {
- SUPPORTS_MACCATALYST = "YES"
- }
- deps = [
- ":main",
- ":tests_fake_hook",
- # Use the provider API controlled by args.gn.
- ios_provider_target,
- ]
- if (current_toolchain == default_toolchain) {
- if (ios_enable_search_widget_extension) {
- deps += [ ":search_widget_extension_bundle" ]
- }
- if (ios_enable_content_widget_extension) {
- deps += [ ":content_widget_extension_bundle" ]
- }
- if (ios_enable_share_extension) {
- deps += [ ":share_extension_bundle" ]
- }
- if (ios_enable_credential_provider_extension) {
- deps += [ ":credential_provider_extension_bundle" ]
- }
- if (ios_enable_widget_kit_extension) {
- deps += [ ":widget_kit_extension_bundle" ]
- }
- if (ios_enable_intents_extension) {
- deps += [ ":intents_extension_bundle" ]
- }
- }
- extra_substitutions = [
- "CONTENT_WIDGET_EXTENSION_BUNDLE_ID=$chromium_bundle_id.ContentTodayExtension",
- "CHROMIUM_BUNDLE_ID=$chromium_bundle_id",
- "CHROMIUM_HANDOFF_ID=$chromium_handoff_id",
- "CHROMIUM_SHORT_NAME=$chromium_short_name",
- "CHROMIUM_URL_SCHEME_1=$url_unsecure_scheme",
- "CHROMIUM_URL_SCHEME_2=$url_secure_scheme",
- "CHROMIUM_URL_SCHEME_3=$url_x_callback_scheme",
- "CHROMIUM_URL_CHANNEL_SCHEME=$url_channel_scheme",
- "SSOAUTH_URL_SCHEME=$url_ssoauth_scheme",
- "IOS_MOVE_TAB_ACTIVITY_TYPE=$ios_move_tab_activity_type",
- ]
- if (ios_encryption_export_compliance_code != "") {
- extra_substitutions += [ "ENCRYPTION_EXPORT_COMPLIANCE_CODE=" +
- ios_encryption_export_compliance_code ]
- }
- assert_no_deps = ios_assert_no_deps + ios_chrome_extra_assert_no_deps
- if (ios_chrome_links_with_material_components_framework) {
- deps += [
- "//ios/third_party/material_components_ios:material_components_ios+bundle",
- "//ios/third_party/material_components_ios:material_components_ios+link",
- ]
- } else {
- assert_no_deps += [
- "//ios/third_party/material_components_ios:material_components_ios+bundle",
- "//ios/third_party/material_components_ios:material_components_ios+link",
- ]
- }
- }
- if (current_toolchain == default_toolchain) {
- if (ios_enable_search_widget_extension) {
- extension_bundle_data("search_widget_extension_bundle") {
- extension_target =
- "//ios/chrome/search_widget_extension(${current_toolchain}_13_0)"
- }
- }
- if (ios_enable_content_widget_extension) {
- extension_bundle_data("content_widget_extension_bundle") {
- extension_target =
- "//ios/chrome/content_widget_extension(${current_toolchain}_13_0)"
- }
- }
- if (ios_enable_share_extension) {
- extension_bundle_data("share_extension_bundle") {
- extension_target = "//ios/chrome/share_extension"
- }
- }
- if (ios_enable_credential_provider_extension) {
- extension_bundle_data("credential_provider_extension_bundle") {
- extension_target = "//ios/chrome/credential_provider_extension"
- }
- }
- if (ios_enable_widget_kit_extension) {
- extension_bundle_data("widget_kit_extension_bundle") {
- extension_target = "//ios/chrome/widget_kit_extension"
- }
- }
- if (ios_enable_intents_extension) {
- extension_bundle_data("intents_extension_bundle") {
- extension_target = "//ios/chrome/intents_extension"
- }
- }
- }
|