1e3514079Sopenharmony_ci# Copyright (c) 2020-2021 Huawei Device Co., Ltd.
2e3514079Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3e3514079Sopenharmony_ci# you may not use this file except in compliance with the License.
4e3514079Sopenharmony_ci# You may obtain a copy of the License at
5e3514079Sopenharmony_ci#
6e3514079Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7e3514079Sopenharmony_ci#
8e3514079Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9e3514079Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10e3514079Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11e3514079Sopenharmony_ci# See the License for the specific language governing permissions and
12e3514079Sopenharmony_ci# limitations under the License.
13e3514079Sopenharmony_ci
14e3514079Sopenharmony_ciif (defined(ohos_lite)) {
15e3514079Sopenharmony_ci  import("//build/lite/config/component/lite_component.gni")
16e3514079Sopenharmony_ci} else {
17e3514079Sopenharmony_ci  import("//build/ohos.gni")
18e3514079Sopenharmony_ci}
19e3514079Sopenharmony_ci
20e3514079Sopenharmony_ciglobal_sources = []
21e3514079Sopenharmony_ciif (defined(ohos_lite) && ohos_kernel_type == "liteos_a") {
22e3514079Sopenharmony_ci  global_sources += [
23e3514079Sopenharmony_ci    "src/global.cpp",
24e3514079Sopenharmony_ci    "src/hap_manager.cpp",
25e3514079Sopenharmony_ci    "src/hap_resource.cpp",
26e3514079Sopenharmony_ci    "src/locale_matcher.cpp",
27e3514079Sopenharmony_ci    "src/lock.cpp",
28e3514079Sopenharmony_ci    "src/res_config_impl.cpp",
29e3514079Sopenharmony_ci    "src/res_desc.cpp",
30e3514079Sopenharmony_ci    "src/res_locale.cpp",
31e3514079Sopenharmony_ci    "src/resource_manager_impl.cpp",
32e3514079Sopenharmony_ci    "src/utils/hap_parser.cpp",
33e3514079Sopenharmony_ci    "src/utils/string_utils.cpp",
34e3514079Sopenharmony_ci    "src/utils/utils.cpp",
35e3514079Sopenharmony_ci  ]
36e3514079Sopenharmony_ci} else {
37e3514079Sopenharmony_ci  global_sources += [
38e3514079Sopenharmony_ci    "src/global.c",
39e3514079Sopenharmony_ci    "src/global_utils.c",
40e3514079Sopenharmony_ci  ]
41e3514079Sopenharmony_ci}
42e3514079Sopenharmony_ci
43e3514079Sopenharmony_ciconfig("global_resmgr_config") {
44e3514079Sopenharmony_ci  include_dirs = [
45e3514079Sopenharmony_ci    "include",
46e3514079Sopenharmony_ci    "//base/global/resource_management_lite/interfaces/inner_api/include",
47e3514079Sopenharmony_ci    "//commonlibrary/utils_lite/include",
48e3514079Sopenharmony_ci    "//third_party/bounds_checking_function/include",
49e3514079Sopenharmony_ci  ]
50e3514079Sopenharmony_ci
51e3514079Sopenharmony_ci  if (defined(ohos_lite) && ohos_kernel_type == "liteos_a") {
52e3514079Sopenharmony_ci    include_dirs += [
53e3514079Sopenharmony_ci      "//third_party/zlib",
54e3514079Sopenharmony_ci      "//third_party/zlib/contrib/minizip",
55e3514079Sopenharmony_ci      "//commonlibrary/utils_lite/memory",
56e3514079Sopenharmony_ci      "//base/global/i18n_lite/interfaces/kits/i18n/include/",
57e3514079Sopenharmony_ci    ]
58e3514079Sopenharmony_ci  }
59e3514079Sopenharmony_ci}
60e3514079Sopenharmony_ci
61e3514079Sopenharmony_ciconfig("global_public_config") {
62e3514079Sopenharmony_ci  include_dirs = [
63e3514079Sopenharmony_ci    "//base/global/resource_management_lite/frameworks/resmgr_lite/include",
64e3514079Sopenharmony_ci    "//base/global/resource_management_lite/interfaces/inner_api/include",
65e3514079Sopenharmony_ci  ]
66e3514079Sopenharmony_ci}
67e3514079Sopenharmony_ci
68e3514079Sopenharmony_ciconfig("global_resmgr_mingw_config") {
69e3514079Sopenharmony_ci  cflags = [
70e3514079Sopenharmony_ci    "-D_INC_STRING_S",
71e3514079Sopenharmony_ci    "-D_INC_WCHAR_S",
72e3514079Sopenharmony_ci    "-D_SECIMP=//",
73e3514079Sopenharmony_ci    "-D_STDIO_S_DEFINED",
74e3514079Sopenharmony_ci    "-D_INC_STDIO_S",
75e3514079Sopenharmony_ci    "-D_INC_STDLIB_S",
76e3514079Sopenharmony_ci    "-D_INC_MEMORY_S",
77e3514079Sopenharmony_ci  ]
78e3514079Sopenharmony_ci}
79e3514079Sopenharmony_ci
80e3514079Sopenharmony_ciif (defined(ohos_lite)) {
81e3514079Sopenharmony_ci  if (ohos_kernel_type == "liteos_m") {
82e3514079Sopenharmony_ci    static_library("global_resmgr") {
83e3514079Sopenharmony_ci      sources = global_sources
84e3514079Sopenharmony_ci      public_configs = [ ":global_resmgr_config" ]
85e3514079Sopenharmony_ci      deps = [ "//third_party/bounds_checking_function:libsec_static" ]
86e3514079Sopenharmony_ci    }
87e3514079Sopenharmony_ci  } else {
88e3514079Sopenharmony_ci    shared_library("global_resmgr") {
89e3514079Sopenharmony_ci      sources = global_sources
90e3514079Sopenharmony_ci      configs += [ ":global_resmgr_config" ]
91e3514079Sopenharmony_ci      deps = [ "//third_party/bounds_checking_function:libsec_shared" ]
92e3514079Sopenharmony_ci      if (ohos_kernel_type == "liteos_a") {
93e3514079Sopenharmony_ci        public_deps = [
94e3514079Sopenharmony_ci          "//base/global/i18n_lite/frameworks/i18n:global_i18n",
95e3514079Sopenharmony_ci          "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared",
96e3514079Sopenharmony_ci          "//build/lite/config/component/zlib:zlib_shared",
97e3514079Sopenharmony_ci        ]
98e3514079Sopenharmony_ci      }
99e3514079Sopenharmony_ci    }
100e3514079Sopenharmony_ci  }
101e3514079Sopenharmony_ci
102e3514079Sopenharmony_ci  lite_component("global_manager_lite") {
103e3514079Sopenharmony_ci    features = [ ":global_resmgr" ]
104e3514079Sopenharmony_ci  }
105e3514079Sopenharmony_ci} else {
106e3514079Sopenharmony_ci  ohos_static_library("global_resmgr_simulator") {
107e3514079Sopenharmony_ci    sources = global_sources
108e3514079Sopenharmony_ci    public_configs = [ ":global_public_config" ]
109e3514079Sopenharmony_ci    deps = [ "//third_party/bounds_checking_function:libsec_static" ]
110e3514079Sopenharmony_ci    configs = [ ":global_resmgr_mingw_config" ]
111e3514079Sopenharmony_ci  }
112e3514079Sopenharmony_ci}
113