1# Copyright (c) 2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13import("//build/ohos.gni")
14import("//foundation/distributeddatamgr/data_share/datashare.gni")
15import("//foundation/distributeddatamgr/kv_store/kv_store.gni")
16
17group("build_module") {
18  deps = []
19  if (!use_platform_win && !use_platforn_mac) {
20    deps += [
21      ":distributeddata_client_sync",
22      ":distributeddata_inner",
23    ]
24  }
25}
26
27config("distributeddatafwk_config") {
28  visibility = [ ":*" ]
29
30  cflags = [
31    "-Wno-multichar",
32    "-Wno-c99-designator",
33  ]
34
35  cflags_cc = [ "-fvisibility=hidden" ]
36
37  include_dirs = [
38    "include",
39    "../../../frameworks/innerkitsimpl/distributeddatamgr/include",
40    "../../../frameworks/innerkitsimpl/distributeddatafwk/include",
41    "../../../frameworks/innerkitsimpl/distributeddatafwk/src",
42    "../../../frameworks/common",
43    "../../../frameworks/innerkitsimpl/kvdb/include",
44    "../../../frameworks/innerkitsimpl/kvdb/src",
45    "${datashare_innerapi_path}/common/include",
46    "${datashare_innerapi_path}/provider/include",
47  ]
48}
49
50config("distributeddatafwk_public_config") {
51  visibility = [ ":*" ]
52
53  include_dirs = [
54    "include",
55    "../../../frameworks/innerkitsimpl/distributeddatafwk/include",
56    "../../../frameworks/common",
57  ]
58}
59
60old_source_config = [
61  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/blob.cpp",
62  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/change_notification.cpp",
63  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/data_query.cpp",
64  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/distributed_kv_data_manager.cpp",
65  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/ikvstore_client_death_observer.cpp",
66  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/ikvstore_observer.cpp",
67  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/kv_utils.cpp",
68  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/kvdb_notifier_client.cpp",
69  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/kvdb_notifier_stub.cpp",
70  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/kvstore_client_death_observer.cpp",
71  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/kvstore_datashare_bridge.cpp",
72  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/kvstore_observer_client.cpp",
73  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/kvstore_service_death_notifier.cpp",
74  "../../../frameworks/innerkitsimpl/distributeddatafwk/src/sync_observer.cpp",
75  "include/types.h",
76]
77
78kvdb_source_config = [
79  "../../../frameworks/innerkitsimpl/kvdb/src/backup_manager.cpp",
80  "../../../frameworks/innerkitsimpl/kvdb/src/convertor.cpp",
81  "../../../frameworks/innerkitsimpl/kvdb/src/dev_manager.cpp",
82  "../../../frameworks/innerkitsimpl/kvdb/src/device_convertor.cpp",
83  "../../../frameworks/innerkitsimpl/kvdb/src/kv_types_util.cpp",
84  "../../../frameworks/innerkitsimpl/kvdb/src/kvdb_service_client.cpp",
85  "../../../frameworks/innerkitsimpl/kvdb/src/observer_bridge.cpp",
86  "../../../frameworks/innerkitsimpl/kvdb/src/security_manager.cpp",
87  "../../../frameworks/innerkitsimpl/kvdb/src/single_store_impl.cpp",
88  "../../../frameworks/innerkitsimpl/kvdb/src/store_factory.cpp",
89  "../../../frameworks/innerkitsimpl/kvdb/src/store_manager.cpp",
90  "../../../frameworks/innerkitsimpl/kvdb/src/store_result_set.cpp",
91  "../../../frameworks/innerkitsimpl/kvdb/src/store_util.cpp",
92  "../../../frameworks/innerkitsimpl/kvdb/src/system_api.cpp",
93  "../../../frameworks/innerkitsimpl/kvdb/src/task_executor.cpp",
94  "../../../frameworks/innerkitsimpl/kvdb/src/task_executor_adapter.cpp",
95  "../../../frameworks/innerkitsimpl/kvdb/src/kv_hiview_reporter.cpp",
96]
97
98deps_config = [
99  "../../../frameworks/libs/distributeddb:distributeddb",
100  "../distributeddatamgr:distributeddata_mgr",
101  "../distributeddata:distributeddata_client_sync",
102  "../../../databaseutils:database_utils",
103]
104
105external_deps_config = [
106  "access_token:libaccesstoken_sdk",
107  "access_token:libtokenid_sdk",
108  "c_utils:utils",
109  "device_manager:devicemanagersdk",
110  "hisysevent:libhisysevent",
111  "hitrace:hitrace_meter",
112  "hitrace:libhitracechain",
113  "hilog:libhilog",
114  "huks:libhukssdk",
115  "ipc:ipc_single",
116  "samgr:samgr_proxy",
117  "file_api:securitylabel",
118]
119
120ohos_shared_library("distributeddata_inner") {
121  branch_protector_ret = "pac_ret"
122  sanitize = {
123    ubsan = true
124    boundary_sanitize = true
125    cfi = true
126    cfi_cross_dso = true
127    debug = false
128  }
129  sources = old_source_config + kvdb_source_config
130  if (qemu_disable) {
131    sources +=
132        [ "../../../frameworks/innerkitsimpl/kvdb/src/auto_sync_timer.cpp" ]
133  } else {
134    sources += [
135      "../../../frameworks/innerkitsimpl/kvdb/src/auto_sync_timer_mock.cpp",
136    ]
137  }
138  configs = [ ":distributeddatafwk_config" ]
139  public_configs = [ ":distributeddatafwk_public_config" ]
140
141  deps = deps_config
142  external_deps = external_deps_config
143  if (dms_service_enable && qemu_disable) {
144    external_deps += [ "dmsfwk:distributed_sdk" ]
145  }
146  innerapi_tags = [ "platformsdk" ]
147  subsystem_name = "distributeddatamgr"
148  part_name = "kv_store"
149}
150
151ohos_shared_library("distributeddata_client_sync") {
152  branch_protector_ret = "pac_ret"
153  sanitize = {
154    ubsan = true
155    boundary_sanitize = true
156    cfi = true
157    cfi_cross_dso = true
158    debug = false
159  }
160  sources = [
161    "${kv_store_base_path}/frameworks/innerkitsimpl/kvdb/src/process_communication_impl.cpp",
162    "${kv_store_base_path}/frameworks/innerkitsimpl/kvdb/src/process_system_api_adapter_impl.cpp",
163  ]
164
165  configs = [ ":distributeddatafwk_config" ]
166
167  deps = [ "${kv_store_base_path}/frameworks/libs/distributeddb:distributeddb" ]
168
169  external_deps = [
170    "c_utils:utils",
171    "file_api:securitylabel",
172    "hilog:libhilog",
173  ]
174  innerapi_tags = [ "platformsdk" ]
175  subsystem_name = "distributeddatamgr"
176  part_name = "kv_store"
177}
178