chromium/ios/chrome/share_extension/appex/BUILD.gn

# Copyright 2023 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/config/ios/rules.gni")
import("//ios/build/chrome_build.gni")
import("//ios/build/config.gni")

assert(
    ios_enable_share_extension,
    "ios_enable_share_extension must be true to depend on //ios/chrome/share_extension")

tweak_info_plist("tweak_info_plist") {
  info_plist = "Info.plist"
}

compile_entitlements("entitlements") {
  substitutions = [ "IOS_BUNDLE_ID_PREFIX=$ios_app_bundle_id_prefix" ]
  output_name = "$target_gen_dir/share_extension.appex.entitlements"
  entitlements_templates =
      [ "entitlements/external/share_extension.appex.entitlements" ]
}

ios_appex_bundle("appex") {
  output_name = "share_extension"
  deps = [ "//ios/chrome/share_extension:share" ]
  if (ios_app_extension_privacy_manifest != "") {
    deps += [ ":privacy_manifest" ]
  }

  bundle_deps_filter = [ "//third_party/icu:icudata" ]
  assert_no_deps = ios_extension_assert_no_deps

  extra_substitutions = [
    "CHROME_CHANNEL_SCHEME=$url_channel_scheme",
    "CHROMIUM_SHORT_NAME=$chromium_short_name",
  ]

  entitlements_target = ":entitlements"
  info_plist_target = ":tweak_info_plist"
  bundle_identifier = "$ios_chromium_bundle_id.ShareExtension"
}

if (ios_app_extension_privacy_manifest != "") {
  bundle_data("privacy_manifest") {
    sources = [ ios_app_extension_privacy_manifest ]
    outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
  }
}