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.
4
5import("//url/config.gni")
6
7# Sets the USE_ICU_ALTERNATIVES_ON_ANDROID define based on the build flag.
8config("url_icu_config") {
9  if (use_icu_alternatives_on_android) {
10    defines = [ "USE_ICU_ALTERNATIVES_ON_ANDROID=1" ]
11  }
12}
13
14component("url") {
15  if (is_win) {
16    # Don't conflict with Windows' "url.dll".
17    output_name = "url_lib"
18  }
19  sources = [
20    "android/url_jni_registrar.cc",
21    "android/url_jni_registrar.h",
22    "gurl.cc",
23    "gurl.h",
24    "origin.cc",
25    "origin.h",
26    "third_party/mozilla/url_parse.cc",
27    "third_party/mozilla/url_parse.h",
28    "url_canon.h",
29    "url_canon_etc.cc",
30    "url_canon_filesystemurl.cc",
31    "url_canon_fileurl.cc",
32    "url_canon_host.cc",
33    "url_canon_icu.cc",
34    "url_canon_icu.h",
35    "url_canon_internal.cc",
36    "url_canon_internal.h",
37    "url_canon_internal_file.h",
38    "url_canon_ip.cc",
39    "url_canon_ip.h",
40    "url_canon_mailtourl.cc",
41    "url_canon_path.cc",
42    "url_canon_pathurl.cc",
43    "url_canon_query.cc",
44    "url_canon_relative.cc",
45    "url_canon_stdstring.cc",
46    "url_canon_stdstring.h",
47    "url_canon_stdurl.cc",
48    "url_constants.cc",
49    "url_constants.h",
50    "url_export.h",
51    "url_file.h",
52    "url_parse_file.cc",
53    "url_parse_internal.h",
54    "url_util.cc",
55    "url_util.h",
56  ]
57
58  defines = [ "URL_IMPLEMENTATION" ]
59
60  configs += [ ":url_icu_config" ]
61
62  if (is_win) {
63    cflags = [
64      "/wd4267", # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
65    ]
66  }
67
68  deps = [
69    "//base",
70    "//base/third_party/dynamic_annotations",
71    "//third_party/icu:icudata",
72    "//third_party/icu",
73  ]
74
75  if (use_icu_alternatives_on_android) {
76    sources -= [
77      "url_canon_icu.cc",
78      "url_canon_icu.h",
79    ]
80    deps -= [
81      "//third_party/icu:icudata",
82      "//third_party/icu",
83    ]
84
85    sources += [
86      "url_canon_icu_alternatives_android.cc",
87      "url_canon_icu_alternatives_android.h",
88    ]
89  }
90}
91
92# TODO(dpranke): crbug.com/360936. Get this to build and run on Android.
93if (!is_android) {
94  test("url_unittests") {
95    sources = [
96      "gurl_unittest.cc",
97      "origin_unittest.cc",
98      "url_canon_icu_unittest.cc",
99      "url_canon_unittest.cc",
100      "url_parse_unittest.cc",
101      "url_test_utils.h",
102      "url_util_unittest.cc",
103    ]
104
105    #if (is_posix && !is_mac && !is_ios) {
106    #  if (use_allocator!="none") {
107    #    deps += "//base/allocator"
108    #  }
109    #}
110
111    if (is_win) {
112      cflags = [
113        # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
114        "/wd4267",
115      ]
116    }
117
118    deps = [
119      ":url",
120      "//base/test:run_all_unittests",
121      "//testing/gtest",
122      "//third_party/icu:icuuc",
123    ]
124
125    if (use_icu_alternatives_on_android) {
126      sources -= [
127        "url_canon_icu_unittest.cc",
128      ]
129      deps -= [
130        "//third_party/icu:icuuc",
131      ]
132    }
133  }
134}
135