123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- # Copyright 2016 Google Inc.
- #
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- import("../../gn/skia.gni")
- import("../third_party.gni")
- import("icu.gni")
- declare_args() {
- skia_use_system_icu = is_official_build
- }
- if (skia_use_system_icu) {
- system("icu") {
- libs = [ "icuuc" ]
- defines = [ "U_USING_ICU_NAMESPACE=0" ]
- }
- } else {
- if (target_cpu == "wasm") {
- data_assembly = "$target_gen_dir/icudtl_dat.cpp"
- } else {
- data_assembly = "$target_gen_dir/icudtl_dat.S"
- }
- data_dir = "../externals/icu/"
- if (target_cpu == "wasm") {
- # Use a super super super stripped down version for wasm,
- # which is the same thing flutter is using.
- data_dir += "flutter"
- } else if (is_android) {
- data_dir += "android"
- } else if (is_ios) {
- data_dir += "ios"
- } else {
- data_dir += "common"
- }
- action("make_data_assembly") {
- if (target_cpu == "wasm") {
- _u_icu_version_major_num = "63" # defined in source/common/unicode/uvernum.h
- script = "make_data_cpp.py"
- inputs = [
- "$data_dir/icudtl.dat",
- ]
- outputs = [
- data_assembly,
- ]
- args = [
- "icudt${_u_icu_version_major_num}_dat",
- rebase_path(inputs[0], root_build_dir),
- rebase_path(data_assembly, root_build_dir),
- ]
- } else {
- script = "../externals/icu/scripts/make_data_assembly.py"
- inputs = [
- "$data_dir/icudtl.dat",
- ]
- outputs = [
- "$data_assembly",
- ]
- args = [
- rebase_path(inputs[0], root_build_dir),
- rebase_path(data_assembly, root_build_dir),
- ]
- if (is_mac || is_ios) {
- args += [ "--mac" ]
- }
- }
- }
- third_party("icu") {
- public_include_dirs = [
- "../externals/icu/source/common",
- "../externals/icu/source/i18n",
- ".",
- ]
- public_defines = [
- "U_USING_ICU_NAMESPACE=0",
- "SK_USING_THIRD_PARTY_ICU",
- ]
- configs -= [ "//gn:no_rtti" ]
- defines = [
- # http://userguide.icu-project.org/howtouseicu
- "U_COMMON_IMPLEMENTATION",
- "U_STATIC_IMPLEMENTATION",
- "U_ENABLE_DYLOAD=0",
- "U_I18N_IMPLEMENTATION",
- ]
- if (target_cpu == "wasm") {
- # Tell ICU that we are a 32 bit platform, otherwise,
- # double-conversion-utils.h doesn't know how to operate.
- defines += [ "__i386__" ]
- }
- sources = icu_sources
- if (is_win) {
- deps = [
- ":icudata",
- ]
- public_defines += [
- "U_NOEXCEPT=",
- "U_STATIC_IMPLEMENTATION",
- ]
- libs = [ "Advapi32.lib" ]
- sources += [
- "../externals/icu/source/stubdata/stubdata.cpp",
- "SkLoadICU.cpp",
- ]
- } else {
- sources += [ "$data_assembly" ]
- deps = [
- ":make_data_assembly",
- ]
- }
- }
- copy("icudata") {
- sources = [
- "../externals/icu/common/icudtl.dat",
- ]
- outputs = [
- "$root_out_dir/icudtl.dat",
- ]
- data = [
- "$root_out_dir/icudtl.dat",
- ]
- }
- }
|