Home | History | Annotate | Download | only in url
      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 import("//url/config.gni")
      6 
      7 # Sets the USE_ICU_ALTERNATIVES_ON_ANDROID define based on the build flag.
      8 config("url_icu_config") {
      9   if (use_icu_alternatives_on_android) {
     10     defines = [ "USE_ICU_ALTERNATIVES_ON_ANDROID=1" ]
     11   }
     12 }
     13 
     14 component("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.
     93 if (!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