136a3a8d0Sopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
236a3a8d0Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
336a3a8d0Sopenharmony_ci# you may not use this file except in compliance with the License.
436a3a8d0Sopenharmony_ci# You may obtain a copy of the License at
536a3a8d0Sopenharmony_ci#
636a3a8d0Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
736a3a8d0Sopenharmony_ci#
836a3a8d0Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
936a3a8d0Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1036a3a8d0Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1136a3a8d0Sopenharmony_ci# See the License for the specific language governing permissions and
1236a3a8d0Sopenharmony_ci# limitations under the License.
1336a3a8d0Sopenharmony_ci
1436a3a8d0Sopenharmony_ciimport("//build/ohos.gni")
1536a3a8d0Sopenharmony_ciimport("../../resmgr.gni")
1636a3a8d0Sopenharmony_ci
1736a3a8d0Sopenharmony_ci# source code for win.
1836a3a8d0Sopenharmony_ciis_win = "${current_os}_${current_cpu}" == "mingw_x86_64"
1936a3a8d0Sopenharmony_ci
2036a3a8d0Sopenharmony_ci# source code for linux.
2136a3a8d0Sopenharmony_ciis_linux = "${current_os}_${current_cpu}" == "linux_x64"
2236a3a8d0Sopenharmony_ci
2336a3a8d0Sopenharmony_ci# source code for mac.
2436a3a8d0Sopenharmony_ciis_mac = "${current_os}_${current_cpu}" == "mac_x64" ||
2536a3a8d0Sopenharmony_ci         "${current_os}_${host_cpu}" == "mac_arm64"
2636a3a8d0Sopenharmony_ci
2736a3a8d0Sopenharmony_ciconfig("resmgr_config") {
2836a3a8d0Sopenharmony_ci  include_dirs = [
2936a3a8d0Sopenharmony_ci    "include",
3036a3a8d0Sopenharmony_ci    "../../interfaces/inner_api/include",
3136a3a8d0Sopenharmony_ci  ]
3236a3a8d0Sopenharmony_ci}
3336a3a8d0Sopenharmony_ci
3436a3a8d0Sopenharmony_cimanager_sources = [
3536a3a8d0Sopenharmony_ci  "src/hap_manager.cpp",
3636a3a8d0Sopenharmony_ci  "src/hap_resource.cpp",
3736a3a8d0Sopenharmony_ci  "src/hap_resource_manager.cpp",
3836a3a8d0Sopenharmony_ci  "src/locale_matcher.cpp",
3936a3a8d0Sopenharmony_ci  "src/res_config_impl.cpp",
4036a3a8d0Sopenharmony_ci  "src/res_desc.cpp",
4136a3a8d0Sopenharmony_ci  "src/res_locale.cpp",
4236a3a8d0Sopenharmony_ci  "src/resource_manager.cpp",
4336a3a8d0Sopenharmony_ci  "src/resource_manager_ext_mgr.cpp",
4436a3a8d0Sopenharmony_ci  "src/resource_manager_impl.cpp",
4536a3a8d0Sopenharmony_ci  "src/system_resource_manager.cpp",
4636a3a8d0Sopenharmony_ci  "src/theme_pack_config.cpp",
4736a3a8d0Sopenharmony_ci  "src/theme_pack_manager.cpp",
4836a3a8d0Sopenharmony_ci  "src/theme_pack_resource.cpp",
4936a3a8d0Sopenharmony_ci  "src/utils/hap_parser.cpp",
5036a3a8d0Sopenharmony_ci  "src/utils/psue_manager.cpp",
5136a3a8d0Sopenharmony_ci  "src/utils/string_utils.cpp",
5236a3a8d0Sopenharmony_ci  "src/utils/utils.cpp",
5336a3a8d0Sopenharmony_ci]
5436a3a8d0Sopenharmony_ci
5536a3a8d0Sopenharmony_ciconfig("resmgr_public_config") {
5636a3a8d0Sopenharmony_ci  visibility = [ ":*" ]
5736a3a8d0Sopenharmony_ci
5836a3a8d0Sopenharmony_ci  include_dirs = [ "../../interfaces/inner_api/include" ]
5936a3a8d0Sopenharmony_ci
6036a3a8d0Sopenharmony_ci  if (resource_management_support_icu) {
6136a3a8d0Sopenharmony_ci    defines = [ "SUPPORT_GRAPHICS" ]
6236a3a8d0Sopenharmony_ci  }
6336a3a8d0Sopenharmony_ci}
6436a3a8d0Sopenharmony_ci
6536a3a8d0Sopenharmony_ciconfig("global_resmgr_all_deps_config") {
6636a3a8d0Sopenharmony_ci  include_dirs = [ "../../interfaces/inner_api/include" ]
6736a3a8d0Sopenharmony_ci}
6836a3a8d0Sopenharmony_ci
6936a3a8d0Sopenharmony_ciconfig("rawfile_public_config") {
7036a3a8d0Sopenharmony_ci  include_dirs = [
7136a3a8d0Sopenharmony_ci    "./include",
7236a3a8d0Sopenharmony_ci    "../../interfaces/native/resource/include",
7336a3a8d0Sopenharmony_ci  ]
7436a3a8d0Sopenharmony_ci}
7536a3a8d0Sopenharmony_ci
7636a3a8d0Sopenharmony_ciohos_shared_library("global_resmgr") {
7736a3a8d0Sopenharmony_ci  sources = manager_sources
7836a3a8d0Sopenharmony_ci
7936a3a8d0Sopenharmony_ci  sources += [ "../../dfx/hisysevent_adapter/hisysevent_adapter.cpp" ]
8036a3a8d0Sopenharmony_ci
8136a3a8d0Sopenharmony_ci  defines = [ "CONFIG_HILOG" ]
8236a3a8d0Sopenharmony_ci
8336a3a8d0Sopenharmony_ci  configs = [ ":resmgr_config" ]
8436a3a8d0Sopenharmony_ci
8536a3a8d0Sopenharmony_ci  version_script = "libresmgr.versionscript"
8636a3a8d0Sopenharmony_ci
8736a3a8d0Sopenharmony_ci  include_dirs = [ "../../dfx/hisysevent_adapter" ]
8836a3a8d0Sopenharmony_ci
8936a3a8d0Sopenharmony_ci  public_configs = [
9036a3a8d0Sopenharmony_ci    ":resmgr_public_config",
9136a3a8d0Sopenharmony_ci    ":global_resmgr_all_deps_config",
9236a3a8d0Sopenharmony_ci  ]
9336a3a8d0Sopenharmony_ci
9436a3a8d0Sopenharmony_ci  external_deps = [
9536a3a8d0Sopenharmony_ci    "ability_base:extractortool",
9636a3a8d0Sopenharmony_ci    "bounds_checking_function:libsec_shared",
9736a3a8d0Sopenharmony_ci    "cJSON:cjson",
9836a3a8d0Sopenharmony_ci    "hilog:libhilog",
9936a3a8d0Sopenharmony_ci    "hisysevent:libhisysevent",
10036a3a8d0Sopenharmony_ci    "hitrace:hitrace_meter",
10136a3a8d0Sopenharmony_ci    "init:libbegetutil",
10236a3a8d0Sopenharmony_ci    "zlib:shared_libz",
10336a3a8d0Sopenharmony_ci  ]
10436a3a8d0Sopenharmony_ci
10536a3a8d0Sopenharmony_ci  if (resource_management_support_icu) {
10636a3a8d0Sopenharmony_ci    external_deps += [ "icu:shared_icui18n" ]
10736a3a8d0Sopenharmony_ci    public_external_deps = [ "icu:shared_icuuc" ]
10836a3a8d0Sopenharmony_ci  }
10936a3a8d0Sopenharmony_ci
11036a3a8d0Sopenharmony_ci  branch_protector_ret = "pac_ret"
11136a3a8d0Sopenharmony_ci  sanitize = {
11236a3a8d0Sopenharmony_ci    boundary_sanitize = true
11336a3a8d0Sopenharmony_ci    cfi = true
11436a3a8d0Sopenharmony_ci    cfi_cross_dso = true
11536a3a8d0Sopenharmony_ci    debug = false
11636a3a8d0Sopenharmony_ci    integer_overflow = true
11736a3a8d0Sopenharmony_ci    ubsan = true
11836a3a8d0Sopenharmony_ci  }
11936a3a8d0Sopenharmony_ci  subsystem_name = "global"
12036a3a8d0Sopenharmony_ci  innerapi_tags = [
12136a3a8d0Sopenharmony_ci    "platformsdk_indirect",
12236a3a8d0Sopenharmony_ci    "sasdk",
12336a3a8d0Sopenharmony_ci  ]
12436a3a8d0Sopenharmony_ci  part_name = "resource_management"
12536a3a8d0Sopenharmony_ci}
12636a3a8d0Sopenharmony_ci
12736a3a8d0Sopenharmony_ciohos_shared_library("global_resmgr_win") {
12836a3a8d0Sopenharmony_ci  if (resource_management_support_icu) {
12936a3a8d0Sopenharmony_ci    defines = [
13036a3a8d0Sopenharmony_ci      "__WINNT__",
13136a3a8d0Sopenharmony_ci      "__EXPORT_MGR__",
13236a3a8d0Sopenharmony_ci      "__IDE_PREVIEW__",
13336a3a8d0Sopenharmony_ci    ]
13436a3a8d0Sopenharmony_ci    cflags = [
13536a3a8d0Sopenharmony_ci      "-std=c++17",
13636a3a8d0Sopenharmony_ci      "-Wno-ignored-attributes",
13736a3a8d0Sopenharmony_ci    ]
13836a3a8d0Sopenharmony_ci
13936a3a8d0Sopenharmony_ci    sources = manager_sources
14036a3a8d0Sopenharmony_ci
14136a3a8d0Sopenharmony_ci    configs = [ ":resmgr_config" ]
14236a3a8d0Sopenharmony_ci
14336a3a8d0Sopenharmony_ci    public_configs = [ ":resmgr_public_config" ]
14436a3a8d0Sopenharmony_ci
14536a3a8d0Sopenharmony_ci    external_deps = [
14636a3a8d0Sopenharmony_ci      "bounds_checking_function:libsec_shared",
14736a3a8d0Sopenharmony_ci      "cJSON:cjson_static",
14836a3a8d0Sopenharmony_ci      "icu:static_icui18n",
14936a3a8d0Sopenharmony_ci      "zlib:libz",
15036a3a8d0Sopenharmony_ci    ]
15136a3a8d0Sopenharmony_ci    public_external_deps = [ "icu:static_icuuc" ]
15236a3a8d0Sopenharmony_ci
15336a3a8d0Sopenharmony_ci    libs = [ "shlwapi" ]
15436a3a8d0Sopenharmony_ci  }
15536a3a8d0Sopenharmony_ci  subsystem_name = "global"
15636a3a8d0Sopenharmony_ci  part_name = "resource_management"
15736a3a8d0Sopenharmony_ci}
15836a3a8d0Sopenharmony_ci
15936a3a8d0Sopenharmony_cigroup("win_resmgr") {
16036a3a8d0Sopenharmony_ci  if (is_win && resource_management_support_icu) {
16136a3a8d0Sopenharmony_ci    public_deps = [ ":global_resmgr_win" ]
16236a3a8d0Sopenharmony_ci  }
16336a3a8d0Sopenharmony_ci}
16436a3a8d0Sopenharmony_ci
16536a3a8d0Sopenharmony_ciohos_shared_library("global_resmgr_mac") {
16636a3a8d0Sopenharmony_ci  if (resource_management_support_icu) {
16736a3a8d0Sopenharmony_ci    defines = [ "__IDE_PREVIEW__" ]
16836a3a8d0Sopenharmony_ci    cflags = [
16936a3a8d0Sopenharmony_ci      "-std=c++17",
17036a3a8d0Sopenharmony_ci      "-Wno-ignored-attributes",
17136a3a8d0Sopenharmony_ci    ]
17236a3a8d0Sopenharmony_ci
17336a3a8d0Sopenharmony_ci    sources = manager_sources
17436a3a8d0Sopenharmony_ci
17536a3a8d0Sopenharmony_ci    configs = [ ":resmgr_config" ]
17636a3a8d0Sopenharmony_ci
17736a3a8d0Sopenharmony_ci    public_configs = [ ":resmgr_public_config" ]
17836a3a8d0Sopenharmony_ci
17936a3a8d0Sopenharmony_ci    if (host_os == "mac") {
18036a3a8d0Sopenharmony_ci      external_deps = [
18136a3a8d0Sopenharmony_ci        "bounds_checking_function:libsec_static",
18236a3a8d0Sopenharmony_ci        "cJSON:cjson_static",
18336a3a8d0Sopenharmony_ci        "icu:static_icui18n",
18436a3a8d0Sopenharmony_ci        "zlib:libz",
18536a3a8d0Sopenharmony_ci      ]
18636a3a8d0Sopenharmony_ci      public_external_deps = [ "icu:static_icuuc" ]
18736a3a8d0Sopenharmony_ci    }
18836a3a8d0Sopenharmony_ci  }
18936a3a8d0Sopenharmony_ci  subsystem_name = "global"
19036a3a8d0Sopenharmony_ci  part_name = "resource_management"
19136a3a8d0Sopenharmony_ci}
19236a3a8d0Sopenharmony_ci
19336a3a8d0Sopenharmony_cigroup("mac_resmgr") {
19436a3a8d0Sopenharmony_ci  if (is_mac && resource_management_support_icu) {
19536a3a8d0Sopenharmony_ci    public_deps = [ ":global_resmgr_mac" ]
19636a3a8d0Sopenharmony_ci  }
19736a3a8d0Sopenharmony_ci}
19836a3a8d0Sopenharmony_ci
19936a3a8d0Sopenharmony_ciohos_shared_library("global_resmgr_linux") {
20036a3a8d0Sopenharmony_ci  if (resource_management_support_icu) {
20136a3a8d0Sopenharmony_ci    defines = [
20236a3a8d0Sopenharmony_ci      "__IDE_PREVIEW__",
20336a3a8d0Sopenharmony_ci      "__LINUX__",
20436a3a8d0Sopenharmony_ci    ]
20536a3a8d0Sopenharmony_ci    cflags = [
20636a3a8d0Sopenharmony_ci      "-std=c++17",
20736a3a8d0Sopenharmony_ci      "-Wno-ignored-attributes",
20836a3a8d0Sopenharmony_ci    ]
20936a3a8d0Sopenharmony_ci
21036a3a8d0Sopenharmony_ci    sources = manager_sources
21136a3a8d0Sopenharmony_ci
21236a3a8d0Sopenharmony_ci    configs = [ ":resmgr_config" ]
21336a3a8d0Sopenharmony_ci
21436a3a8d0Sopenharmony_ci    public_configs = [ ":resmgr_public_config" ]
21536a3a8d0Sopenharmony_ci
21636a3a8d0Sopenharmony_ci    external_deps = [
21736a3a8d0Sopenharmony_ci      "bounds_checking_function:libsec_shared",
21836a3a8d0Sopenharmony_ci      "cJSON:cjson_static",
21936a3a8d0Sopenharmony_ci      "icu:shared_icui18n",
22036a3a8d0Sopenharmony_ci      "zlib:shared_libz",
22136a3a8d0Sopenharmony_ci    ]
22236a3a8d0Sopenharmony_ci    public_external_deps = [ "icu:shared_icuuc" ]
22336a3a8d0Sopenharmony_ci  }
22436a3a8d0Sopenharmony_ci  subsystem_name = "global"
22536a3a8d0Sopenharmony_ci  part_name = "resource_management"
22636a3a8d0Sopenharmony_ci}
22736a3a8d0Sopenharmony_ci
22836a3a8d0Sopenharmony_cigroup("linux_resmgr") {
22936a3a8d0Sopenharmony_ci  if (is_linux && resource_management_support_icu) {
23036a3a8d0Sopenharmony_ci    deps = [ ":global_resmgr_linux" ]
23136a3a8d0Sopenharmony_ci  }
23236a3a8d0Sopenharmony_ci}
23336a3a8d0Sopenharmony_ci
23436a3a8d0Sopenharmony_ciohos_shared_library("librawfile") {
23536a3a8d0Sopenharmony_ci  output_name = "rawfile"
23636a3a8d0Sopenharmony_ci  public_configs = [ ":rawfile_public_config" ]
23736a3a8d0Sopenharmony_ci  sources = [ "src/raw_file_manager.cpp" ]
23836a3a8d0Sopenharmony_ci
23936a3a8d0Sopenharmony_ci  defines = [ "CONFIG_HILOG" ]
24036a3a8d0Sopenharmony_ci
24136a3a8d0Sopenharmony_ci  include_dirs = [
24236a3a8d0Sopenharmony_ci    "./include",
24336a3a8d0Sopenharmony_ci    "../../interfaces/native/resource/include",
24436a3a8d0Sopenharmony_ci    "../../interfaces/inner_api/include",
24536a3a8d0Sopenharmony_ci    "../../interfaces/js/innerkits/core/include",
24636a3a8d0Sopenharmony_ci  ]
24736a3a8d0Sopenharmony_ci
24836a3a8d0Sopenharmony_ci  cflags = [ "-Wno-error=inconsistent-missing-override" ]
24936a3a8d0Sopenharmony_ci
25036a3a8d0Sopenharmony_ci  deps = [ ":global_resmgr" ]
25136a3a8d0Sopenharmony_ci
25236a3a8d0Sopenharmony_ci  external_deps = [
25336a3a8d0Sopenharmony_ci    "ability_base:configuration",
25436a3a8d0Sopenharmony_ci    "bundle_framework:appexecfwk_base",
25536a3a8d0Sopenharmony_ci    "cJSON:cjson_static",
25636a3a8d0Sopenharmony_ci    "c_utils:utils",
25736a3a8d0Sopenharmony_ci    "hilog:libhilog",
25836a3a8d0Sopenharmony_ci    "napi:ace_napi",
25936a3a8d0Sopenharmony_ci  ]
26036a3a8d0Sopenharmony_ci
26136a3a8d0Sopenharmony_ci  if (resource_management_support_icu) {
26236a3a8d0Sopenharmony_ci    external_deps += [ "icu:shared_icuuc" ]
26336a3a8d0Sopenharmony_ci  }
26436a3a8d0Sopenharmony_ci
26536a3a8d0Sopenharmony_ci  stack_protector_ret = true
26636a3a8d0Sopenharmony_ci  sanitize = {
26736a3a8d0Sopenharmony_ci    boundary_sanitize = true
26836a3a8d0Sopenharmony_ci    cfi = true
26936a3a8d0Sopenharmony_ci    cfi_cross_dso = true
27036a3a8d0Sopenharmony_ci    debug = false
27136a3a8d0Sopenharmony_ci    integer_overflow = true
27236a3a8d0Sopenharmony_ci    ubsan = true
27336a3a8d0Sopenharmony_ci  }
27436a3a8d0Sopenharmony_ci  subsystem_name = "global"
27536a3a8d0Sopenharmony_ci  part_name = "resource_management"
27636a3a8d0Sopenharmony_ci}
27736a3a8d0Sopenharmony_ci
27836a3a8d0Sopenharmony_ciohos_shared_library("ohresmgr") {
27936a3a8d0Sopenharmony_ci  public_configs = [ ":rawfile_public_config" ]
28036a3a8d0Sopenharmony_ci  sources = [ "src/native_resource_manager.cpp" ]
28136a3a8d0Sopenharmony_ci  output_extension = "so"
28236a3a8d0Sopenharmony_ci  output_name = "ohresmgr"
28336a3a8d0Sopenharmony_ci
28436a3a8d0Sopenharmony_ci  defines = [ "CONFIG_HILOG" ]
28536a3a8d0Sopenharmony_ci
28636a3a8d0Sopenharmony_ci  include_dirs = [
28736a3a8d0Sopenharmony_ci    "./include",
28836a3a8d0Sopenharmony_ci    "../../interfaces/native/resource/include",
28936a3a8d0Sopenharmony_ci    "../../interfaces/inner_api/include",
29036a3a8d0Sopenharmony_ci    "../../interfaces/js/innerkits/core/include",
29136a3a8d0Sopenharmony_ci  ]
29236a3a8d0Sopenharmony_ci
29336a3a8d0Sopenharmony_ci  cflags = [ "-Wno-error=inconsistent-missing-override" ]
29436a3a8d0Sopenharmony_ci
29536a3a8d0Sopenharmony_ci  deps = [ ":global_resmgr" ]
29636a3a8d0Sopenharmony_ci
29736a3a8d0Sopenharmony_ci  external_deps = [
29836a3a8d0Sopenharmony_ci    "ability_base:configuration",
29936a3a8d0Sopenharmony_ci    "ace_engine:ace_ndk",
30036a3a8d0Sopenharmony_ci    "ace_engine:drawable_descriptor",
30136a3a8d0Sopenharmony_ci    "bundle_framework:appexecfwk_base",
30236a3a8d0Sopenharmony_ci    "cJSON:cjson_static",
30336a3a8d0Sopenharmony_ci    "c_utils:utils",
30436a3a8d0Sopenharmony_ci    "hilog:libhilog",
30536a3a8d0Sopenharmony_ci    "napi:ace_napi",
30636a3a8d0Sopenharmony_ci  ]
30736a3a8d0Sopenharmony_ci
30836a3a8d0Sopenharmony_ci  stack_protector_ret = true
30936a3a8d0Sopenharmony_ci  sanitize = {
31036a3a8d0Sopenharmony_ci    boundary_sanitize = true
31136a3a8d0Sopenharmony_ci    cfi = true
31236a3a8d0Sopenharmony_ci    cfi_cross_dso = true
31336a3a8d0Sopenharmony_ci    debug = false
31436a3a8d0Sopenharmony_ci    integer_overflow = true
31536a3a8d0Sopenharmony_ci    ubsan = true
31636a3a8d0Sopenharmony_ci  }
31736a3a8d0Sopenharmony_ci  innerapi_tags = [ "ndk" ]
31836a3a8d0Sopenharmony_ci  subsystem_name = "global"
31936a3a8d0Sopenharmony_ci  part_name = "resource_management"
32036a3a8d0Sopenharmony_ci}
321