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