xref: /base/global/i18n_lite/frameworks/i18n/BUILD.gn (revision 60916893)
160916893Sopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd.
260916893Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
360916893Sopenharmony_ci# you may not use this file except in compliance with the License.
460916893Sopenharmony_ci# You may obtain a copy of the License at
560916893Sopenharmony_ci#
660916893Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
760916893Sopenharmony_ci#
860916893Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
960916893Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1060916893Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1160916893Sopenharmony_ci# See the License for the specific language governing permissions and
1260916893Sopenharmony_ci# limitations under the License.
1360916893Sopenharmony_ci
1460916893Sopenharmony_ciimport("//base/global/i18n_lite/i18n_lite.gni")
1560916893Sopenharmony_ciif (defined(ohos_lite)) {
1660916893Sopenharmony_ci  import("//build/lite/config/component/lite_component.gni")
1760916893Sopenharmony_ci} else {
1860916893Sopenharmony_ci  import("//build/ohos.gni")
1960916893Sopenharmony_ci}
2060916893Sopenharmony_ci
2160916893Sopenharmony_cilocale_sources = [
2260916893Sopenharmony_ci  "src/data_resource.cpp",
2360916893Sopenharmony_ci  "src/date_time_data.cpp",
2460916893Sopenharmony_ci  "src/date_time_format.cpp",
2560916893Sopenharmony_ci  "src/date_time_format_impl.cpp",
2660916893Sopenharmony_ci  "src/locale_info.cpp",
2760916893Sopenharmony_ci  "src/measure_format.cpp",
2860916893Sopenharmony_ci  "src/measure_format_impl.cpp",
2960916893Sopenharmony_ci  "src/number_data.cpp",
3060916893Sopenharmony_ci  "src/number_format.cpp",
3160916893Sopenharmony_ci  "src/number_format_impl.cpp",
3260916893Sopenharmony_ci  "src/plural_format.cpp",
3360916893Sopenharmony_ci  "src/plural_format_impl.cpp",
3460916893Sopenharmony_ci  "src/plural_rules.cpp",
3560916893Sopenharmony_ci  "src/str_util.cpp",
3660916893Sopenharmony_ci  "src/week_info.cpp",
3760916893Sopenharmony_ci]
3860916893Sopenharmony_ci
3960916893Sopenharmony_ciconfig("locale_config") {
4060916893Sopenharmony_ci  include_dirs = [
4160916893Sopenharmony_ci    "//base/global/i18n_lite/interfaces/kits/i18n/include",
4260916893Sopenharmony_ci    "//base/global/i18n_lite/frameworks/i18n/include",
4360916893Sopenharmony_ci    "//third_party/bounds_checking_function/include",
4460916893Sopenharmony_ci  ]
4560916893Sopenharmony_ci}
4660916893Sopenharmony_ci
4760916893Sopenharmony_cicopy("global_dat") {
4860916893Sopenharmony_ci  sources = [ "i18n.dat" ]
4960916893Sopenharmony_ci  outputs = [ "$root_out_dir/data/i18n.dat" ]
5060916893Sopenharmony_ci}
5160916893Sopenharmony_ci
5260916893Sopenharmony_ciif (defined(ohos_lite)) {
5360916893Sopenharmony_ci  if (ohos_kernel_type == "liteos_m") {
5460916893Sopenharmony_ci    static_library("global_i18n") {
5560916893Sopenharmony_ci      sources = locale_sources
5660916893Sopenharmony_ci      public_configs = [ ":locale_config" ]
5760916893Sopenharmony_ci      deps = [
5860916893Sopenharmony_ci        ":global_dat",
5960916893Sopenharmony_ci        "//third_party/bounds_checking_function:libsec_static",
6060916893Sopenharmony_ci      ]
6160916893Sopenharmony_ci      if (i18n_lite_support_i18n_product) {
6260916893Sopenharmony_ci        include_dirs = [ "//commonlibrary/utils_lite/memory/include" ]
6360916893Sopenharmony_ci        defines = [ "I18N_PRODUCT" ]
6460916893Sopenharmony_ci        deps += [ "//commonlibrary/utils_lite:utils" ]
6560916893Sopenharmony_ci      }
6660916893Sopenharmony_ci    }
6760916893Sopenharmony_ci  } else {
6860916893Sopenharmony_ci    shared_library("global_i18n") {
6960916893Sopenharmony_ci      sources = locale_sources
7060916893Sopenharmony_ci      public_configs = [ ":locale_config" ]
7160916893Sopenharmony_ci      deps = [
7260916893Sopenharmony_ci        ":global_dat",
7360916893Sopenharmony_ci        "//third_party/bounds_checking_function:libsec_shared",
7460916893Sopenharmony_ci      ]
7560916893Sopenharmony_ci    }
7660916893Sopenharmony_ci  }
7760916893Sopenharmony_ci
7860916893Sopenharmony_ci  lite_component("locale_lite") {
7960916893Sopenharmony_ci    features = [ ":global_i18n" ]
8060916893Sopenharmony_ci  }
8160916893Sopenharmony_ci} else {
8260916893Sopenharmony_ci  ohos_static_library("global_i18n_simulator") {
8360916893Sopenharmony_ci    sources = locale_sources
8460916893Sopenharmony_ci    configs += [ ":locale_config" ]
8560916893Sopenharmony_ci    deps = [ ":global_dat" ]
8660916893Sopenharmony_ci  }
8760916893Sopenharmony_ci}
88