Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / url / BUILD.gn
index 131bfd5..3736b9c 100644 (file)
@@ -2,12 +2,26 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+declare_args() {
+  # Switches to using platform functions instead of ICU on Android.
+  use_icu_alternatives_on_android = false
+}
+
+# Sets the USE_ICU_ALTERNATIVES_ON_ANDROID define based on the build flag.
+config("url_icu_config") {
+  if (use_icu_alternatives_on_android) {
+    defines = [ "USE_ICU_ALTERNATIVES_ON_ANDROID=1" ]
+  }
+}
+
 component("url") {
   if (is_win) {
     # Don't conflict with Windows' "url.dll".
     output_name = "url_lib"
   }
   sources = [
+    "android/url_jni_registrar.cc",
+    "android/url_jni_registrar.h",
     "gurl.cc",
     "gurl.h",
     "third_party/mozilla/url_parse.cc",
@@ -32,6 +46,8 @@ component("url") {
     "url_canon_stdstring.cc",
     "url_canon_stdstring.h",
     "url_canon_stdurl.cc",
+    "url_constants.cc",
+    "url_constants.h",
     "url_export.h",
     "url_file.h",
     "url_parse_file.cc",
@@ -42,6 +58,8 @@ component("url") {
 
   defines = [ "URL_IMPLEMENTATION" ]
 
+  configs += [ ":url_icu_config" ]
+
   # if (is_win) {
   #   TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
   #   'msvs_disabled_warnings': [ 4267, ]
@@ -50,37 +68,63 @@ component("url") {
   deps = [
     "//base",
     "//third_party/icu:icudata",
-    "//third_party/icu:icui18n",
-    "//third_party/icu:icuuc",
+    "//third_party/icu",
   ]
+
+  if (use_icu_alternatives_on_android) {
+    sources -= [
+      "url_canon_icu.cc",
+      "url_canon_icu.h",
+    ]
+    deps -= [
+      "//third_party/icu:icudata",
+      "//third_party/icu",
+    ]
+
+    sources += [
+      "url_canon_icu_alternatives_android.cc",
+      "url_canon_icu_alternatives_android.h",
+    ]
+  }
 }
 
-test("url_unittests") {
-  sources = [
-    "gurl_unittest.cc",
-    "url_canon_unittest.cc",
-    "url_parse_unittest.cc",
-    "url_test_utils.h",
-    "url_util_unittest.cc",
-  ]
+# TODO(dpranke): crbug.com/360936. Get this to build and run on Android.
+if (!is_android) {
+  test("url_unittests") {
+    sources = [
+      "gurl_unittest.cc",
+      "url_canon_icu_unittest.cc",
+      "url_canon_unittest.cc",
+      "url_parse_unittest.cc",
+      "url_test_utils.h",
+      "url_util_unittest.cc",
+    ]
 
-  #if (is_posix && !is_mac && !is_ios) {
-  #  # TODO(dmikurube): Kill linux_use_tcmalloc. http://crbug.com/345554
-  #  if ((use_allocator!="none" && use_allocator!="see_use_tcmalloc") || (use_allocator=="see_use_tcmalloc" && linux_use_tcmalloc) {
-  #    deps += "//base/allocator"
-  #  }
-  #}
+    #if (is_posix && !is_mac && !is_ios) {
+    #  if (use_allocator!="none") {
+    #    deps += "//base/allocator"
+    #  }
+    #}
 
-  # if (is_win) {
-  #   TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-  #   'msvs_disabled_warnings': [ 4267, ]
-  # }
+    # if (is_win) {
+    #   TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
+    #   'msvs_disabled_warnings': [ 4267, ]
+    # }
 
-  deps = [
-    ":url",
-    "//base:base_i18n",
-    "//base/test:run_all_unittests",
-    "//testing/gtest",
-    "//third_party/icu:icuuc",
-  ]
+    deps = [
+      ":url",
+      "//base/test:run_all_unittests",
+      "//testing/gtest",
+      "//third_party/icu:icuuc",
+    ]
+
+    if (use_icu_alternatives_on_android) {
+      sources -= [
+        "url_canon_icu_unittest.cc",
+      ]
+      deps -= [
+        "//third_party/icu:icuuc",
+      ]
+    }
+  }
 }