1eace7efcSopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
2eace7efcSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3eace7efcSopenharmony_ci# you may not use this file except in compliance with the License.
4eace7efcSopenharmony_ci# You may obtain a copy of the License at
5eace7efcSopenharmony_ci#
6eace7efcSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7eace7efcSopenharmony_ci#
8eace7efcSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9eace7efcSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10eace7efcSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11eace7efcSopenharmony_ci# See the License for the specific language governing permissions and
12eace7efcSopenharmony_ci# limitations under the License.
13eace7efcSopenharmony_ci
14eace7efcSopenharmony_ciimport("//build/ohos.gni")
15eace7efcSopenharmony_ciimport("//foundation/ability/ability_runtime/ability_runtime.gni")
16eace7efcSopenharmony_ci
17eace7efcSopenharmony_ciohos_shared_library("featureability") {
18eace7efcSopenharmony_ci  include_dirs = [ "./" ]
19eace7efcSopenharmony_ci
20eace7efcSopenharmony_ci  sources = [
21eace7efcSopenharmony_ci    "feature_ability.cpp",
22eace7efcSopenharmony_ci    "feature_ability_constant.cpp",
23eace7efcSopenharmony_ci    "napi_data_ability_helper.cpp",
24eace7efcSopenharmony_ci    "napi_data_ability_helper_utils.cpp",
25eace7efcSopenharmony_ci    "napi_data_ability_observer.cpp",
26eace7efcSopenharmony_ci    "napi_data_ability_operation.cpp",
27eace7efcSopenharmony_ci    "native_module.cpp",
28eace7efcSopenharmony_ci  ]
29eace7efcSopenharmony_ci
30eace7efcSopenharmony_ci  deps = [
31eace7efcSopenharmony_ci    "${ability_runtime_innerkits_path}/ability_manager:ability_manager",
32eace7efcSopenharmony_ci    "${ability_runtime_innerkits_path}/ability_manager:ability_start_options",
33eace7efcSopenharmony_ci    "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting",
34eace7efcSopenharmony_ci    "${ability_runtime_innerkits_path}/dataobs_manager:dataobs_manager",
35eace7efcSopenharmony_ci    "${ability_runtime_innerkits_path}/napi_base_context:napi_base_context",
36eace7efcSopenharmony_ci    "${ability_runtime_innerkits_path}/runtime:runtime",
37eace7efcSopenharmony_ci    "${ability_runtime_napi_path}/inner/napi_ability_common:napi_ability_common",
38eace7efcSopenharmony_ci    "${ability_runtime_napi_path}/inner/napi_common:napi_common",
39eace7efcSopenharmony_ci    "${ability_runtime_native_path}/ability/native:abilitykit_native",
40eace7efcSopenharmony_ci    "${ability_runtime_native_path}/ability/native:data_ability_helper",
41eace7efcSopenharmony_ci    "${ability_runtime_native_path}/appkit:appkit_native",
42eace7efcSopenharmony_ci  ]
43eace7efcSopenharmony_ci
44eace7efcSopenharmony_ci  external_deps = [
45eace7efcSopenharmony_ci    "ability_base:want",
46eace7efcSopenharmony_ci    "ability_base:zuri",
47eace7efcSopenharmony_ci    "access_token:libaccesstoken_sdk",
48eace7efcSopenharmony_ci    "bundle_framework:appexecfwk_base",
49eace7efcSopenharmony_ci    "c_utils:utils",
50eace7efcSopenharmony_ci    "common_event_service:cesfwk_innerkits",
51eace7efcSopenharmony_ci    "hilog:libhilog",
52eace7efcSopenharmony_ci    "hitrace:hitrace_meter",
53eace7efcSopenharmony_ci    "ipc:ipc_core",
54eace7efcSopenharmony_ci    "libuv:uv",
55eace7efcSopenharmony_ci    "napi:ace_napi",
56eace7efcSopenharmony_ci  ]
57eace7efcSopenharmony_ci
58eace7efcSopenharmony_ci  if (ability_runtime_graphics) {
59eace7efcSopenharmony_ci    include_dirs += [
60eace7efcSopenharmony_ci      "${windowmanager_path}/interfaces/kits/napi/window_runtime/window_napi",
61eace7efcSopenharmony_ci    ]
62eace7efcSopenharmony_ci    external_deps += [ "window_manager:window_native_kit" ]
63eace7efcSopenharmony_ci    defines = [
64eace7efcSopenharmony_ci      "SUPPORT_GRAPHICS",
65eace7efcSopenharmony_ci      "SUPPORT_SCREEN",
66eace7efcSopenharmony_ci    ]
67eace7efcSopenharmony_ci  }
68eace7efcSopenharmony_ci
69eace7efcSopenharmony_ci  if (ability_runtime_relational) {
70eace7efcSopenharmony_ci    include_dirs += [
71eace7efcSopenharmony_ci      "${relational_store_napi_path}/common/include",
72eace7efcSopenharmony_ci      "${relational_store_napi_path}/dataability/include",
73eace7efcSopenharmony_ci      "${relational_store_napi_path}/rdb/include",
74eace7efcSopenharmony_ci    ]
75eace7efcSopenharmony_ci    sources += [
76eace7efcSopenharmony_ci      "${relational_store_napi_path}/common/src/js_df_manager.cpp",
77eace7efcSopenharmony_ci      "${relational_store_napi_path}/common/src/js_utils.cpp",
78eace7efcSopenharmony_ci      "${relational_store_napi_path}/dataability/src/napi_data_ability_predicates.cpp",
79eace7efcSopenharmony_ci      "${relational_store_napi_path}/rdb/src/napi_rdb_js_utils.cpp",
80eace7efcSopenharmony_ci      "${relational_store_napi_path}/rdb/src/napi_result_set.cpp",
81eace7efcSopenharmony_ci    ]
82eace7efcSopenharmony_ci    external_deps += [
83eace7efcSopenharmony_ci      "kv_store:distributeddata_mgr",
84eace7efcSopenharmony_ci      "relational_store:native_dataability",
85eace7efcSopenharmony_ci      "relational_store:native_rdb",
86eace7efcSopenharmony_ci      "relational_store:rdb_data_share_adapter",
87eace7efcSopenharmony_ci    ]
88eace7efcSopenharmony_ci  }
89eace7efcSopenharmony_ci  cflags_cc = []
90eace7efcSopenharmony_ci  if (os_dlp_part_enabled) {
91eace7efcSopenharmony_ci    cflags_cc += [ "-DWITH_DLP" ]
92eace7efcSopenharmony_ci  }
93eace7efcSopenharmony_ci
94eace7efcSopenharmony_ci  relative_install_dir = "module/ability"
95eace7efcSopenharmony_ci
96eace7efcSopenharmony_ci  subsystem_name = "ability"
97eace7efcSopenharmony_ci  part_name = "ability_runtime"
98eace7efcSopenharmony_ci}
99