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/test.gni")
7 import("//testing/libfuzzer/fuzzer_test.gni")
11 import("//build/config/android/rules.gni")
14 buildflag_header("url_features") {
15 header = "url_features.h"
16 flags = [ "USE_PLATFORM_ICU_ALTERNATIVES=$use_platform_icu_alternatives" ]
25 "scheme_host_port.cc",
27 "third_party/mozilla/url_parse.cc",
28 "third_party/mozilla/url_parse.h",
32 "url_canon_filesystemurl.cc",
33 "url_canon_fileurl.cc",
35 "url_canon_internal.cc",
36 "url_canon_internal.h",
37 "url_canon_internal_file.h",
40 "url_canon_mailtourl.cc",
42 "url_canon_pathurl.cc",
44 "url_canon_relative.cc",
45 "url_canon_stdstring.cc",
46 "url_canon_stdstring.h",
47 "url_canon_stdurl.cc",
53 "url_parse_internal.h",
56 "url_util_internal.h",
59 defines = [ "URL_IMPLEMENTATION" ]
62 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
63 "//build/config/compiler:no_size_t_to_int_warning",
68 "//base/third_party/dynamic_annotations",
72 # Don't conflict with Windows' "url.dll".
73 output_name = "url_lib"
77 if (use_platform_icu_alternatives) {
79 sources += [ "url_canon_icu_alternatives_android.cc" ]
85 "//base/third_party/dynamic_annotations",
88 sources += [ "url_canon_icu_alternatives_ios.mm" ]
91 "ICU alternative is not implemented for platform: " + target_os)
99 deps += [ "//third_party/icu" ]
104 android_library("url_java") {
105 java_files = [ "android/java/src/org/chromium/url/IDNStringUtil.java" ]
111 generate_jni("url_jni_headers") {
113 "android/java/src/org/chromium/url/IDNStringUtil.java",
119 test("url_unittests") {
122 "origin_unittest.cc",
123 "run_all_unittests.cc",
124 "scheme_host_port_unittest.cc",
125 "url_canon_icu_unittest.cc",
126 "url_canon_unittest.cc",
127 "url_parse_unittest.cc",
129 "url_util_unittest.cc",
135 "//base/test:test_support",
140 sources += [ "mojom/url_gurl_mojom_traits_unittest.cc" ]
143 if (use_platform_icu_alternatives) {
144 # Unit tests that are not supported by the current ICU alternatives on Android.
147 "url_canon_icu_unittest.cc",
148 "url_canon_unittest.cc",
150 deps += [ ":url_java" ]
153 # Unit tests that are not supported by the current ICU alternatives on iOS.
156 "origin_unittest.cc",
157 "scheme_host_port_unittest.cc",
158 "url_canon_icu_unittest.cc",
159 "url_canon_unittest.cc",
162 } else { # !use_platform_icu_alternatives
163 deps += [ "//third_party/icu:icuuc" ]
166 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
167 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
172 "//mojo/edk/test:test_support",
173 "//url/mojom:test_url_mojom_gurl",
178 fuzzer_test("gurl_fuzzer") {
187 dict = "gurl_fuzzer.dict"