1686862fbSopenharmony_ci# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2686862fbSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3686862fbSopenharmony_ci# you may not use this file except in compliance with the License.
4686862fbSopenharmony_ci# You may obtain a copy of the License at
5686862fbSopenharmony_ci#
6686862fbSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7686862fbSopenharmony_ci#
8686862fbSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9686862fbSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10686862fbSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11686862fbSopenharmony_ci# See the License for the specific language governing permissions and
12686862fbSopenharmony_ci# limitations under the License.
13686862fbSopenharmony_ci
14686862fbSopenharmony_ciimport("//build/ohos.gni")
15686862fbSopenharmony_ciimport("//build/ohos_var.gni")
16686862fbSopenharmony_ciimport("//foundation/ability/dmsfwk/dmsfwk.gni")
17686862fbSopenharmony_ci
18686862fbSopenharmony_cigroup("unittest") {
19686862fbSopenharmony_ci  testonly = true
20686862fbSopenharmony_ci  deps = [ "test:unittest" ]
21686862fbSopenharmony_ci}
22686862fbSopenharmony_ci
23686862fbSopenharmony_ciconfig("distributed_sched_config") {
24686862fbSopenharmony_ci  visibility = [ ":*" ]
25686862fbSopenharmony_ci  visibility += [ "./test/*" ]
26686862fbSopenharmony_ci  include_dirs = [
27686862fbSopenharmony_ci    "include",
28686862fbSopenharmony_ci    "${dms_path}/common/include",
29686862fbSopenharmony_ci    "${dms_path}/interfaces/kits/napi/include",
30686862fbSopenharmony_ci    "${dms_path}/interfaces/innerkits/common/include",
31686862fbSopenharmony_ci    "include/collaborate",
32686862fbSopenharmony_ci    "include/continue",
33686862fbSopenharmony_ci    "include/continue/state",
34686862fbSopenharmony_ci    "include/continue/state/source_state",
35686862fbSopenharmony_ci    "include/continue/state/sink_state",
36686862fbSopenharmony_ci    "include/distributedWant",
37686862fbSopenharmony_ci    "include/softbus_adapter/transport",
38686862fbSopenharmony_ci    "include/softbus_adapter/allconnectmgr",
39686862fbSopenharmony_ci  ]
40686862fbSopenharmony_ci  defines = []
41686862fbSopenharmony_ci  if (dmsfwk_mission_manager) {
42686862fbSopenharmony_ci    defines += [ "SUPPORT_DISTRIBUTED_MISSION_MANAGER" ]
43686862fbSopenharmony_ci  }
44686862fbSopenharmony_ci  if (dmsfwk_report_memmgr || dmsfwk_report_memmgr_plugins) {
45686862fbSopenharmony_ci    defines += [ "SUPPORT_DISTRIBUTEDCOMPONENT_TO_MEMMGR" ]
46686862fbSopenharmony_ci  }
47686862fbSopenharmony_ci  if (dmsfwk_standard_form_share) {
48686862fbSopenharmony_ci    defines += [ "SUPPORT_DISTRIBUTED_FORM_SHARE" ]
49686862fbSopenharmony_ci  }
50686862fbSopenharmony_ci  if (efficiency_manager_service_enable) {
51686862fbSopenharmony_ci    defines += [ "EFFICIENCY_MANAGER_ENABLE" ]
52686862fbSopenharmony_ci  }
53686862fbSopenharmony_ci  if (dmsfwk_service_disable) {
54686862fbSopenharmony_ci    defines += [ "DMS_SERVICE_DISABLE" ]
55686862fbSopenharmony_ci  }
56686862fbSopenharmony_ci  if (os_account_part) {
57686862fbSopenharmony_ci    defines += [ "OS_ACCOUNT_PART" ]
58686862fbSopenharmony_ci  }
59686862fbSopenharmony_ci  if (dmsfwk_ces_listener) {
60686862fbSopenharmony_ci    defines += [ "SUPPORT_COMMON_EVENT_SERVICE" ]
61686862fbSopenharmony_ci  }
62686862fbSopenharmony_ci  if (dmsfwk_mmi_listener) {
63686862fbSopenharmony_ci    defines += [ "SUPPORT_MULTIMODALINPUT_SERVICE" ]
64686862fbSopenharmony_ci  }
65686862fbSopenharmony_ci  if (use_libfuzzer || use_clang_coverage) {
66686862fbSopenharmony_ci    defines += [ "TEST_COVERAGE" ]
67686862fbSopenharmony_ci  }
68686862fbSopenharmony_ci}
69686862fbSopenharmony_ci
70686862fbSopenharmony_ciohos_shared_library("distributedschedsvr") {
71686862fbSopenharmony_ci  branch_protector_ret = "pac_ret"
72686862fbSopenharmony_ci  sanitize = {
73686862fbSopenharmony_ci    cfi = true
74686862fbSopenharmony_ci    cfi_cross_dso = true
75686862fbSopenharmony_ci    debug = false
76686862fbSopenharmony_ci  }
77686862fbSopenharmony_ci
78686862fbSopenharmony_ci  install_enable = true
79686862fbSopenharmony_ci
80686862fbSopenharmony_ci  if (!dmsfwk_softbus_adapter_common) {
81686862fbSopenharmony_ci    cflags = [
82686862fbSopenharmony_ci      "-DDMSFWK_SAME_ACCOUNT",
83686862fbSopenharmony_ci      "-DDMSFWK_INTERACTIVE_ADAPTER",
84686862fbSopenharmony_ci      "-DDMSFWK_ALL_CONNECT_MGR",
85686862fbSopenharmony_ci    ]
86686862fbSopenharmony_ci  }
87686862fbSopenharmony_ci
88686862fbSopenharmony_ci  sources = [
89686862fbSopenharmony_ci    "src/ability_connection_wrapper_proxy.cpp",
90686862fbSopenharmony_ci    "src/ability_connection_wrapper_stub.cpp",
91686862fbSopenharmony_ci    "src/adapter/dnetwork_adapter.cpp",
92686862fbSopenharmony_ci    "src/app_state_observer.cpp",
93686862fbSopenharmony_ci    "src/bundle/bundle_manager_callback_stub.cpp",
94686862fbSopenharmony_ci    "src/bundle/bundle_manager_internal.cpp",
95686862fbSopenharmony_ci    "src/collaborate/dsched_collaborate_callback_mgr.cpp",
96686862fbSopenharmony_ci    "src/connect_death_recipient.cpp",
97686862fbSopenharmony_ci    "src/continue/dsched_continue.cpp",
98686862fbSopenharmony_ci    "src/continue/dsched_continue_event.cpp",
99686862fbSopenharmony_ci    "src/continue/dsched_continue_event_handler.cpp",
100686862fbSopenharmony_ci    "src/continue/dsched_continue_manager.cpp",
101686862fbSopenharmony_ci    "src/continue/state/dsched_continue_state_machine.cpp",
102686862fbSopenharmony_ci    "src/continue/state/sink_state/dsched_continue_data_state.cpp",
103686862fbSopenharmony_ci    "src/continue/state/sink_state/dsched_continue_sink_end_state.cpp",
104686862fbSopenharmony_ci    "src/continue/state/sink_state/dsched_continue_sink_start_state.cpp",
105686862fbSopenharmony_ci    "src/continue/state/sink_state/dsched_continue_sink_wait_end_state.cpp",
106686862fbSopenharmony_ci    "src/continue/state/source_state/dsched_continue_ability_state.cpp",
107686862fbSopenharmony_ci    "src/continue/state/source_state/dsched_continue_source_end_state.cpp",
108686862fbSopenharmony_ci    "src/continue/state/source_state/dsched_continue_source_start_state.cpp",
109686862fbSopenharmony_ci    "src/continue/state/source_state/dsched_continue_source_wait_end_state.cpp",
110686862fbSopenharmony_ci    "src/continue_scene_session_handler.cpp",
111686862fbSopenharmony_ci    "src/datashare_manager.cpp",
112686862fbSopenharmony_ci    "src/deviceManager/dms_device_info.cpp",
113686862fbSopenharmony_ci    "src/dfx/distributed_radar.cpp",
114686862fbSopenharmony_ci    "src/dfx/distributed_sched_dumper.cpp",
115686862fbSopenharmony_ci    "src/dfx/distributed_ue.cpp",
116686862fbSopenharmony_ci    "src/dfx/dms_continue_time_dumper.cpp",
117686862fbSopenharmony_ci    "src/dfx/dms_hisysevent_report.cpp",
118686862fbSopenharmony_ci    "src/dfx/dms_hitrace_chain.cpp",
119686862fbSopenharmony_ci    "src/distributedWant/distributed_operation.cpp",
120686862fbSopenharmony_ci    "src/distributedWant/distributed_operation_builder.cpp",
121686862fbSopenharmony_ci    "src/distributedWant/distributed_want.cpp",
122686862fbSopenharmony_ci    "src/distributedWant/distributed_want_params.cpp",
123686862fbSopenharmony_ci    "src/distributedWant/distributed_want_params_wrapper.cpp",
124686862fbSopenharmony_ci    "src/distributed_device_node_listener.cpp",
125686862fbSopenharmony_ci    "src/distributed_event_died_listener.cpp",
126686862fbSopenharmony_ci    "src/distributed_sched_adapter.cpp",
127686862fbSopenharmony_ci    "src/distributed_sched_continuation.cpp",
128686862fbSopenharmony_ci    "src/distributed_sched_permission.cpp",
129686862fbSopenharmony_ci    "src/distributed_sched_proxy.cpp",
130686862fbSopenharmony_ci    "src/distributed_sched_service.cpp",
131686862fbSopenharmony_ci    "src/distributed_sched_stub.cpp",
132686862fbSopenharmony_ci    "src/dms_callback_task.cpp",
133686862fbSopenharmony_ci    "src/dms_free_install_callback.cpp",
134686862fbSopenharmony_ci    "src/dms_free_install_callback_proxy.cpp",
135686862fbSopenharmony_ci    "src/dms_free_install_callback_stub.cpp",
136686862fbSopenharmony_ci    "src/dms_token_callback.cpp",
137686862fbSopenharmony_ci    "src/dms_version_manager.cpp",
138686862fbSopenharmony_ci    "src/dtbschedmgr_device_info_storage.cpp",
139686862fbSopenharmony_ci    "src/softbus_adapter/allconnectmgr/dsched_all_connect_manager.cpp",
140686862fbSopenharmony_ci    "src/softbus_adapter/transport/dsched_data_buffer.cpp",
141686862fbSopenharmony_ci    "src/softbus_adapter/transport/dsched_softbus_session.cpp",
142686862fbSopenharmony_ci    "src/softbus_adapter/transport/dsched_transport_softbus_adapter.cpp",
143686862fbSopenharmony_ci    "src/switch_status_dependency.cpp",
144686862fbSopenharmony_ci  ]
145686862fbSopenharmony_ci
146686862fbSopenharmony_ci  if (!dmsfwk_softbus_adapter_common) {
147686862fbSopenharmony_ci    sources += [ "src/softbus_adapter/softbus_adapter.cpp" ]
148686862fbSopenharmony_ci  } else {
149686862fbSopenharmony_ci    sources += [ "src/softbus_adapter/softbus_adapter_common.cpp" ]
150686862fbSopenharmony_ci  }
151686862fbSopenharmony_ci
152686862fbSopenharmony_ci  configs = [
153686862fbSopenharmony_ci    ":distributed_sched_config",
154686862fbSopenharmony_ci    "//foundation/ability/dmsfwk/services/dtbschedmgr/test/resource:coverage_flags",
155686862fbSopenharmony_ci  ]
156686862fbSopenharmony_ci
157686862fbSopenharmony_ci  deps = [ "${dms_path}/common:distributed_sched_utils" ]
158686862fbSopenharmony_ci
159686862fbSopenharmony_ci  external_deps = [
160686862fbSopenharmony_ci    "ability_base:base",
161686862fbSopenharmony_ci    "ability_base:want",
162686862fbSopenharmony_ci    "ability_base:zuri",
163686862fbSopenharmony_ci    "ability_runtime:ability_manager",
164686862fbSopenharmony_ci    "ability_runtime:app_manager",
165686862fbSopenharmony_ci    "ability_runtime:dataobs_manager",
166686862fbSopenharmony_ci    "ability_runtime:mission_info",
167686862fbSopenharmony_ci    "access_token:libaccesstoken_sdk",
168686862fbSopenharmony_ci    "access_token:libtokensetproc_shared",
169686862fbSopenharmony_ci    "bundle_framework:appexecfwk_base",
170686862fbSopenharmony_ci    "bundle_framework:appexecfwk_core",
171686862fbSopenharmony_ci    "cJSON:cjson",
172686862fbSopenharmony_ci    "c_utils:utils",
173686862fbSopenharmony_ci    "data_share:datashare_consumer",
174686862fbSopenharmony_ci    "device_auth:deviceauth_sdk",
175686862fbSopenharmony_ci    "device_info_manager:distributed_device_profile_common",
176686862fbSopenharmony_ci    "device_info_manager:distributed_device_profile_sdk",
177686862fbSopenharmony_ci    "device_manager:devicemanagersdk",
178686862fbSopenharmony_ci    "device_security_level:dslm_sdk",
179686862fbSopenharmony_ci    "distributed_bundle_framework:dbms_fwk",
180686862fbSopenharmony_ci    "dsoftbus:softbus_client",
181686862fbSopenharmony_ci    "eventhandler:libeventhandler",
182686862fbSopenharmony_ci    "hilog:libhilog",
183686862fbSopenharmony_ci    "hisysevent:libhisysevent",
184686862fbSopenharmony_ci    "hitrace:hitrace_meter",
185686862fbSopenharmony_ci    "hitrace:libhitracechain",
186686862fbSopenharmony_ci    "init:libbegetutil",
187686862fbSopenharmony_ci    "ipc:ipc_core",
188686862fbSopenharmony_ci    "kv_store:distributeddata_inner",
189686862fbSopenharmony_ci    "os_account:libaccountkits",
190686862fbSopenharmony_ci    "safwk:system_ability_fwk",
191686862fbSopenharmony_ci    "samgr:samgr_proxy",
192686862fbSopenharmony_ci    "wifi:wifi_sdk",
193686862fbSopenharmony_ci    "window_manager:libwsutils",
194686862fbSopenharmony_ci    "window_manager:scene_session",
195686862fbSopenharmony_ci    "window_manager:session_manager_lite",
196686862fbSopenharmony_ci  ]
197686862fbSopenharmony_ci  if (os_account_part) {
198686862fbSopenharmony_ci    external_deps += [ "os_account:os_account_innerkits" ]
199686862fbSopenharmony_ci  }
200686862fbSopenharmony_ci
201686862fbSopenharmony_ci  if (efficiency_manager_service_enable) {
202686862fbSopenharmony_ci    external_deps += [ "resource_schedule_service:ressched_client" ]
203686862fbSopenharmony_ci  }
204686862fbSopenharmony_ci
205686862fbSopenharmony_ci  if (dmsfwk_standard_form_share) {
206686862fbSopenharmony_ci    external_deps += [ "form_fwk:form_manager" ]
207686862fbSopenharmony_ci    sources += [ "src/form_mgr_death_recipient.cpp" ]
208686862fbSopenharmony_ci  }
209686862fbSopenharmony_ci
210686862fbSopenharmony_ci  if (dmsfwk_mission_manager) {
211686862fbSopenharmony_ci    sources += [
212686862fbSopenharmony_ci      "src/mission/distributed_bm_storage.cpp",
213686862fbSopenharmony_ci      "src/mission/distributed_bundle_info.cpp",
214686862fbSopenharmony_ci      "src/mission/distributed_data_change_listener.cpp",
215686862fbSopenharmony_ci      "src/mission/distributed_data_storage.cpp",
216686862fbSopenharmony_ci      "src/mission/distributed_mission_broadcast_listener.cpp",
217686862fbSopenharmony_ci      "src/mission/distributed_mission_change_listener.cpp",
218686862fbSopenharmony_ci      "src/mission/distributed_mission_died_listener.cpp",
219686862fbSopenharmony_ci      "src/mission/distributed_mission_focused_listener.cpp",
220686862fbSopenharmony_ci      "src/mission/distributed_mission_info.cpp",
221686862fbSopenharmony_ci      "src/mission/distributed_sched_mission_manager.cpp",
222686862fbSopenharmony_ci      "src/mission/dms_continue_recv_manager.cpp",
223686862fbSopenharmony_ci      "src/mission/dms_continue_send_manager.cpp",
224686862fbSopenharmony_ci      "src/mission/dsched_sync_e2e.cpp",
225686862fbSopenharmony_ci      "src/mission/kvstore_death_recipient.cpp",
226686862fbSopenharmony_ci      "src/mission/mission_changed_notify.cpp",
227686862fbSopenharmony_ci      "src/mission/mission_info_converter.cpp",
228686862fbSopenharmony_ci      "src/mission/snapshot.cpp",
229686862fbSopenharmony_ci      "src/mission/snapshot_converter.cpp",
230686862fbSopenharmony_ci      "src/mission/wifi_state_adapter.cpp",
231686862fbSopenharmony_ci      "src/mission/wifi_state_listener.cpp",
232686862fbSopenharmony_ci    ]
233686862fbSopenharmony_ci    external_deps += [
234686862fbSopenharmony_ci      "config_policy:configpolicy_util",
235686862fbSopenharmony_ci      "image_framework:image_native",
236686862fbSopenharmony_ci    ]
237686862fbSopenharmony_ci  }
238686862fbSopenharmony_ci
239686862fbSopenharmony_ci  if (dmsfwk_report_memmgr) {
240686862fbSopenharmony_ci    external_deps += [ "memmgr:memmgrclient" ]
241686862fbSopenharmony_ci  }
242686862fbSopenharmony_ci
243686862fbSopenharmony_ci  if (dmsfwk_report_memmgr_plugins) {
244686862fbSopenharmony_ci    external_deps += [ "memmgr_override:memmgrclient" ]
245686862fbSopenharmony_ci  }
246686862fbSopenharmony_ci
247686862fbSopenharmony_ci  if (dmsfwk_ces_listener) {
248686862fbSopenharmony_ci    external_deps += [ "common_event_service:cesfwk_innerkits" ]
249686862fbSopenharmony_ci    sources += [ "src/common_event_listener.cpp" ]
250686862fbSopenharmony_ci  }
251686862fbSopenharmony_ci
252686862fbSopenharmony_ci  if (dmsfwk_mmi_listener) {
253686862fbSopenharmony_ci    external_deps += [ "input:libmmi-client" ]
254686862fbSopenharmony_ci    sources += [ "src/adapter/mmi_adapter.cpp" ]
255686862fbSopenharmony_ci  } else {
256686862fbSopenharmony_ci    sources += [ "src/adapter/mmi_adapter_common.cpp" ]
257686862fbSopenharmony_ci  }
258686862fbSopenharmony_ci
259686862fbSopenharmony_ci  install_images = [ system_base_dir ]
260686862fbSopenharmony_ci  relative_install_dir = "platformsdk"
261686862fbSopenharmony_ci  part_name = "dmsfwk"
262686862fbSopenharmony_ci  subsystem_name = "ability"
263686862fbSopenharmony_ci}
264