1 # Copyright (c) 2013 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.
5 import("//build/buildflag_header.gni")
6 import("//testing/libfuzzer/fuzzer_test.gni")
7 import("//testing/test.gni")
11 import("//build/config/android/config.gni")
12 import("//build/config/android/rules.gni")
15 buildflag_header("buildflags") {
16 header = "buildflags.h"
17 flags = [ "USE_PLATFORM_ICU_ALTERNATIVES=$use_platform_icu_alternatives" ]
26 "scheme_host_port.cc",
28 "third_party/mozilla/url_parse.cc",
29 "third_party/mozilla/url_parse.h",
33 "url_canon_filesystemurl.cc",
34 "url_canon_fileurl.cc",
36 "url_canon_internal.cc",
37 "url_canon_internal.h",
38 "url_canon_internal_file.h",
41 "url_canon_mailtourl.cc",
43 "url_canon_pathurl.cc",
45 "url_canon_relative.cc",
46 "url_canon_stdstring.cc",
47 "url_canon_stdstring.h",
48 "url_canon_stdurl.cc",
53 "url_parse_internal.h",
56 "url_util_internal.h",
59 defines = [ "IS_URL_IMPL" ]
63 "//base/third_party/dynamic_annotations",
68 # Don't conflict with Windows' "url.dll".
69 output_name = "url_lib"
73 if (use_platform_icu_alternatives) {
75 sources += [ "url_idna_icu_alternatives_android.cc" ]
81 "//base/third_party/dynamic_annotations",
84 sources += [ "url_idna_icu_alternatives_ios.mm" ]
87 "ICU alternative is not implemented for platform: " + target_os)
96 deps += [ "//third_party/icu" ]
101 source_set("gurl_android") {
103 "android/gurl_android.cc",
104 "android/gurl_android.h",
105 "android/parsed_android.cc",
106 "android/parsed_android.h",
116 static_library("origin_android") {
117 sources = [ "android/origin_android.cc" ]
123 "//url/mojom:url_mojom_origin",
127 android_library("url_java") {
128 sources = [ "android/java/src/org/chromium/url/IDNStringUtil.java" ]
129 deps = [ "//base:base_java" ]
132 android_library("gurl_java") {
134 "android/java/src/org/chromium/url/GURL.java",
135 "android/java/src/org/chromium/url/Parsed.java",
136 "android/java/src/org/chromium/url/URI.java",
142 annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
145 android_library("origin_java") {
146 sources = [ "android/java/src/org/chromium/url/Origin.java" ]
149 "//url/mojom:url_mojom_origin_java",
153 generate_jni("url_jni_headers") {
155 "android/java/src/org/chromium/url/IDNStringUtil.java",
156 "android/java/src/org/chromium/url/Origin.java",
160 generate_jni("gurl_jni_headers") {
162 "android/java/src/org/chromium/url/GURL.java",
163 "android/java/src/org/chromium/url/Parsed.java",
168 test("url_unittests") {
171 "origin_unittest.cc",
172 "run_all_unittests.cc",
173 "scheme_host_port_unittest.cc",
174 "url_canon_icu_unittest.cc",
175 "url_canon_unittest.cc",
176 "url_parse_unittest.cc",
178 "url_util_unittest.cc",
184 "//base/test:test_support",
190 sources += [ "mojom/url_gurl_mojom_traits_unittest.cc" ]
193 if (use_platform_icu_alternatives) {
194 # Unit tests that are not supported by the current ICU alternatives on Android.
197 "url_canon_icu_unittest.cc",
198 "url_canon_unittest.cc",
200 deps += [ ":url_java" ]
203 # Unit tests that are not supported by the current ICU alternatives on iOS.
206 "origin_unittest.cc",
207 "scheme_host_port_unittest.cc",
208 "url_canon_icu_unittest.cc",
209 "url_canon_unittest.cc",
212 } else { # !use_platform_icu_alternatives
213 deps += [ "//third_party/icu:icuuc" ]
218 "//mojo/core/embedder",
219 "//url/mojom:test_url_mojom_gurl",
223 sources += [ "android/gurl_android_unittest.cc" ]
228 ":native_j_unittests_jni_headers",
233 test("url_perftests") {
235 "run_all_perftests.cc",
236 "url_parse_perftest.cc",
242 "//base/test:test_support",
247 fuzzer_test("gurl_fuzzer") {
248 sources = [ "gurl_fuzzer.cc" ]
254 dict = "gurl_fuzzer.dict"
258 android_library("gurl_javatests") {
261 "android/native_java_unittests/src/org/chromium/url/GURLJavaTest.java",
267 "//base:base_java_test_support",
269 "//third_party/android_support_test_runner:rules_java",
270 "//third_party/android_support_test_runner:runner_java",
271 "//third_party/junit",
272 "//third_party/mockito:mockito_java",
274 annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
277 # See https://bugs.chromium.org/p/chromium/issues/detail?id=908819 for why we
278 # can't put 'java' in the name here.
279 generate_jni("native_j_unittests_jni_headers") {
282 "android/native_java_unittests/src/org/chromium/url/GURLJavaTest.java",