BUILD.gn 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. # Copyright 2014 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/config/locales.gni")
  5. import("//testing/libfuzzer/fuzzer_test.gni")
  6. import("//testing/test.gni")
  7. import("//tools/grit/grit_rule.gni")
  8. config("internal_config") {
  9. if (is_clang) {
  10. cflags = [
  11. "-Wno-newline-eof",
  12. # md5.cc uses "register". TODO(thakis): Fix.
  13. "-Wno-deprecated-register",
  14. ]
  15. }
  16. # libaddressinput just says `#include "messages.h"` for grit-generated
  17. # headers.
  18. include_dirs = [ target_gen_dir ]
  19. }
  20. grit("strings") {
  21. source = "chromium/address_input_strings.grd"
  22. outputs = [
  23. "messages.h",
  24. "en_messages.cc",
  25. ]
  26. foreach(locale, all_chrome_locales) {
  27. outputs += [ "address_input_strings_$locale.pak" ]
  28. }
  29. configs = [ ":internal_config" ]
  30. }
  31. config("libaddressinput_config") {
  32. defines = [ "I18N_ADDRESS_VALIDATION_DATA_URL=\"https://chromium-i18n.appspot.com/ssl-aggregate-address/\"" ]
  33. include_dirs = [ "src/cpp/include" ]
  34. }
  35. # This target provides basic functionality which is cooked into the build.
  36. static_library("util") {
  37. sources = [
  38. "chromium/json.cc",
  39. "src/cpp/src/address_data.cc",
  40. "src/cpp/src/address_field.cc",
  41. "src/cpp/src/address_field_util.cc",
  42. "src/cpp/src/address_field_util.h",
  43. "src/cpp/src/address_formatter.cc",
  44. "src/cpp/src/address_metadata.cc",
  45. "src/cpp/src/address_ui.cc",
  46. "src/cpp/src/format_element.cc",
  47. "src/cpp/src/format_element.h",
  48. "src/cpp/src/grit.h",
  49. "src/cpp/src/language.cc",
  50. "src/cpp/src/language.h",
  51. "src/cpp/src/localization.cc",
  52. "src/cpp/src/lookup_key.cc",
  53. "src/cpp/src/lookup_key.h",
  54. "src/cpp/src/region_data_constants.cc",
  55. "src/cpp/src/region_data_constants.h",
  56. "src/cpp/src/rule.cc",
  57. "src/cpp/src/rule.h",
  58. "src/cpp/src/util/cctype_tolower_equal.cc",
  59. "src/cpp/src/util/cctype_tolower_equal.h",
  60. "src/cpp/src/util/json.h",
  61. "src/cpp/src/util/lru_cache_using_std.h",
  62. "src/cpp/src/util/md5.cc",
  63. "src/cpp/src/util/md5.h",
  64. "src/cpp/src/util/re2ptr.h",
  65. "src/cpp/src/util/size.h",
  66. "src/cpp/src/util/string_compare.h",
  67. "src/cpp/src/util/string_split.cc",
  68. "src/cpp/src/util/string_split.h",
  69. "src/cpp/src/util/string_util.cc",
  70. "src/cpp/src/util/string_util.h",
  71. ]
  72. configs -= [ "//build/config/compiler:chromium_code" ]
  73. configs += [
  74. ":internal_config",
  75. "//build/config/compiler:no_chromium_code",
  76. ]
  77. public_configs = [ ":libaddressinput_config" ]
  78. include_dirs = [ "$root_gen_dir/third_party/libaddressinput" ]
  79. deps = [
  80. ":strings",
  81. "//base",
  82. "//base:i18n",
  83. "//third_party/icu",
  84. "//third_party/re2",
  85. ]
  86. }
  87. # This target provides more complicated functionality like pinging servers
  88. # for validation rules.
  89. static_library("libaddressinput") {
  90. sources = [
  91. "chromium/addressinput_util.cc",
  92. "chromium/addressinput_util.h",
  93. "chromium/chrome_address_validator.cc",
  94. "chromium/chrome_address_validator.h",
  95. "chromium/chrome_metadata_source.cc",
  96. "chromium/chrome_metadata_source.h",
  97. "chromium/chrome_storage_impl.cc",
  98. "chromium/chrome_storage_impl.h",
  99. "chromium/fallback_data_store.cc",
  100. "chromium/fallback_data_store.h",
  101. "chromium/storage_test_runner.h",
  102. "chromium/string_compare.cc",
  103. "chromium/trie.cc",
  104. "chromium/trie.h",
  105. "src/cpp/src/address_input_helper.cc",
  106. "src/cpp/src/address_normalizer.cc",
  107. "src/cpp/src/address_problem.cc",
  108. "src/cpp/src/address_validator.cc",
  109. "src/cpp/src/null_storage.cc",
  110. "src/cpp/src/ondemand_supplier.cc",
  111. "src/cpp/src/ondemand_supply_task.cc",
  112. "src/cpp/src/ondemand_supply_task.h",
  113. "src/cpp/src/post_box_matchers.cc",
  114. "src/cpp/src/post_box_matchers.h",
  115. "src/cpp/src/preload_supplier.cc",
  116. "src/cpp/src/region_data.cc",
  117. "src/cpp/src/region_data_builder.cc",
  118. "src/cpp/src/retriever.cc",
  119. "src/cpp/src/retriever.h",
  120. "src/cpp/src/rule_retriever.cc",
  121. "src/cpp/src/rule_retriever.h",
  122. "src/cpp/src/validating_storage.cc",
  123. "src/cpp/src/validating_storage.h",
  124. "src/cpp/src/validating_util.cc",
  125. "src/cpp/src/validating_util.h",
  126. "src/cpp/src/validation_task.cc",
  127. "src/cpp/src/validation_task.h",
  128. "src/cpp/test/fake_storage.h",
  129. "src/cpp/test/mock_source.h",
  130. "src/cpp/test/testdata_source.h",
  131. ]
  132. configs -= [ "//build/config/compiler:chromium_code" ]
  133. configs += [
  134. ":internal_config",
  135. "//build/config/compiler:no_chromium_code",
  136. ]
  137. public_configs = [ ":libaddressinput_config" ]
  138. deps = [
  139. ":strings",
  140. ":util",
  141. "//base",
  142. "//base:i18n",
  143. "//components/prefs",
  144. "//net",
  145. "//services/network/public/cpp",
  146. "//third_party/icu",
  147. "//third_party/re2",
  148. ]
  149. }
  150. if (is_ios) {
  151. bundle_data("countryinfo_test_bundle_data") {
  152. testonly = true
  153. sources = [ "//third_party/libaddressinput/src/testdata/countryinfo.txt" ]
  154. outputs = [ "{{bundle_resources_dir}}/" +
  155. "{{source_root_relative_dir}}/{{source_file_part}}" ]
  156. }
  157. }
  158. # This target provides utilities for tests of libaddressinput.
  159. source_set("test_support") {
  160. testonly = true
  161. sources = [
  162. "src/cpp/test/fake_storage.cc",
  163. "src/cpp/test/mock_source.cc",
  164. "src/cpp/test/testdata_source.cc",
  165. ]
  166. configs -= [ "//build/config/compiler:chromium_code" ]
  167. configs += [
  168. ":internal_config",
  169. "//build/config/compiler:no_chromium_code",
  170. ]
  171. defines = [ "TEST_DATA_DIR=\"src/third_party/libaddressinput/src/testdata\"" ]
  172. data = [ "//third_party/libaddressinput/src/testdata/" ]
  173. include_dirs = [ "src/cpp/src" ]
  174. deps = [ ":libaddressinput" ]
  175. if (is_ios) {
  176. deps += [ ":countryinfo_test_bundle_data" ]
  177. }
  178. }
  179. test("libaddressinput_unittests") {
  180. sources = [
  181. "chromium/addressinput_util_unittest.cc",
  182. "chromium/chrome_address_validator_unittest.cc",
  183. "chromium/chrome_metadata_source_unittest.cc",
  184. "chromium/chrome_storage_impl_unittest.cc",
  185. "chromium/fallback_data_store_unittest.cc",
  186. "chromium/storage_test_runner.cc",
  187. "chromium/storage_test_runner.h",
  188. "chromium/string_compare_unittest.cc",
  189. "chromium/trie_unittest.cc",
  190. "src/cpp/test/address_data_test.cc",
  191. "src/cpp/test/address_field_test.cc",
  192. "src/cpp/test/address_field_util_test.cc",
  193. "src/cpp/test/address_formatter_test.cc",
  194. "src/cpp/test/address_input_helper_test.cc",
  195. "src/cpp/test/address_metadata_test.cc",
  196. "src/cpp/test/address_normalizer_test.cc",
  197. "src/cpp/test/address_problem_test.cc",
  198. "src/cpp/test/address_ui_test.cc",
  199. "src/cpp/test/address_validator_test.cc",
  200. "src/cpp/test/fake_storage_test.cc",
  201. "src/cpp/test/format_element_test.cc",
  202. "src/cpp/test/language_test.cc",
  203. "src/cpp/test/localization_test.cc",
  204. "src/cpp/test/lookup_key_test.cc",
  205. "src/cpp/test/null_storage_test.cc",
  206. "src/cpp/test/ondemand_supply_task_test.cc",
  207. "src/cpp/test/post_box_matchers_test.cc",
  208. "src/cpp/test/preload_supplier_test.cc",
  209. "src/cpp/test/region_data_builder_test.cc",
  210. "src/cpp/test/region_data_constants_test.cc",
  211. "src/cpp/test/region_data_test.cc",
  212. "src/cpp/test/retriever_test.cc",
  213. "src/cpp/test/rule_retriever_test.cc",
  214. "src/cpp/test/rule_test.cc",
  215. "src/cpp/test/supplier_test.cc",
  216. "src/cpp/test/testdata_source_test.cc",
  217. "src/cpp/test/util/json_test.cc",
  218. "src/cpp/test/util/md5_unittest.cc",
  219. "src/cpp/test/util/string_compare_test.cc",
  220. "src/cpp/test/util/string_split_unittest.cc",
  221. "src/cpp/test/util/string_util_test.cc",
  222. "src/cpp/test/validating_storage_test.cc",
  223. "src/cpp/test/validating_util_test.cc",
  224. "src/cpp/test/validation_task_test.cc",
  225. ]
  226. configs -= [ "//build/config/compiler:chromium_code" ]
  227. configs += [
  228. ":internal_config",
  229. "//build/config/compiler:no_chromium_code",
  230. ]
  231. include_dirs = [ "src/cpp/src" ]
  232. # TODO(crbug.com/936653): Remove this after fixing deprecated API usage.
  233. if (is_clang) {
  234. cflags = [ "-Wno-deprecated-declarations" ]
  235. }
  236. deps = [
  237. ":libaddressinput",
  238. ":strings",
  239. ":test_support",
  240. ":util",
  241. "//base/test:run_all_unittests",
  242. "//base/test:test_support",
  243. "//components/prefs",
  244. "//mojo/core/embedder",
  245. "//net:test_support",
  246. "//services/network:test_support",
  247. "//testing/gtest",
  248. ]
  249. }
  250. fuzzer_test("libaddressinput_parse_address_fields_fuzzer") {
  251. sources = [ "fuzz/parse_address_fields_fuzzer.cc" ]
  252. deps = [
  253. ":libaddressinput",
  254. ":util",
  255. ]
  256. dict = "//third_party/libaddressinput/fuzz/data/require.dict"
  257. }
  258. fuzzer_test("libaddressinput_parse_format_rule_fuzzer") {
  259. sources = [ "fuzz/parse_format_rule_fuzzer.cc" ]
  260. deps = [
  261. ":libaddressinput",
  262. ":util",
  263. ]
  264. dict = "//third_party/libaddressinput/fuzz/data/fmt.dict"
  265. }
  266. fuzzer_test("libaddressinput_address_formatter_fuzzer") {
  267. sources = [ "fuzz/address_formatter_fuzzer.cc" ]
  268. deps = [
  269. ":libaddressinput",
  270. ":util",
  271. ]
  272. }