blob: 3c40ff9ded5a2d6e4a2b82a43e5815b0c207bd05 [file] [log] [blame]
# 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" ]
}