# Copyright 2017 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/config/ios/rules.gni") import("//build/config/locales.gni") import("//build/config/mac/base_rules.gni") import("//build/mac/tweak_info_plist.gni") import("//ios/build/chrome_build.gni") import("//ios/build/config.gni") import("//tools/grit/repack.gni") import("//ios/chrome/tools/strings/generate_localizable_strings.gni") 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/search_widget_extension.appex.entitlements" entitlements_templates = [ "entitlements/external/search_widget_extension.appex.entitlements" ] } ios_appex_bundle("search_widget_extension") { deps = [ ":search_widget", ":system_strings", "resources:quick_action_incognito_search", "resources:quick_action_scan_qr_code", "resources:quick_action_search", "resources:quick_action_voice_search", ] assert_no_deps = ios_extension_assert_no_deps extra_substitutions = [ "CHROME_CHANNEL_SCHEME=$url_channel_scheme", "CHROMIUM_SHORT_NAME=$chromium_short_name", "WIDGET_EXTENSION_BUNDLE_ID=$chromium_bundle_id.TodayExtension", ] entitlements_target = ":entitlements" info_plist_target = ":tweak_info_plist" } source_set("search_widget") { sources = [ "copied_url_view.h", "copied_url_view.mm", "search_action_view.h", "search_action_view.mm", "search_widget_view.h", "search_widget_view.mm", "search_widget_view_controller.h", "search_widget_view_controller.mm", "ui_util.h", "ui_util.mm", ] deps = [ "//base", "//components/open_from_clipboard:open_from_clipboard_impl", "//ios/chrome/common:common_extension", "//ios/chrome/common/app_group", "//ios/chrome/common/ui_util", ] libs = [ "Foundation.framework", "NotificationCenter.framework", "UIKit.framework", ] assert_no_deps = [ "//ios/chrome/browser" ] configs += [ "//build/config/compiler:enable_arc" ] } source_set("unit_tests") { testonly = true sources = [ "search_widget_view_controller_unittest.mm", ] deps = [ ":search_widget", "//testing/gtest", ] configs += [ "//build/config/compiler:enable_arc" ] } repack_locales("packed_resources") { input_locales = ios_packed_locales output_locales = ios_packed_locales_as_mac_outputs source_patterns = [ "$root_gen_dir/ios/search_widget_extension/ios_search_widget_extension_strings_", "$root_gen_dir/ios/search_widget_extension/ios_search_widget_extension_${branding_path_component}_strings_", ] deps = [ "//ios/chrome/search_widget_extension/strings:ios_search_widget_extension_${branding_path_component}_strings", "//ios/chrome/search_widget_extension/strings:ios_search_widget_extension_strings", ] } generate_localizable_strings("system_strings") { visibility = [ ":*" ] _packed_resources_target = ":packed_resources" config_file = "search_widget_extension_localize_strings_config.plist" datapack_dir = get_label_info(_packed_resources_target, "target_gen_dir") packed_locales = ios_packed_locales_as_mac_outputs output_filenames = [ "InfoPlist.strings", "Localizable.strings", ] deps = [ "//ios/chrome/search_widget_extension/strings:ios_search_widget_extension_chromium_strings", # Depends on both branding strings target to ensure the proper .h exists # (the .plist configuration can only reference one of them, and their # content is identical). "//ios/chrome/search_widget_extension/strings:ios_search_widget_extension_google_chrome_strings", _packed_resources_target, ] }