| # Copyright 2015 The Chromium Authors |
| # 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/apple/mobile_config.gni") |
| import("//build/config/ios/config.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/app/chrome_app.gni") |
| import("//ios/chrome/features.gni") |
| import("//ios/features.gni") |
| import("//ios/public/provider/chrome/browser/build_config.gni") |
| import("//rlz/buildflags/buildflags.gni") |
| |
| declare_args() { |
| # Controls whether fast_app_terminate_buildflags is enabled |
| # (see crbug.com/1328891 for details). |
| fast_app_terminate_enabled = -1 |
| |
| # Path to a PrivacyInfo.xcprivacy file to be included in the application. |
| ios_chrome_privacy_manifest = "" |
| |
| # Path to an orderfile to be used when building the application binary. |
| ios_chrome_orderfile = "" |
| } |
| |
| # If fast_app_terminate_enabled is not enabled, default to true, |
| # except in debug mode (as this makes it difficult to debug the |
| # app termination crashes). |
| if (fast_app_terminate_enabled == -1) { |
| fast_app_terminate_enabled = !is_debug |
| } |
| |
| buildflag_header("background_mode_buildflags") { |
| header = "background_mode_buildflags.h" |
| flags = [ "IOS_BACKGROUND_MODE_ENABLED=$ios_enable_background_mode" ] |
| } |
| |
| buildflag_header("fast_app_terminate_buildflags") { |
| header = "fast_app_terminate_buildflags.h" |
| flags = [ "FAST_APP_TERMINATE_ENABLED=$fast_app_terminate_enabled" ] |
| } |
| |
| buildflag_header("ios_force_build_chrome_framework_buildflags") { |
| header = "ios_force_build_chrome_framework_buildflags.h" |
| flags = |
| [ "IOS_FORCE_BUILD_CHROME_FRAMEWORK=$ios_force_build_chrome_framework" ] |
| } |
| |
| source_set("app") { |
| sources = [ |
| "app_startup_parameters.h", |
| "app_startup_parameters.mm", |
| "deferred_initialization_queue.h", |
| "deferred_initialization_queue.mm", |
| "deferred_initialization_runner.h", |
| "deferred_initialization_runner.mm", |
| ] |
| |
| deps = [ |
| "//base", |
| "//ios/chrome/app/startup:utils", |
| "//ios/chrome/browser/shared/model/url:constants", |
| "//ios/chrome/browser/shared/public/features", |
| "//ios/public/provider/chrome/browser/application_mode_fetcher:application_mode_fetcher_api", |
| "//net", |
| "//url", |
| ] |
| |
| frameworks = [ "Foundation.framework" ] |
| } |
| |
| source_set("app_trampoline") { |
| sources = [ "chrome_exe_main.mm" ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "app_metrics_app_state_agent_unittest.mm", |
| "app_startup_parameters_unittest.mm", |
| "change_profile_animator_unittest.mm", |
| "deferred_initialization_runner_unittest.mm", |
| "safe_mode_app_state_agent_unittest.mm", |
| "tab_opener_unittest.mm", |
| "variations_app_state_agent_unittest.mm", |
| ] |
| deps = [ |
| ":app", |
| ":app_internal", |
| ":app_metrics_app_state_agent", |
| ":change_profile_animator", |
| ":safe_mode_app_state_agent", |
| ":variations_app_state_agent", |
| "//base", |
| "//base/test:test_support", |
| "//components/bookmarks/test", |
| "//components/metrics", |
| "//components/open_from_clipboard", |
| "//components/open_from_clipboard:test_support", |
| "//components/prefs", |
| "//components/prefs:test_support", |
| "//components/sync_preferences", |
| "//components/sync_preferences:test_support", |
| "//components/variations", |
| "//components/variations/service", |
| "//ios/chrome/app:enterprise_app_agent", |
| "//ios/chrome/app/application_delegate", |
| "//ios/chrome/app/application_delegate:app_state", |
| "//ios/chrome/app/application_delegate:metrics_mediator", |
| "//ios/chrome/app/application_delegate:startup_information", |
| "//ios/chrome/app/application_delegate:tab_opening", |
| "//ios/chrome/app/application_delegate:test_support", |
| "//ios/chrome/app/application_delegate:url_opener", |
| "//ios/chrome/app/application_delegate:url_opener_params", |
| "//ios/chrome/app/profile", |
| "//ios/chrome/app/profile:test_utils", |
| "//ios/chrome/browser/bookmarks/model", |
| "//ios/chrome/browser/bookmarks/model:test_support", |
| "//ios/chrome/browser/browsing_data/model", |
| "//ios/chrome/browser/first_run/ui_bundled:constants", |
| "//ios/chrome/browser/main/ui_bundled", |
| "//ios/chrome/browser/metrics/model", |
| "//ios/chrome/browser/promos_manager/model", |
| "//ios/chrome/browser/promos_manager/model:constants", |
| "//ios/chrome/browser/promos_manager/model:test_support", |
| "//ios/chrome/browser/reading_list/model", |
| "//ios/chrome/browser/reading_list/model:test_support", |
| "//ios/chrome/browser/safe_mode/ui_bundled", |
| "//ios/chrome/browser/sessions/model", |
| "//ios/chrome/browser/sessions/model:fake", |
| "//ios/chrome/browser/shared/coordinator/scene", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_testing", |
| "//ios/chrome/browser/shared/coordinator/scene/test", |
| "//ios/chrome/browser/shared/model/application_context", |
| "//ios/chrome/browser/shared/model/browser/test:test_support", |
| "//ios/chrome/browser/shared/model/prefs:browser_prefs", |
| "//ios/chrome/browser/shared/model/prefs:pref_names", |
| "//ios/chrome/browser/shared/model/profile/test", |
| "//ios/chrome/browser/shared/public/features", |
| "//ios/chrome/browser/signin/model:test_support", |
| "//ios/chrome/browser/tabs/model", |
| "//ios/chrome/browser/variations/model:fetcher", |
| "//ios/chrome/browser/web_state_list/model/web_usage_enabler", |
| "//ios/chrome/common/app_group", |
| "//ios/chrome/test:test_support", |
| "//ios/chrome/test/providers/application_mode_fetcher", |
| "//ios/public/provider/chrome/browser/app_distribution:app_distribution_api", |
| "//ios/public/provider/chrome/browser/application_mode_fetcher:application_mode_fetcher_api", |
| "//ios/testing:block_swizzler", |
| "//ios/web/public/test", |
| "//testing/gmock", |
| "//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") { |
| # This target is intentionally not test-only, as the main app depends on it. |
| sources = [ "tests_fake_hook.mm" ] |
| deps = [ |
| ":tests_hook", |
| "//components/commerce/core:shopping_service", |
| "//components/feature_engagement/public", |
| "//components/signin/internal/identity_manager", |
| "//ios/chrome/browser/feature_engagement/model", |
| "//ios/chrome/browser/shared/public/snackbar:constants", |
| ] |
| } |
| |
| source_set("perf_tests_hook") { |
| sources = [ |
| "perf_tests_hook.mm", |
| "perf_tests_hook_logging.mm", |
| ] |
| deps = [ |
| ":tests_hook", |
| "//components/commerce/core:shopping_service", |
| "//components/feature_engagement/public", |
| "//components/signin/internal/identity_manager", |
| "//ios/chrome/browser/feature_engagement/model", |
| "//ios/chrome/browser/shared/public/snackbar:constants", |
| "//ios/public/provider/chrome/browser/primes:primes_api", |
| ] |
| } |
| |
| 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 (!ios_enable_liquid_glass) { |
| info_plists += [ "resources/DisableLiquidGlassCompatibility+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 = [ |
| "--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" ] |
| } |
| if (use_blink) { |
| entitlements_templates += [ "//content/app/ios/appex/app.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") { |
| sources = [ |
| "credential_provider_migrator_app_agent.h", |
| "credential_provider_migrator_app_agent.mm", |
| ] |
| deps = [ |
| "//components/webauthn/core/browser:passkey_model", |
| "//ios/chrome/app/application_delegate:app_state", |
| "//ios/chrome/app/application_delegate:observing_app_state_agent", |
| "//ios/chrome/app/profile", |
| "//ios/chrome/browser/credential_provider/model", |
| "//ios/chrome/browser/passwords/model:store_factory", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", |
| "//ios/chrome/browser/shared/model/application_context", |
| "//ios/chrome/browser/shared/model/profile", |
| "//ios/chrome/browser/shared/model/profile:features", |
| "//ios/chrome/browser/sync/model", |
| "//ios/chrome/browser/webauthn/model", |
| "//ios/chrome/common/app_group", |
| "//ios/chrome/common/credential_provider", |
| ] |
| } |
| } |
| |
| source_set("app_metrics_app_state_agent") { |
| sources = [ |
| "app_metrics_app_state_agent.h", |
| "app_metrics_app_state_agent.mm", |
| ] |
| deps = [ |
| ":app", |
| ":tests_hook", |
| "//base", |
| "//ios/chrome/app/application_delegate:app_state", |
| "//ios/chrome/app/application_delegate:metrics_mediator", |
| "//ios/chrome/app/application_delegate:observing_app_state_agent", |
| "//ios/chrome/app/application_delegate:startup_information", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", |
| "//ios/public/provider/chrome/browser/primes:primes_api", |
| ] |
| } |
| |
| source_set("safe_mode_app_state_agent") { |
| sources = [ |
| "safe_mode_app_state_agent+private.h", |
| "safe_mode_app_state_agent.h", |
| "safe_mode_app_state_agent.mm", |
| ] |
| deps = [ |
| "//base", |
| "//ios/chrome/app/application_delegate:app_state", |
| "//ios/chrome/app/application_delegate:observing_app_state_agent", |
| "//ios/chrome/browser/safe_mode/ui_bundled", |
| "//ios/chrome/browser/shared/coordinator/scene:observing_scene_agent", |
| ] |
| } |
| |
| source_set("variations_app_state_agent") { |
| sources = [ |
| "variations_app_state_agent+testing.h", |
| "variations_app_state_agent.h", |
| "variations_app_state_agent.mm", |
| ] |
| deps = [ |
| ":launch_screen_ui", |
| "//base", |
| "//components/prefs", |
| "//components/variations", |
| "//components/variations/service", |
| "//ios/chrome/app/application_delegate:app_state", |
| "//ios/chrome/app/application_delegate:observing_app_state_agent", |
| "//ios/chrome/app/application_delegate:startup_information", |
| "//ios/chrome/browser/first_run/ui_bundled:utils", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", |
| "//ios/chrome/browser/shared/model/application_context", |
| "//ios/chrome/browser/variations/model:fetcher", |
| "//ios/chrome/browser/variations/model:store", |
| "//ios/chrome/common", |
| ] |
| } |
| |
| source_set("enterprise_app_agent") { |
| sources = [ |
| "enterprise_app_agent.h", |
| "enterprise_app_agent.mm", |
| ] |
| |
| deps = [ |
| ":enterprise_app_agent_ui", |
| "//base", |
| "//components/policy/core/common", |
| "//ios/chrome/app/application_delegate:app_state", |
| "//ios/chrome/app/application_delegate:observing_app_state_agent", |
| "//ios/chrome/app/application_delegate:startup_information", |
| "//ios/chrome/browser/first_run/ui_bundled:constants", |
| "//ios/chrome/browser/first_run/ui_bundled:utils", |
| "//ios/chrome/browser/policy/model", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", |
| "//ios/chrome/browser/shared/model/application_context", |
| ] |
| } |
| |
| source_set("launch_screen_ui") { |
| sources = [ |
| "launch_screen_view_controller.h", |
| "launch_screen_view_controller.mm", |
| ] |
| deps = [ |
| "//base", |
| "//ios/chrome/browser/first_run/ui_bundled:constants", |
| "//ios/chrome/common/ui/colors", |
| ] |
| } |
| |
| source_set("enterprise_app_agent_ui") { |
| sources = [ |
| "enterprise_loading_screen_view_controller.h", |
| "enterprise_loading_screen_view_controller.mm", |
| ] |
| deps = [ |
| ":launch_screen_ui", |
| "//base", |
| "//ios/chrome/app/strings", |
| "//ios/chrome/browser/first_run/ui_bundled:constants", |
| "//ios/chrome/browser/shared/ui/util", |
| "//ios/chrome/common/ui/colors", |
| "//ios/chrome/common/ui/util", |
| "//ios/chrome/common/ui/util:dynamic_type_util", |
| ] |
| } |
| |
| source_set("app_internal") { |
| sources = [ |
| "main_application_delegate.h", |
| "main_application_delegate.mm", |
| "main_application_delegate_testing.h", |
| "main_controller.h", |
| "main_controller.mm", |
| "memory_monitor.h", |
| "memory_monitor.mm", |
| "startup_tasks.h", |
| "startup_tasks.mm", |
| ] |
| |
| if (ios_enable_sandbox_dump) { |
| sources += [ |
| "dump_documents_statistics.h", |
| "dump_documents_statistics.mm", |
| ] |
| } |
| |
| deps = [ |
| ":app", |
| ":app_lifetime_observer", |
| ":app_metrics_app_state_agent", |
| ":blocking_scene_commands", |
| ":change_profile_animator", |
| ":change_profile_commands", |
| ":change_profile_continuation", |
| ":enterprise_app_agent", |
| ":fast_app_terminate_buildflags", |
| ":launch_screen_ui", |
| ":mode", |
| ":safe_mode_app_state_agent", |
| ":task_names", |
| ":tests_hook", |
| ":variations_app_state_agent", |
| "//base", |
| "//build:branding_buildflags", |
| "//components/application_locale_storage", |
| "//components/bookmarks/browser", |
| "//components/breadcrumbs/core", |
| "//components/breadcrumbs/core:status", |
| "//components/browser_sync", |
| "//components/browsing_data/core", |
| "//components/component_updater", |
| "//components/component_updater/installer_policies", |
| "//components/crash/core/common", |
| "//components/download/public/background_service:public", |
| "//components/enterprise/idle", |
| "//components/favicon/core", |
| "//components/favicon_base", |
| "//components/handoff", |
| "//components/history/core/browser", |
| "//components/infobars/core", |
| "//components/metrics", |
| "//components/optimization_guide/core:features", |
| "//components/password_manager/core/common", |
| "//components/policy/core/common", |
| "//components/prefs", |
| "//components/prefs/ios", |
| "//components/previous_session_info", |
| "//components/proxy_config", |
| "//components/search_engines", |
| "//components/send_tab_to_self", |
| "//components/signin/internal/identity_manager", |
| "//components/sync", |
| "//components/web_resource", |
| "//ios/chrome/app/application_delegate", |
| "//ios/chrome/app/application_delegate:app_state", |
| "//ios/chrome/app/application_delegate:metrics_mediator", |
| "//ios/chrome/app/application_delegate:startup_information", |
| "//ios/chrome/app/application_delegate:tab_opening", |
| "//ios/chrome/app/application_delegate:url_opener", |
| "//ios/chrome/app/application_delegate:url_opener_params", |
| "//ios/chrome/app/background_refresh", |
| "//ios/chrome/app/profile", |
| "//ios/chrome/app/profile:profile_controller", |
| "//ios/chrome/app/startup", |
| "//ios/chrome/app/startup:ios_enable_sandbox_dump_buildflags", |
| "//ios/chrome/app/startup:startup_basic", |
| "//ios/chrome/app/strings", |
| "//ios/chrome/browser/accessibility/model", |
| "//ios/chrome/browser/appearance/ui_bundled", |
| "//ios/chrome/browser/authentication/ui_bundled", |
| "//ios/chrome/browser/banner_promo/model", |
| "//ios/chrome/browser/bookmarks/model", |
| "//ios/chrome/browser/browsing_data/model", |
| "//ios/chrome/browser/commerce/model/push_notification", |
| "//ios/chrome/browser/content_notification/model:util", |
| "//ios/chrome/browser/content_settings/model", |
| "//ios/chrome/browser/crash_report/model", |
| "//ios/chrome/browser/crash_report/model:model_internal", |
| "//ios/chrome/browser/crash_report/model/breadcrumbs", |
| "//ios/chrome/browser/credential_provider/model:buildflags", |
| "//ios/chrome/browser/cross_platform_promos/model", |
| "//ios/chrome/browser/default_browser/model:features", |
| "//ios/chrome/browser/default_browser/model:utils", |
| "//ios/chrome/browser/default_browser/model/install_attribution", |
| "//ios/chrome/browser/device_orientation/ui_bundled", |
| "//ios/chrome/browser/discover_feed/model:discover_feed_app_agent", |
| "//ios/chrome/browser/download/model", |
| "//ios/chrome/browser/download/model/auto_deletion", |
| "//ios/chrome/browser/download/model/background_service", |
| "//ios/chrome/browser/download/ui", |
| "//ios/chrome/browser/favicon/model", |
| "//ios/chrome/browser/first_run/model", |
| "//ios/chrome/browser/first_run/ui_bundled", |
| "//ios/chrome/browser/first_run/ui_bundled:utils", |
| "//ios/chrome/browser/geolocation/model", |
| "//ios/chrome/browser/history/model", |
| "//ios/chrome/browser/keyboard/ui_bundled", |
| "//ios/chrome/browser/main/model", |
| "//ios/chrome/browser/main/ui_bundled", |
| "//ios/chrome/browser/memory/model", |
| "//ios/chrome/browser/metrics/model", |
| "//ios/chrome/browser/metrics/model:metrics_browser_agent", |
| "//ios/chrome/browser/metrics/model:metrics_internal", |
| "//ios/chrome/browser/ntp/ui_bundled:feature_flags", |
| "//ios/chrome/browser/omaha/model", |
| "//ios/chrome/browser/passwords/model", |
| "//ios/chrome/browser/policy/model", |
| "//ios/chrome/browser/promos_manager/model:factory", |
| "//ios/chrome/browser/push_notification/model:push_notification_delegate", |
| "//ios/chrome/browser/push_notification/model:push_notification_service", |
| "//ios/chrome/browser/push_notification/model:push_notification_util", |
| "//ios/chrome/browser/saved_tab_groups/model", |
| "//ios/chrome/browser/screenshot/model", |
| "//ios/chrome/browser/search_engines/model:search_engines_util", |
| "//ios/chrome/browser/sessions/model:session_restoration_service", |
| "//ios/chrome/browser/sessions/model:session_restoration_service_factory", |
| "//ios/chrome/browser/sessions/model:session_util", |
| "//ios/chrome/browser/share_extension/model:controller", |
| "//ios/chrome/browser/shared/coordinator/scene", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", |
| "//ios/chrome/browser/shared/model/application_context", |
| "//ios/chrome/browser/shared/model/paths", |
| "//ios/chrome/browser/shared/model/prefs:pref_names", |
| "//ios/chrome/browser/shared/model/profile", |
| "//ios/chrome/browser/shared/model/profile:features", |
| "//ios/chrome/browser/shared/model/web_state_list", |
| "//ios/chrome/browser/shared/public/commands", |
| "//ios/chrome/browser/shared/public/features", |
| "//ios/chrome/browser/shared/public/features:system_flags", |
| "//ios/chrome/browser/shared/ui/chrome_overlay_window", |
| "//ios/chrome/browser/shared/ui/table_view", |
| "//ios/chrome/browser/shared/ui/util", |
| "//ios/chrome/browser/signin/model", |
| "//ios/chrome/browser/signin/model:system_identity_manager", |
| "//ios/chrome/browser/sync/model", |
| "//ios/chrome/browser/tab_switcher/ui_bundled/tab_grid", |
| "//ios/chrome/browser/tab_switcher/ui_bundled/tab_grid:tab_grid_ui", |
| "//ios/chrome/browser/tabs/ui_bundled", |
| "//ios/chrome/browser/toolbar/ui_bundled:ui", |
| "//ios/chrome/browser/upgrade/model:public", |
| "//ios/chrome/browser/url_loading/model", |
| "//ios/chrome/browser/variations/model:ios_chrome_ui_string_overrider_factory", |
| "//ios/chrome/browser/voice/model", |
| "//ios/chrome/browser/web/model", |
| "//ios/chrome/browser/web/model/choose_file:choose_file_file_utils", |
| "//ios/chrome/browser/web_state_list/model/web_usage_enabler", |
| "//ios/chrome/browser/webui/ui_bundled:webui_internal", |
| "//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/app_distribution:app_distribution_api", |
| "//ios/public/provider/chrome/browser/memory_experimenter:memory_experimenter_api", |
| "//ios/public/provider/chrome/browser/overrides:overrides_api", |
| "//ios/public/provider/chrome/browser/raccoon:raccoon_api", |
| "//ios/public/provider/chrome/browser/signin:choice_api", |
| "//ios/public/provider/chrome/browser/ui_utils:ui_utils_api", |
| "//ios/public/provider/chrome/browser/user_feedback:user_feedback_api", |
| "//ios/web/common:uikit", |
| "//ios/web/public/webui", |
| "//net", |
| "//rlz/buildflags", |
| "//skia", |
| "//ui/base", |
| "//ui/gfx", |
| "//ui/resources", |
| "//ui/strings:ui_strings", |
| ] |
| |
| if (target_environment != "catalyst") { |
| deps += [ "//ios/chrome/browser/default_browser/model/default_status" ] |
| } |
| |
| if (ios_enable_credential_provider_extension) { |
| deps += [ ":credential_provider_migrator_app_agent" ] |
| } |
| |
| if (enable_rlz) { |
| deps += [ |
| "//components/rlz", |
| "//ios/chrome/browser/rlz", |
| ] |
| } |
| |
| frameworks = [ "MediaPlayer.framework" ] |
| |
| allow_circular_includes_from = |
| [ "//ios/chrome/browser/shared/coordinator/scene" ] |
| } |
| |
| source_set("app_lifetime_observer") { |
| sources = [ "app_lifetime_observer.h" ] |
| frameworks = [ "UIKit.framework" ] |
| } |
| |
| source_set("task_names") { |
| sources = [ |
| "deferred_initialization_task_names.h", |
| "deferred_initialization_task_names.mm", |
| ] |
| } |
| |
| source_set("change_profile_commands") { |
| sources = [ "change_profile_commands.h" ] |
| deps = [ |
| ":change_profile_continuation", |
| "//base", |
| ] |
| } |
| |
| source_set("change_profile_continuation") { |
| sources = [ |
| "change_profile_continuation.h", |
| "change_profile_continuation.mm", |
| ] |
| deps = [ "//base" ] |
| } |
| |
| source_set("change_profile_animator") { |
| sources = [ |
| "change_profile_animator.h", |
| "change_profile_animator.mm", |
| ] |
| deps = [ |
| ":change_profile_commands", |
| ":change_profile_continuation", |
| "//base", |
| "//ios/chrome/app/profile", |
| "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", |
| "//ios/chrome/browser/shared/ui/chrome_overlay_window", |
| ] |
| } |
| |
| source_set("blocking_scene_commands") { |
| sources = [ "blocking_scene_commands.h" ] |
| |
| deps = [ "//base" ] |
| } |
| |
| source_set("mode") { |
| sources = [ "application_mode.h" ] |
| |
| deps = [ "//base" ] |
| } |
| |
| source_set("main") { |
| sources = [ "chrome_main.mm" ] |
| |
| deps = [ |
| ":app_internal", |
| ":ios_force_build_chrome_framework_buildflags", |
| "//base", |
| "//build:blink_buildflags", |
| "//components/component_updater", |
| "//components/crash/core/app", |
| "//components/crash/core/common", |
| "//ios/chrome/app:tests_hook", |
| "//ios/chrome/app/startup:ios_enable_sandbox_dump_buildflags", |
| "//ios/chrome/app/startup:startup_basic", |
| "//ios/chrome/browser/crash_report/model", |
| "//ios/chrome/browser/shared/model/paths", |
| "//ios/chrome/common", |
| "//ios/public/provider/chrome/browser/primes:primes_api", |
| ] |
| if (ios_chrome_privacy_manifest != "") { |
| deps += [ ":privacy_manifest" ] |
| } |
| if (ios_enable_sandbox_dump) { |
| deps += [ "//ios/chrome/app/startup:sandbox_dump" ] |
| } |
| if (ios_chrome_generate_order_file) { |
| deps += [ "//ios/components/order_file" ] |
| } |
| } |
| |
| if (ios_chrome_privacy_manifest != "") { |
| bundle_data("privacy_manifest") { |
| sources = [ ios_chrome_privacy_manifest ] |
| outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] |
| } |
| } |
| |
| source_set("multitasking_test_app_delegate") { |
| 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:app_state", |
| "//ios/chrome/browser/shared/coordinator/scene", |
| "//ios/chrome/browser/shared/ui/chrome_overlay_window", |
| ] |
| } |
| |
| ios_framework_bundle("early_partition_alloc_framework") { |
| output_name = "EarlyMallocZoneRegistration" |
| sources = [ "early_pa_registration.cc" ] |
| info_plist = "//ios/chrome/app/resources/EarlyPAFrameworkInfo.plist" |
| extra_substitutions = |
| [ "BUNDLE_IDENTIFIER=$ios_app_bundle_id_prefix.$output_name" ] |
| |
| deps = [ |
| "//base/allocator:early_zone_registration_apple", |
| "//base/allocator/partition_allocator:buildflags", |
| ] |
| } |
| |
| chrome_app("chrome") { |
| output_name = chromium_short_name |
| |
| entitlements_target = ":entitlements" |
| info_plist_target = ":info_plist" |
| bundle_identifier = "$ios_chromium_bundle_id" |
| if (ios_chrome_orderfile != "") { |
| orderfile_path = ios_chrome_orderfile |
| } |
| |
| bundle_deps = [ |
| "//ios/chrome/app/resources", |
| "//ios/chrome/app/resources:settings_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_application_icons_target_legacy ] |
| bundle_deps += ios_providers_resources_targets |
| } else { |
| _variants = [] |
| foreach(_variant, ios_chrome_app_variants) { |
| _variants += [ |
| { |
| forward_variables_from(_variant, "*", [ "cpe_bundle_deps" ]) |
| if (ios_enable_credential_provider_extension) { |
| if (!defined(bundle_deps)) { |
| bundle_deps = [] |
| } |
| bundle_deps += [ |
| ":credential_provider_extension_bundle_variants_${_variant.name}", |
| ] |
| } |
| }, |
| ] |
| } |
| variants = _variants |
| } |
| |
| xcode_extra_attributes = { |
| SUPPORTS_MACCATALYST = "YES" |
| } |
| |
| deps = [ |
| ":main", |
| |
| # Use the provider API controlled by args.gn. |
| ios_provider_target, |
| ] |
| |
| if (ios_is_perf_test) { |
| deps += [ ":perf_tests_hook" ] |
| } else { |
| deps += [ ":tests_fake_hook" ] |
| } |
| |
| if (current_toolchain == default_toolchain) { |
| if (ios_enable_share_extension) { |
| bundle_deps += [ ":share_extension_bundle" ] |
| } |
| if (ios_enable_open_extension) { |
| bundle_deps += [ ":open_extension_bundle" ] |
| } |
| if (ios_enable_credential_provider_extension) { |
| if (!is_chrome_branded || ios_chrome_app_variants == []) { |
| bundle_deps += [ ":credential_provider_extension_bundle" ] |
| } |
| } |
| if (ios_enable_widget_kit_extension) { |
| bundle_deps += [ ":widget_kit_extension_bundle" ] |
| } |
| if (ios_enable_intents_extension) { |
| bundle_deps += [ ":intents_extension_bundle" ] |
| } |
| if (ios_enable_push_notification_service_extension) { |
| bundle_deps += [ ":push_notification_service_extension_bundle" ] |
| } |
| } |
| |
| extra_substitutions = [ |
| "CHROMIUM_BUNDLE_ID=$ios_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 |
| |
| # Lottie links with GLKit which does not support macCatalyst environment |
| # (see https://crbug.com/1394553 for details of the build failure). This |
| # is a stop-gap solution. |
| if (target_environment == "catalyst" || |
| ios_provider_target != |
| "//ios/chrome/browser/providers:chromium_providers") { |
| assert_no_deps += [ |
| "//ios/third_party/lottie:lottie+bundle", |
| "//ios/third_party/lottie:lottie+link", |
| ] |
| } |
| } |
| |
| if (current_toolchain == default_toolchain && !ios_chrome_generate_order_file) { |
| _extension_toolchain = "${current_toolchain}_app_ext" |
| if (ios_enable_share_extension) { |
| extension_bundle_data("share_extension_bundle") { |
| extension_name = "share_extension.appex" |
| extension_target = |
| "//ios/chrome/share_extension/appex(${_extension_toolchain})" |
| } |
| } |
| |
| if (ios_enable_open_extension) { |
| extension_bundle_data("open_extension_bundle") { |
| extension_name = "open_extension.appex" |
| extension_target = |
| "//ios/chrome/open_extension/appex(${_extension_toolchain})" |
| } |
| } |
| |
| if (ios_enable_credential_provider_extension) { |
| extension_bundle_data("credential_provider_extension_bundle") { |
| extension_name = "credential_provider_extension.appex" |
| extension_target = "//ios/chrome/credential_provider_extension/appex(${_extension_toolchain})" |
| if (is_chrome_branded && ios_chrome_app_variants != []) { |
| variants = ios_chrome_app_variants |
| } |
| } |
| } |
| |
| if (ios_enable_widget_kit_extension) { |
| extension_bundle_data("widget_kit_extension_bundle") { |
| extension_name = "widget_kit_extension.appex" |
| extension_target = |
| "//ios/chrome/widget_kit_extension/appex(${_extension_toolchain})" |
| } |
| } |
| |
| if (ios_enable_intents_extension) { |
| extension_bundle_data("intents_extension_bundle") { |
| extension_name = "intents_extension.appex" |
| extension_target = |
| "//ios/chrome/intents_extension/appex(${_extension_toolchain})" |
| } |
| } |
| |
| if (ios_enable_push_notification_service_extension) { |
| extension_bundle_data("push_notification_service_extension_bundle") { |
| extension_name = "push_notification_service_extension.appex" |
| extension_target = "//ios/chrome/push_notification_service_extension/appex(${_extension_toolchain})" |
| } |
| } |
| } |
| |
| source_set("constants") { |
| sources = [ |
| "background_refresh_constants.h", |
| "background_refresh_constants.mm", |
| ] |
| deps = [ "//base" ] |
| } |