192a12a34Sopenharmony_ci# Copyright (c) 2020 Huawei Device Co., Ltd.
292a12a34Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
392a12a34Sopenharmony_ci# you may not use this file except in compliance with the License.
492a12a34Sopenharmony_ci# You may obtain a copy of the License at
592a12a34Sopenharmony_ci#
692a12a34Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
792a12a34Sopenharmony_ci#
892a12a34Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
992a12a34Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1092a12a34Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1192a12a34Sopenharmony_ci# See the License for the specific language governing permissions and
1292a12a34Sopenharmony_ci# limitations under the License.
1392a12a34Sopenharmony_ciimport("//build/lite/config/component/lite_component.gni")
1492a12a34Sopenharmony_ciimport(
1592a12a34Sopenharmony_ci    "//foundation/bundlemanager/bundle_framework_lite/bundle_framework_lite.gni")
1692a12a34Sopenharmony_ci
1792a12a34Sopenharmony_ciconfig("bundle_config") {
1892a12a34Sopenharmony_ci  defines = [ "OHOS_APPEXECFWK_BMS_BUNDLEMANAGER" ]
1992a12a34Sopenharmony_ci  cflags_cc = [ "-std=c++14" ]
2092a12a34Sopenharmony_ci}
2192a12a34Sopenharmony_ci
2292a12a34Sopenharmony_ciif (ohos_kernel_type == "liteos_m") {
2392a12a34Sopenharmony_ci  static_library("bundlems") {
2492a12a34Sopenharmony_ci    sources = [
2592a12a34Sopenharmony_ci      "src/bundle_map.cpp",
2692a12a34Sopenharmony_ci      "src/bundle_mgr_service.cpp",
2792a12a34Sopenharmony_ci      "src/bundle_mgr_slite_feature.cpp",
2892a12a34Sopenharmony_ci      "src/bundle_util.cpp",
2992a12a34Sopenharmony_ci      "src/gt_bundle_extractor.cpp",
3092a12a34Sopenharmony_ci      "src/gt_bundle_installer.cpp",
3192a12a34Sopenharmony_ci      "src/gt_bundle_manager_service.cpp",
3292a12a34Sopenharmony_ci      "src/gt_bundle_parser.cpp",
3392a12a34Sopenharmony_ci      "src/gt_extractor_util.cpp",
3492a12a34Sopenharmony_ci    ]
3592a12a34Sopenharmony_ci
3692a12a34Sopenharmony_ci    defines = [ "JERRY_FOR_IAR_CONFIG" ]
3792a12a34Sopenharmony_ci    if (bundle_framework_lite_enable_ohos_bundle_manager_service == true) {
3892a12a34Sopenharmony_ci      defines += [ "_MINI_BMS_" ]
3992a12a34Sopenharmony_ci    }
4092a12a34Sopenharmony_ci
4192a12a34Sopenharmony_ci    if (bundle_framework_lite_enable_ohos_bundle_manager_service_permission ==
4292a12a34Sopenharmony_ci        true) {
4392a12a34Sopenharmony_ci      defines += [
4492a12a34Sopenharmony_ci        "_MINI_BMS_PERMISSION_",
4592a12a34Sopenharmony_ci        "BC_TRANS_ENABLE",
4692a12a34Sopenharmony_ci      ]
4792a12a34Sopenharmony_ci    }
4892a12a34Sopenharmony_ci
4992a12a34Sopenharmony_ci    if (bundle_framework_lite_enable_ohos_bundle_manager_service_parse_metadata == true) {
5092a12a34Sopenharmony_ci      defines += [ "_MINI_BMS_PARSE_METADATA_" ]
5192a12a34Sopenharmony_ci    }
5292a12a34Sopenharmony_ci
5392a12a34Sopenharmony_ci    deps = [
5492a12a34Sopenharmony_ci      "${ace_engine_lite_path}/frameworks:ace_lite",
5592a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/frameworks/bundle_lite:bundle",
5692a12a34Sopenharmony_ci      "${hilog_lite_path}/frameworks/featured:hilog_static",
5792a12a34Sopenharmony_ci      "${resource_management_lite_path}/frameworks/resmgr_lite:global_resmgr",
5892a12a34Sopenharmony_ci      "${samgr_lite_path}/samgr:samgr",
5992a12a34Sopenharmony_ci      "//build/lite/config/component/cJSON:cjson_static",
6092a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core:jerry-core_static",
6192a12a34Sopenharmony_ci    ]
6292a12a34Sopenharmony_ci
6392a12a34Sopenharmony_ci    include_dirs = [
6492a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/services/bundlemgr_lite/include",
6592a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/interfaces/inner_api/bundlemgr_lite/slite",
6692a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/interfaces/inner_api/bundlemgr_lite",
6792a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/interfaces/kits/bundle_lite/slite",
6892a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/interfaces/kits/bundle_lite",
6992a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/utils/bundle_lite",
7092a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/frameworks/bundle_lite/include",
7192a12a34Sopenharmony_ci      "${hilog_lite_path}/interfaces/native/kits/hilog_lite",
7292a12a34Sopenharmony_ci      "${startup_path}/init/interfaces/innerkits/include/syspara",
7392a12a34Sopenharmony_ci      "${aafwk_lite_path}/interfaces/kits/ability_lite/slite",
7492a12a34Sopenharmony_ci      "${aafwk_lite_path}/services/abilitymgr_lite/include",
7592a12a34Sopenharmony_ci      "${aafwk_lite_path}/interfaces/inner_api/abilitymgr_lite",
7692a12a34Sopenharmony_ci      "${aafwk_lite_path}/interfaces/kits/ability_lite",
7792a12a34Sopenharmony_ci      "${aafwk_lite_path}/interfaces/kits/want_lite",
7892a12a34Sopenharmony_ci      "${aafwk_lite_path}/frameworks/want_lite/include",
7992a12a34Sopenharmony_ci      "${resource_management_lite_path}/interfaces/inner_api/include",
8092a12a34Sopenharmony_ci      "${samgr_lite_path}/interfaces/kits/registry",
8192a12a34Sopenharmony_ci      "${samgr_lite_path}/interfaces/kits/samgr",
8292a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core",
8392a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core/api",
8492a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core/ecma/base",
8592a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core/include",
8692a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core/jrt",
8792a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core/jmem",
8892a12a34Sopenharmony_ci      "//third_party/jerryscript/jerry-core/lit",
8992a12a34Sopenharmony_ci      "//third_party/cJSON",
9092a12a34Sopenharmony_ci      "//third_party/zlib",
9192a12a34Sopenharmony_ci      "//third_party/zlib/contrib/minizip",
9292a12a34Sopenharmony_ci      "${permission_lite_path}/interfaces/kits",
9392a12a34Sopenharmony_ci      "${permission_lite_path}/services/pms/include",
9492a12a34Sopenharmony_ci      "${appverify_lite_path}/include",
9592a12a34Sopenharmony_ci      "//third_party/bounds_checking_function/include",
9692a12a34Sopenharmony_ci      "${utils_lite_path}/include",
9792a12a34Sopenharmony_ci      "${utils_lite_path}/memory/include",
9892a12a34Sopenharmony_ci      "include",
9992a12a34Sopenharmony_ci    ]
10092a12a34Sopenharmony_ci  }
10192a12a34Sopenharmony_ci  lite_component("appexecfwk_services_lite") {
10292a12a34Sopenharmony_ci    features = [ ":bundlems" ]
10392a12a34Sopenharmony_ci  }
10492a12a34Sopenharmony_ci} else {
10592a12a34Sopenharmony_ci  shared_library("bundlems") {
10692a12a34Sopenharmony_ci    configs -= [ "//build/lite/config:language_cpp" ]
10792a12a34Sopenharmony_ci    configs += [ ":bundle_config" ]
10892a12a34Sopenharmony_ci
10992a12a34Sopenharmony_ci    cflags = [
11092a12a34Sopenharmony_ci      "-Wall",
11192a12a34Sopenharmony_ci      "-Wno-format",
11292a12a34Sopenharmony_ci      "-Wno-format-extra-args",
11392a12a34Sopenharmony_ci    ]
11492a12a34Sopenharmony_ci    cflags_cc = cflags
11592a12a34Sopenharmony_ci
11692a12a34Sopenharmony_ci    sources = [
11792a12a34Sopenharmony_ci      "src/bundle_daemon_client.cpp",
11892a12a34Sopenharmony_ci      "src/bundle_extractor.cpp",
11992a12a34Sopenharmony_ci      "src/bundle_info_creator.cpp",
12092a12a34Sopenharmony_ci      "src/bundle_inner_feature.cpp",
12192a12a34Sopenharmony_ci      "src/bundle_installer.cpp",
12292a12a34Sopenharmony_ci      "src/bundle_manager_service.cpp",
12392a12a34Sopenharmony_ci      "src/bundle_map.cpp",
12492a12a34Sopenharmony_ci      "src/bundle_ms_feature.cpp",
12592a12a34Sopenharmony_ci      "src/bundle_ms_host.cpp",
12692a12a34Sopenharmony_ci      "src/bundle_parser.cpp",
12792a12a34Sopenharmony_ci      "src/bundle_res_transform.cpp",
12892a12a34Sopenharmony_ci      "src/bundle_util.cpp",
12992a12a34Sopenharmony_ci      "src/extractor_util.cpp",
13092a12a34Sopenharmony_ci      "src/hap_sign_verify.cpp",
13192a12a34Sopenharmony_ci      "src/zip_file.cpp",
13292a12a34Sopenharmony_ci    ]
13392a12a34Sopenharmony_ci    include_dirs = [
13492a12a34Sopenharmony_ci      "${resource_management_lite_path}/interfaces/inner_api/include",
13592a12a34Sopenharmony_ci      "${aafwk_lite_path}/services/abilitymgr_lite/include",
13692a12a34Sopenharmony_ci      "${aafwk_lite_path}/interfaces/inner_api/abilitymgr_lite",
13792a12a34Sopenharmony_ci      "${aafwk_lite_path}/interfaces/kits/ability_lite",
13892a12a34Sopenharmony_ci      "${aafwk_lite_path}/interfaces/kits/want_lite",
13992a12a34Sopenharmony_ci      "${aafwk_lite_path}/frameworks/want_lite/include",
14092a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/interfaces/inner_api/bundlemgr_lite",
14192a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/frameworks/bundle_lite/include",
14292a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/interfaces/kits/bundle_lite",
14392a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/utils/bundle_lite",
14492a12a34Sopenharmony_ci      "${samgr_lite_path}/interfaces/kits/registry",
14592a12a34Sopenharmony_ci      "${samgr_lite_path}/interfaces/kits/samgr",
14692a12a34Sopenharmony_ci      "//third_party/cJSON",
14792a12a34Sopenharmony_ci      "//third_party/zlib",
14892a12a34Sopenharmony_ci      "//third_party/zlib/contrib/minizip",
14992a12a34Sopenharmony_ci      "${permission_lite_path}/interfaces/kits",
15092a12a34Sopenharmony_ci      "${permission_lite_path}/services/pms/include",
15192a12a34Sopenharmony_ci      "${appverify_lite_path}/include",
15292a12a34Sopenharmony_ci      "//third_party/bounds_checking_function/include",
15392a12a34Sopenharmony_ci      "${utils_lite_path}/include",
15492a12a34Sopenharmony_ci      "${utils_lite_path}/memory",
15592a12a34Sopenharmony_ci      "include",
15692a12a34Sopenharmony_ci    ]
15792a12a34Sopenharmony_ci
15892a12a34Sopenharmony_ci    public_deps = [
15992a12a34Sopenharmony_ci      "${appexecfwk_lite_path}/frameworks/bundle_lite:bundle",
16092a12a34Sopenharmony_ci      "${appverify_lite_path}:verify",
16192a12a34Sopenharmony_ci      "${hilog_lite_path}/frameworks/featured:hilog_shared",
16292a12a34Sopenharmony_ci      "${resource_management_lite_path}/frameworks/resmgr_lite:global_resmgr",
16392a12a34Sopenharmony_ci      "${samgr_lite_path}/samgr:samgr",
16492a12a34Sopenharmony_ci      "//build/lite/config/component/cJSON:cjson_shared",
16592a12a34Sopenharmony_ci      "//build/lite/config/component/zlib:zlib_shared",
16692a12a34Sopenharmony_ci    ]
16792a12a34Sopenharmony_ci  }
16892a12a34Sopenharmony_ci  lite_component("appexecfwk_services_lite") {
16992a12a34Sopenharmony_ci    features = [
17092a12a34Sopenharmony_ci      ":bundlems",
17192a12a34Sopenharmony_ci      "tools:bm",
17292a12a34Sopenharmony_ci      "bundle_daemon:bundle_daemon",
17392a12a34Sopenharmony_ci    ]
17492a12a34Sopenharmony_ci  }
17592a12a34Sopenharmony_ci}
17692a12a34Sopenharmony_ci
17792a12a34Sopenharmony_cigenerate_notice_file("appexecfwk_services_lite_notice_file") {
17892a12a34Sopenharmony_ci  module_name = "appexecfwk_services_lite"
17992a12a34Sopenharmony_ci  module_source_dir_list = [
18092a12a34Sopenharmony_ci    "//third_party/cJSON",
18192a12a34Sopenharmony_ci    "//third_party/zlib",
18292a12a34Sopenharmony_ci    "//third_party/bounds_checking_function",
18392a12a34Sopenharmony_ci  ]
18492a12a34Sopenharmony_ci}
185