1# Copyright (c) 2022-2024 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("//build/ohos_var.gni")
15import("//foundation/distributeddatamgr/datamgr_service/datamgr_service.gni")
16
17group("build_module") {
18  deps = [ ":distributeddatasvc" ]
19
20  if (datamgr_service_udmf) {
21    deps += [ "${data_service_path}/service/udmf:udmf_server" ]
22  }
23}
24config("module_public_config") {
25  visibility = [ ":*" ]
26  include_dirs = [
27    "backup/include",
28    "bootstrap/include",
29    "cloud",
30    "common",
31    "config/include",
32    "crypto/include",
33    "dumper/include",
34    "kvdb",
35    "matrix/include",
36    "object",
37    "permission/include",
38    "rdb",
39    "waterversion",
40    "${data_service_path}/adapter/include",
41    "${data_service_path}/app/src",
42    "${data_service_path}/framework/include",
43    "${kv_store_common_path}",
44    "${kv_store_path}/frameworks/innerkitsimpl/distributeddatafwk/include",
45    "${kv_store_path}/frameworks/innerkitsimpl/kvdb/include",
46    "${kv_store_distributeddb_path}/include/",
47    "${kv_store_distributeddb_path}/interfaces/include/",
48    "${kv_store_distributeddb_path}/interfaces/include/relational",
49  ]
50}
51
52ohos_shared_library("distributeddatasvc") {
53  branch_protector_ret = "pac_ret"
54  sanitize = {
55    ubsan = true
56    boundary_sanitize = true
57    cfi = true
58    cfi_cross_dso = true
59    debug = false
60  }
61  include_dirs = [
62    "${dataobject_path}/frameworks/innerkitsimpl/include",
63    "${dataobject_path}/frameworks/innerkitsimpl/include/common",
64    "${dataobject_path}/interfaces/innerkits",
65    "../../../../relational_store/interfaces/inner_api/cloud_data/include",
66    "../../../../relational_store/interfaces/inner_api/common_type/include",
67    "../../../../relational_store/interfaces/inner_api/rdb/include",
68    "${kv_store_distributeddb_path}",
69  ]
70  sources = [
71    "${dataobject_path}/frameworks/innerkitsimpl/src/object_radar_reporter.cpp",
72    "backup/src/backup_manager.cpp",
73    "bootstrap/src/bootstrap.cpp",
74    "cloud/cloud_service_impl.cpp",
75    "cloud/cloud_service_stub.cpp",
76    "cloud/cloud_types_util.cpp",
77    "cloud/cloud_value_util.cpp",
78    "cloud/sync_manager.cpp",
79    "cloud/sync_strategies/network_sync_strategy.cpp",
80    "common/common_types_utils.cpp",
81    "common/value_proxy.cpp",
82    "common/xcollie.cpp",
83    "config/src/config_factory.cpp",
84    "config/src/model/app_id_mapping_config.cpp",
85    "config/src/model/backup_config.cpp",
86    "config/src/model/checker_config.cpp",
87    "config/src/model/cloud_config.cpp",
88    "config/src/model/component_config.cpp",
89    "config/src/model/directory_config.cpp",
90    "config/src/model/global_config.cpp",
91    "config/src/model/network_config.cpp",
92    "config/src/model/protocol_config.cpp",
93    "crypto/src/crypto_manager.cpp",
94    "dumper/src/dump_helper.cpp",
95    "kvdb/auth_delegate.cpp",
96    "kvdb/kvdb_exporter.cpp",
97    "kvdb/kvdb_general_store.cpp",
98    "kvdb/kvdb_notifier_proxy.cpp",
99    "kvdb/kvdb_service_impl.cpp",
100    "kvdb/kvdb_service_stub.cpp",
101    "kvdb/kvdb_watcher.cpp",
102    "kvdb/kvstore_sync_manager.cpp",
103    "kvdb/query_helper.cpp",
104    "kvdb/upgrade.cpp",
105    "kvdb/user_delegate.cpp",
106    "matrix/src/device_matrix.cpp",
107    "matrix/src/matrix_event.cpp",
108    "object/object_asset_loader.cpp",
109    "object/object_asset_machine.cpp",
110    "object/object_callback_proxy.cpp",
111    "object/object_data_listener.cpp",
112    "object/object_dms_handler.cpp",
113    "object/object_manager.cpp",
114    "object/object_service_impl.cpp",
115    "object/object_service_stub.cpp",
116    "object/object_snapshot.cpp",
117    "object/object_types_utils.cpp",
118    "permission/src/permit_delegate.cpp",
119    "rdb/cache_cursor.cpp",
120    "rdb/rdb_asset_loader.cpp",
121    "rdb/rdb_cloud.cpp",
122    "rdb/rdb_cloud_data_translate.cpp",
123    "rdb/rdb_cursor.cpp",
124    "rdb/rdb_general_store.cpp",
125    "rdb/rdb_notifier_proxy.cpp",
126    "rdb/rdb_query.cpp",
127    "rdb/rdb_result_set_impl.cpp",
128    "rdb/rdb_result_set_stub.cpp",
129    "rdb/rdb_service_impl.cpp",
130    "rdb/rdb_service_stub.cpp",
131    "rdb/rdb_watcher.cpp",
132    "waterversion/water_version_manager.cpp",
133  ]
134  cflags = [
135    "-Wno-multichar",
136    "-Wno-c99-designator",
137    "-D_LIBCPP_HAS_COND_CLOCKWAIT",
138  ]
139
140  cflags_cc = [ "-fvisibility=hidden" ]
141
142  configs = [ ":module_public_config" ]
143
144  deps = [
145    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/adapter:distributeddata_adapter",
146    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/adapter/utils:distributeddata_utils_static",
147    "//foundation/distributeddatamgr/datamgr_service/services/distributeddataservice/framework:distributeddatasvcfwk",
148  ]
149
150  external_deps = [
151    "access_token:libaccesstoken_sdk",
152    "access_token:libtokenid_sdk",
153    "c_utils:utils",
154    "device_auth:deviceauth_sdk",
155    "device_manager:devicemanagersdk",
156    "dfs_service:cloudsync_asset_kit_inner",
157    "dfs_service:distributed_file_daemon_kit_inner",
158    "dmsfwk:distributed_sdk",
159    "hicollie:libhicollie",
160    "hilog:libhilog",
161    "hisysevent:libhisysevent",
162    "huks:libhukssdk",
163    "ipc:ipc_core",
164    "json:nlohmann_json_static",
165    "kv_store:distributeddata_inner",
166    "kv_store:distributeddb",
167    "relational_store:native_rdb",
168  ]
169  subsystem_name = "distributeddatamgr"
170
171  part_name = "datamgr_service"
172  defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ]
173}
174