1# Copyright (c) 2021-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.
13
14import("//build/ohos.gni")
15import("//build/ohos_var.gni")
16import("//foundation/ability/dmsfwk/dmsfwk.gni")
17
18group("unittest") {
19  testonly = true
20  deps = [ "test:unittest" ]
21}
22
23config("distributed_sched_config") {
24  visibility = [ ":*" ]
25  visibility += [ "./test/*" ]
26  include_dirs = [
27    "include",
28    "${dms_path}/common/include",
29    "${dms_path}/interfaces/kits/napi/include",
30    "${dms_path}/interfaces/innerkits/common/include",
31    "include/collaborate",
32    "include/continue",
33    "include/continue/state",
34    "include/continue/state/source_state",
35    "include/continue/state/sink_state",
36    "include/distributedWant",
37    "include/softbus_adapter/transport",
38    "include/softbus_adapter/allconnectmgr",
39  ]
40  defines = []
41  if (dmsfwk_mission_manager) {
42    defines += [ "SUPPORT_DISTRIBUTED_MISSION_MANAGER" ]
43  }
44  if (dmsfwk_report_memmgr || dmsfwk_report_memmgr_plugins) {
45    defines += [ "SUPPORT_DISTRIBUTEDCOMPONENT_TO_MEMMGR" ]
46  }
47  if (dmsfwk_standard_form_share) {
48    defines += [ "SUPPORT_DISTRIBUTED_FORM_SHARE" ]
49  }
50  if (efficiency_manager_service_enable) {
51    defines += [ "EFFICIENCY_MANAGER_ENABLE" ]
52  }
53  if (dmsfwk_service_disable) {
54    defines += [ "DMS_SERVICE_DISABLE" ]
55  }
56  if (os_account_part) {
57    defines += [ "OS_ACCOUNT_PART" ]
58  }
59  if (dmsfwk_ces_listener) {
60    defines += [ "SUPPORT_COMMON_EVENT_SERVICE" ]
61  }
62  if (dmsfwk_mmi_listener) {
63    defines += [ "SUPPORT_MULTIMODALINPUT_SERVICE" ]
64  }
65}
66
67ohos_shared_library("distributedschedsvr") {
68  branch_protector_ret = "pac_ret"
69  sanitize = {
70    cfi = true
71    cfi_cross_dso = true
72    debug = false
73  }
74
75  install_enable = true
76
77  if (!dmsfwk_softbus_adapter_common) {
78    cflags = [
79      "-DDMSFWK_SAME_ACCOUNT",
80      "-DDMSFWK_ALL_CONNECT_MGR",
81    ]
82  }
83
84  sources = [
85    "src/ability_connection_wrapper_proxy.cpp",
86    "src/ability_connection_wrapper_stub.cpp",
87    "src/adapter/dnetwork_adapter.cpp",
88    "src/app_state_observer.cpp",
89    "src/bundle/bundle_manager_callback_stub.cpp",
90    "src/bundle/bundle_manager_internal.cpp",
91    "src/collaborate/dsched_collaborate_callback_mgr.cpp",
92    "src/connect_death_recipient.cpp",
93    "src/continue/dsched_continue.cpp",
94    "src/continue/dsched_continue_event.cpp",
95    "src/continue/dsched_continue_event_handler.cpp",
96    "src/continue/dsched_continue_manager.cpp",
97    "src/continue/state/dsched_continue_state_machine.cpp",
98    "src/continue/state/sink_state/dsched_continue_data_state.cpp",
99    "src/continue/state/sink_state/dsched_continue_sink_end_state.cpp",
100    "src/continue/state/sink_state/dsched_continue_sink_start_state.cpp",
101    "src/continue/state/sink_state/dsched_continue_sink_wait_end_state.cpp",
102    "src/continue/state/source_state/dsched_continue_ability_state.cpp",
103    "src/continue/state/source_state/dsched_continue_source_end_state.cpp",
104    "src/continue/state/source_state/dsched_continue_source_start_state.cpp",
105    "src/continue/state/source_state/dsched_continue_source_wait_end_state.cpp",
106    "src/continue_scene_session_handler.cpp",
107    "src/datashare_manager.cpp",
108    "src/deviceManager/dms_device_info.cpp",
109    "src/dfx/distributed_radar.cpp",
110    "src/dfx/distributed_sched_dumper.cpp",
111    "src/dfx/distributed_ue.cpp",
112    "src/dfx/dms_continue_time_dumper.cpp",
113    "src/dfx/dms_hisysevent_report.cpp",
114    "src/dfx/dms_hitrace_chain.cpp",
115    "src/distributedWant/distributed_operation.cpp",
116    "src/distributedWant/distributed_operation_builder.cpp",
117    "src/distributedWant/distributed_want.cpp",
118    "src/distributedWant/distributed_want_params.cpp",
119    "src/distributedWant/distributed_want_params_wrapper.cpp",
120    "src/distributed_device_node_listener.cpp",
121    "src/distributed_event_died_listener.cpp",
122    "src/distributed_sched_adapter.cpp",
123    "src/distributed_sched_continuation.cpp",
124    "src/distributed_sched_permission.cpp",
125    "src/distributed_sched_proxy.cpp",
126    "src/distributed_sched_service.cpp",
127    "src/distributed_sched_stub.cpp",
128    "src/dms_callback_task.cpp",
129    "src/dms_free_install_callback.cpp",
130    "src/dms_free_install_callback_proxy.cpp",
131    "src/dms_free_install_callback_stub.cpp",
132    "src/dms_token_callback.cpp",
133    "src/dms_version_manager.cpp",
134    "src/dtbschedmgr_device_info_storage.cpp",
135    "src/softbus_adapter/allconnectmgr/dsched_all_connect_manager.cpp",
136    "src/softbus_adapter/transport/dsched_data_buffer.cpp",
137    "src/softbus_adapter/transport/dsched_softbus_session.cpp",
138    "src/softbus_adapter/transport/dsched_transport_softbus_adapter.cpp",
139    "src/switch_status_dependency.cpp",
140  ]
141
142  if (!dmsfwk_softbus_adapter_common) {
143    sources += [ "src/softbus_adapter/softbus_adapter.cpp" ]
144  } else {
145    sources += [ "src/softbus_adapter/softbus_adapter_common.cpp" ]
146  }
147
148  configs = [
149    ":distributed_sched_config",
150    "//foundation/ability/dmsfwk/services/dtbschedmgr/test/resource:coverage_flags",
151  ]
152
153  deps = [ "${dms_path}/common:distributed_sched_utils" ]
154
155  external_deps = [
156    "ability_base:base",
157    "ability_base:want",
158    "ability_base:zuri",
159    "ability_runtime:ability_manager",
160    "ability_runtime:app_manager",
161    "ability_runtime:dataobs_manager",
162    "ability_runtime:mission_info",
163    "access_token:libaccesstoken_sdk",
164    "access_token:libtokensetproc_shared",
165    "bundle_framework:appexecfwk_base",
166    "bundle_framework:appexecfwk_core",
167    "cJSON:cjson",
168    "c_utils:utils",
169    "data_share:datashare_consumer",
170    "device_auth:deviceauth_sdk",
171    "device_info_manager:distributed_device_profile_common",
172    "device_info_manager:distributed_device_profile_sdk",
173    "device_manager:devicemanagersdk",
174    "device_security_level:dslm_sdk",
175    "distributed_bundle_framework:dbms_fwk",
176    "dsoftbus:softbus_client",
177    "eventhandler:libeventhandler",
178    "hilog:libhilog",
179    "hisysevent:libhisysevent",
180    "hitrace:hitrace_meter",
181    "hitrace:libhitracechain",
182    "init:libbegetutil",
183    "ipc:ipc_core",
184    "kv_store:distributeddata_inner",
185    "os_account:libaccountkits",
186    "safwk:system_ability_fwk",
187    "samgr:samgr_proxy",
188    "wifi:wifi_sdk",
189    "window_manager:libwsutils",
190    "window_manager:scene_session",
191    "window_manager:session_manager_lite",
192  ]
193  if (os_account_part) {
194    external_deps += [ "os_account:os_account_innerkits" ]
195  }
196
197  if (efficiency_manager_service_enable) {
198    external_deps += [ "resource_schedule_service:ressched_client" ]
199  }
200
201  if (dmsfwk_standard_form_share) {
202    external_deps += [ "form_fwk:form_manager" ]
203    sources += [ "src/form_mgr_death_recipient.cpp" ]
204  }
205
206  if (dmsfwk_mission_manager) {
207    sources += [
208      "src/mission/distributed_bm_storage.cpp",
209      "src/mission/distributed_bundle_info.cpp",
210      "src/mission/distributed_data_change_listener.cpp",
211      "src/mission/distributed_data_storage.cpp",
212      "src/mission/distributed_mission_broadcast_listener.cpp",
213      "src/mission/distributed_mission_change_listener.cpp",
214      "src/mission/distributed_mission_died_listener.cpp",
215      "src/mission/distributed_mission_focused_listener.cpp",
216      "src/mission/distributed_mission_info.cpp",
217      "src/mission/distributed_sched_mission_manager.cpp",
218      "src/mission/dms_continue_recv_manager.cpp",
219      "src/mission/dms_continue_send_manager.cpp",
220      "src/mission/dsched_sync_e2e.cpp",
221      "src/mission/kvstore_death_recipient.cpp",
222      "src/mission/mission_changed_notify.cpp",
223      "src/mission/mission_info_converter.cpp",
224      "src/mission/snapshot.cpp",
225      "src/mission/snapshot_converter.cpp",
226      "src/mission/wifi_state_adapter.cpp",
227      "src/mission/wifi_state_listener.cpp",
228    ]
229    external_deps += [ "image_framework:image_native" ]
230  }
231
232  if (dmsfwk_report_memmgr) {
233    external_deps += [ "memmgr:memmgrclient" ]
234  }
235
236  if (dmsfwk_report_memmgr_plugins) {
237    external_deps += [ "memmgr_override:memmgrclient" ]
238  }
239
240  if (dmsfwk_ces_listener) {
241    external_deps += [ "common_event_service:cesfwk_innerkits" ]
242    sources += [ "src/common_event_listener.cpp" ]
243  }
244
245  if (dmsfwk_mmi_listener) {
246    external_deps += [ "input:libmmi-client" ]
247    sources += [ "src/adapter/mmi_adapter.cpp" ]
248  } else {
249    sources += [ "src/adapter/mmi_adapter_common.cpp" ]
250  }
251
252  install_images = [ system_base_dir ]
253  relative_install_dir = "platformsdk"
254  part_name = "dmsfwk"
255  subsystem_name = "ability"
256}
257