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