| Index: url/BUILD.gn
|
| diff --git a/url/BUILD.gn b/url/BUILD.gn
|
| index 361c516fd28584324eb085477122423c0db687df..764e3a9b5e96d14df9e844d3cba71122d41130ea 100644
|
| --- a/url/BUILD.gn
|
| +++ b/url/BUILD.gn
|
| @@ -2,60 +2,57 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| +import("//build/buildflag_header.gni")
|
| import("//testing/test.gni")
|
| +import("features.gni")
|
|
|
| if (is_android) {
|
| import("//build/config/android/rules.gni")
|
| }
|
|
|
| -# Shared sources between url and url_lib_use_icu_alternatives_on_android.
|
| -url_shared_sources = [
|
| - "gurl.cc",
|
| - "gurl.h",
|
| - "origin.cc",
|
| - "origin.h",
|
| - "scheme_host_port.cc",
|
| - "scheme_host_port.h",
|
| - "third_party/mozilla/url_parse.cc",
|
| - "third_party/mozilla/url_parse.h",
|
| - "url_canon.h",
|
| - "url_canon_etc.cc",
|
| - "url_canon_filesystemurl.cc",
|
| - "url_canon_fileurl.cc",
|
| - "url_canon_host.cc",
|
| - "url_canon_internal.cc",
|
| - "url_canon_internal.h",
|
| - "url_canon_internal_file.h",
|
| - "url_canon_ip.cc",
|
| - "url_canon_ip.h",
|
| - "url_canon_mailtourl.cc",
|
| - "url_canon_path.cc",
|
| - "url_canon_pathurl.cc",
|
| - "url_canon_query.cc",
|
| - "url_canon_relative.cc",
|
| - "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",
|
| - "url_parse_internal.h",
|
| - "url_util.cc",
|
| - "url_util.h",
|
| -]
|
| +buildflag_header("url_features") {
|
| + header = "url_features.h"
|
| + flags = [ "USE_PLATFORM_ICU_ALTERNATIVES=$use_platform_icu_alternatives" ]
|
| +}
|
|
|
| component("url") {
|
| - sources = url_shared_sources + [
|
| - "url_canon_icu.cc",
|
| - "url_canon_icu.h",
|
| - ]
|
| + sources = [
|
| + "gurl.cc",
|
| + "gurl.h",
|
| + "origin.cc",
|
| + "origin.h",
|
| + "scheme_host_port.cc",
|
| + "scheme_host_port.h",
|
| + "third_party/mozilla/url_parse.cc",
|
| + "third_party/mozilla/url_parse.h",
|
| + "url_canon.h",
|
| + "url_canon_etc.cc",
|
| + "url_canon_filesystemurl.cc",
|
| + "url_canon_fileurl.cc",
|
| + "url_canon_host.cc",
|
| + "url_canon_internal.cc",
|
| + "url_canon_internal.h",
|
| + "url_canon_internal_file.h",
|
| + "url_canon_ip.cc",
|
| + "url_canon_ip.h",
|
| + "url_canon_mailtourl.cc",
|
| + "url_canon_path.cc",
|
| + "url_canon_pathurl.cc",
|
| + "url_canon_query.cc",
|
| + "url_canon_relative.cc",
|
| + "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",
|
| + "url_parse_internal.h",
|
| + "url_util.cc",
|
| + "url_util.h",
|
| + ]
|
|
|
| - if (is_win) {
|
| - # Don't conflict with Windows' "url.dll".
|
| - output_name = "url_lib"
|
| - }
|
| defines = [ "URL_IMPLEMENTATION" ]
|
|
|
| configs += [
|
| @@ -66,9 +63,43 @@ component("url") {
|
| deps = [
|
| "//base",
|
| "//base/third_party/dynamic_annotations",
|
| - "//third_party/icu",
|
| - "//third_party/icu:icudata",
|
| ]
|
| +
|
| + if (is_win) {
|
| + # Don't conflict with Windows' "url.dll".
|
| + output_name = "url_lib"
|
| + }
|
| +
|
| + # ICU support.
|
| + if (use_platform_icu_alternatives) {
|
| + if (is_android) {
|
| + sources += [
|
| + "android/url_jni_registrar.cc",
|
| + "android/url_jni_registrar.h",
|
| + "url_canon_icu_alternatives_android.cc",
|
| + "url_canon_icu_alternatives_android.h",
|
| + ]
|
| + deps += [
|
| + ":url_features",
|
| + ":url_java",
|
| + ":url_jni_headers",
|
| + "//base",
|
| + "//base/third_party/dynamic_annotations",
|
| + ]
|
| + } else if (is_ios) {
|
| + sources += [ "url_canon_icu_alternatives_ios.mm" ]
|
| + } else {
|
| + assert(false,
|
| + "ICU alternative is not implemented for platform: " + target_os)
|
| + }
|
| + } else {
|
| + # Use ICU.
|
| + sources += [
|
| + "url_canon_icu.cc",
|
| + "url_canon_icu.h",
|
| + ]
|
| + deps += [ "//third_party/icu" ]
|
| + }
|
| }
|
|
|
| if (is_android) {
|
| @@ -85,32 +116,6 @@ if (is_android) {
|
| ]
|
| jni_package = "url"
|
| }
|
| -
|
| - component("url_lib_use_icu_alternatives_on_android") {
|
| - sources = url_shared_sources + [
|
| - "android/url_jni_registrar.cc",
|
| - "android/url_jni_registrar.h",
|
| - "url_canon_icu_alternatives_android.cc",
|
| - "url_canon_icu_alternatives_android.h",
|
| - ]
|
| -
|
| - defines = [
|
| - "URL_IMPLEMENTATION",
|
| - "USE_ICU_ALTERNATIVES_ON_ANDROID=1",
|
| - ]
|
| -
|
| - configs += [
|
| - # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
|
| - "//build/config/compiler:no_size_t_to_int_warning",
|
| - ]
|
| -
|
| - deps = [
|
| - ":url_java",
|
| - ":url_jni_headers",
|
| - "//base",
|
| - "//base/third_party/dynamic_annotations",
|
| - ]
|
| - }
|
| }
|
|
|
| test("url_unittests") {
|
| @@ -126,22 +131,44 @@ test("url_unittests") {
|
| "url_util_unittest.cc",
|
| ]
|
|
|
| - if (!is_ios) {
|
| - sources += [ "mojo/url_gurl_struct_traits_unittest.cc" ]
|
| - }
|
| -
|
| - # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
|
| - configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
|
| -
|
| deps = [
|
| ":url",
|
| "//base",
|
| "//base/test:test_support",
|
| "//testing/gtest",
|
| - "//third_party/icu:icuuc",
|
| ]
|
|
|
| if (!is_ios) {
|
| + sources += [ "mojo/url_gurl_struct_traits_unittest.cc" ]
|
| + }
|
| +
|
| + if (use_platform_icu_alternatives) {
|
| + # Unit tests that are not supported by the current ICU alternatives on Android.
|
| + if (is_android) {
|
| + sources -= [
|
| + "url_canon_icu_unittest.cc",
|
| + "url_canon_unittest.cc",
|
| + ]
|
| + deps += [ ":url_java" ]
|
| + }
|
| +
|
| + # Unit tests that are not supported by the current ICU alternatives on iOS.
|
| + if (is_ios) {
|
| + sources -= [
|
| + "origin_unittest.cc",
|
| + "scheme_host_port_unittest.cc",
|
| + "url_canon_icu_unittest.cc",
|
| + "url_canon_unittest.cc",
|
| + ]
|
| + }
|
| + } else { # !use_platform_icu_alternatives
|
| + deps += [ "//third_party/icu:icuuc" ]
|
| + }
|
| +
|
| + # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
|
| + configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
|
| +
|
| + if (!is_ios) {
|
| deps += [
|
| "//mojo/edk/system",
|
| "//mojo/edk/test:test_support",
|
|
|