BUILD.gn 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. # Copyright 2020 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//build/apple/compile_entitlements.gni")
  5. import("//build/apple/tweak_info_plist.gni")
  6. import("//build/buildflag_header.gni")
  7. import("//build/config/ios/rules.gni")
  8. import("//build/config/locales.gni")
  9. import("//ios/build/chrome_build.gni")
  10. import("//ios/build/config.gni")
  11. import("//ios/chrome/extension_repack.gni")
  12. import("//ios/chrome/tools/strings/generate_localizable_strings.gni")
  13. import("//ios/public/provider/chrome/browser/build_config.gni")
  14. assert(
  15. ios_enable_credential_provider_extension,
  16. "ios_enable_credential_provider_extension must be true to depend on //ios/chrome/credential_provider_extension")
  17. group("resources") {
  18. deps = [ "//ios/chrome/credential_provider_extension/strings" ]
  19. }
  20. extension_repack_all_locales("packed_resources") {
  21. extension = "credential_provider_extension"
  22. input_locales = platform_pak_locales
  23. output_locales = locales_as_apple_outputs
  24. }
  25. tweak_info_plist("tweak_info_plist") {
  26. info_plist = "Info.plist"
  27. }
  28. compile_entitlements("entitlements") {
  29. substitutions = [
  30. "IOS_BUNDLE_ID_PREFIX=$ios_app_bundle_id_prefix",
  31. "CHROMIUM_BUNDLE_ID=$chromium_bundle_id",
  32. ]
  33. output_name =
  34. "$target_gen_dir/credential_provider_extension.appex.entitlements"
  35. entitlements_templates = [
  36. "entitlements/external/credential_provider_extension.appex.entitlements",
  37. ]
  38. if (ios_chrome_cpe_entitlements_additions != []) {
  39. entitlements_templates += ios_chrome_cpe_entitlements_additions
  40. }
  41. }
  42. ios_appex_bundle("credential_provider_extension") {
  43. sources = [
  44. "credential_provider_view_controller.h",
  45. "credential_provider_view_controller.mm",
  46. ]
  47. configs += [ "//build/config/compiler:enable_arc" ]
  48. deps = [
  49. ":account_verification_provider",
  50. ":metrics_util",
  51. ":password_util",
  52. ":reauthentication_handler",
  53. ":system_strings",
  54. "//base",
  55. "//ios/chrome/common/app_group",
  56. "//ios/chrome/common/app_group:client",
  57. "//ios/chrome/common/crash_report",
  58. "//ios/chrome/common/credential_provider",
  59. "//ios/chrome/common/credential_provider:ui",
  60. "//ios/chrome/common/ui/colors",
  61. "//ios/chrome/common/ui/confirmation_alert",
  62. "//ios/chrome/common/ui/reauthentication",
  63. "//ios/chrome/credential_provider_extension/resources",
  64. "//ios/chrome/credential_provider_extension/ui",
  65. "//ios/chrome/credential_provider_extension/ui:feature_flags",
  66. ]
  67. bundle_deps_filter = [ "//third_party/icu:icudata" ]
  68. assert_no_deps = ios_extension_assert_no_deps
  69. frameworks = [
  70. "AuthenticationServices.framework",
  71. "Foundation.framework",
  72. "UIKit.framework",
  73. ]
  74. extra_substitutions = [
  75. "CHROME_CHANNEL_SCHEME=$url_channel_scheme",
  76. "CHROMIUM_SHORT_NAME=$chromium_short_name",
  77. "CHROMIUM_BUNDLE_ID=$chromium_bundle_id",
  78. ]
  79. entitlements_target = ":entitlements"
  80. info_plist_target = ":tweak_info_plist"
  81. bundle_identifier = "$chromium_bundle_id.CredentialProviderExtension"
  82. }
  83. generate_localizable_strings("system_strings") {
  84. visibility = [
  85. ":*",
  86. "//ios/showcase:*",
  87. ]
  88. _packed_resources_target = ":packed_resources"
  89. config_file = "credential_provider_extension_localize_strings_config.plist"
  90. datapack_dir = get_label_info(_packed_resources_target, "target_gen_dir")
  91. packed_locales = locales_as_apple_outputs
  92. output_filenames = [ "Localizable.strings" ]
  93. deps = [ _packed_resources_target ]
  94. }
  95. source_set("unit_tests") {
  96. testonly = true
  97. sources = [ "metrics_util_unittest.mm" ]
  98. deps = [
  99. ":metrics_util",
  100. "//base",
  101. "//base/test:test_support",
  102. "//ios/chrome/common/app_group",
  103. "//testing/gtest",
  104. ]
  105. configs += [ "//build/config/compiler:enable_arc" ]
  106. }
  107. source_set("reauthentication_handler") {
  108. sources = [
  109. "reauthentication_handler.h",
  110. "reauthentication_handler.mm",
  111. ]
  112. configs += [ "//build/config/compiler:enable_arc" ]
  113. deps = [
  114. "//base",
  115. "//ios/chrome/common/app_group",
  116. "//ios/chrome/common/app_group:command",
  117. "//ios/chrome/common/ui/reauthentication",
  118. ]
  119. }
  120. buildflag_header("password_spec_fetcher_buildflags") {
  121. header = "password_spec_fetcher_buildflags.h"
  122. flags = [ "GOOGLE_API_KEY=@\"$ios_credential_provider_extension_api_key\"" ]
  123. }
  124. source_set("password_util") {
  125. sources = [
  126. "password_util.h",
  127. "password_util.mm",
  128. ]
  129. configs += [ "//build/config/compiler:enable_arc" ]
  130. deps = [
  131. "//base",
  132. "//ios/chrome/common/app_group",
  133. "//ios/chrome/credential_provider_extension:metrics_util",
  134. "//ios/components/credential_provider_extension:password_util",
  135. ]
  136. frameworks = [ "Foundation.framework" ]
  137. }
  138. source_set("metrics_util") {
  139. sources = [
  140. "metrics_util.h",
  141. "metrics_util.mm",
  142. ]
  143. configs += [ "//build/config/compiler:enable_arc" ]
  144. deps = [
  145. "//base",
  146. "//ios/chrome/common/app_group",
  147. ]
  148. frameworks = [ "Foundation.framework" ]
  149. }
  150. source_set("account_verification_provider") {
  151. public_deps = [ ":account_verification_provider_header" ]
  152. deps = [ ios_account_verification_provider_target ]
  153. assert_no_deps = [ "//ios/chrome/browser/*" ]
  154. configs += [ "//build/config/compiler:enable_arc" ]
  155. frameworks = [ "Foundation.framework" ]
  156. }
  157. source_set("account_verification_provider_header") {
  158. sources = [ "account_verification_provider.h" ]
  159. assert_no_deps = [ "//ios/chrome/browser/*" ]
  160. configs += [ "//build/config/compiler:enable_arc" ]
  161. frameworks = [ "Foundation.framework" ]
  162. }
  163. source_set("account_verification_provider_implementation") {
  164. sources = [ "account_verification_provider.mm" ]
  165. deps = [ ":account_verification_provider_header" ]
  166. assert_no_deps = [ "//ios/chrome/browser/*" ]
  167. configs += [ "//build/config/compiler:enable_arc" ]
  168. frameworks = [ "Foundation.framework" ]
  169. }