1# Copyright (c) 2023-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("../device_status.gni")
15
16config("devicestatus_services_private_config") {
17  include_dirs = [
18    "delegate_task/include",
19    "native/include",
20    "${device_status_utils_path}/include",
21    "${device_status_interfaces_path}/innerkits/include",
22    "${device_status_interfaces_path}/innerkits/interaction/include",
23    "../libs/interface",
24    "interaction/drag/include",
25    "communication/base",
26    "communication/service/include",
27  ]
28
29  if (device_status_intention_framework) {
30    include_dirs += [
31      "${device_status_root_path}/intention/cooperate/server/include",
32      "${device_status_root_path}/intention/drag/server/include",
33      "${device_status_root_path}/intention/ipc/socket/include",
34    ]
35  }
36
37  defines = device_status_default_defines
38}
39
40config("devicestatus_services_public_config") {
41  include_dirs = [
42    "delegate_task/include",
43    "native/include",
44    "interaction/drag/include",
45  ]
46
47  if (device_status_intention_framework) {
48    include_dirs += [
49      "${device_status_root_path}/intention/cooperate/server/include",
50      "${device_status_root_path}/intention/drag/server/include",
51      "${device_status_root_path}/intention/ipc/socket/include",
52    ]
53  }
54}
55
56sources_set = [
57  "communication/service/src/devicestatus_srv_stub.cpp",
58  "delegate_task/src/delegate_tasks.cpp",
59  "native/src/devicestatus_dumper.cpp",
60  "native/src/devicestatus_hisysevent.cpp",
61  "native/src/devicestatus_manager.cpp",
62  "native/src/devicestatus_msdp_client_impl.cpp",
63  "native/src/devicestatus_service.cpp",
64  "native/src/stream_server.cpp",
65]
66
67external_deps_set = [
68  "ability_runtime:app_manager",
69  "access_token:libaccesstoken_sdk",
70  "access_token:libtokenid_sdk",
71  "cJSON:cjson",
72  "c_utils:utils",
73  "graphic_2d:librender_service_client",
74  "graphic_2d:window_animation",
75  "hilog:libhilog",
76  "input:libmmi-client",
77  "ipc:ipc_single",
78  "image_framework:image_native",
79  "safwk:system_ability_fwk",
80  "window_manager:libwm",
81  "window_manager:libdm",
82]
83
84ohos_shared_library("devicestatus_service") {
85  sanitize = {
86    integer_overflow = true
87    ubsan = true
88    boundary_sanitize = true
89    cfi = true
90    cfi_cross_dso = true
91    debug = false
92  }
93
94  branch_protector_ret = "pac_ret"
95
96  shlib_type = "sa"
97
98  sources = sources_set
99
100  configs = [ ":devicestatus_services_private_config" ]
101
102  public_configs = [ ":devicestatus_services_public_config" ]
103
104  deps = [
105    "${device_status_interfaces_path}/innerkits:devicestatus_client",
106    "${device_status_root_path}/utils/ipc:devicestatus_ipc",
107    "${device_status_utils_path}:devicestatus_util",
108    "interaction/drag:interaction_drag",
109  ]
110
111  if (device_status_intention_framework) {
112    deps += [
113      "${device_status_root_path}/intention/adapters/ddm_adapter:intention_ddm_adapter",
114      "${device_status_root_path}/intention/adapters/dsoftbus_adapter:intention_dsoftbus_adapter",
115      "${device_status_root_path}/intention/adapters/input_adapter:intention_input_adapter",
116      "${device_status_root_path}/intention/scheduler/plugin_manager:intention_plugin_manager",
117    ]
118  }
119
120  public_deps = [
121    "${device_status_root_path}/intention/common/epoll:intention_epoll",
122    "${device_status_root_path}/intention/prototype:intention_prototype",
123    "${device_status_root_path}/intention/scheduler/timer_manager:intention_timer_manager",
124    "${device_status_root_path}/intention/services/device_manager:intention_device_manager",
125  ]
126
127  if (device_status_intention_framework) {
128    public_deps += [
129      "${device_status_root_path}/intention/ipc/socket:intention_socket_session_manager",
130      "${device_status_root_path}/intention/ipc/tunnel:intention_tunnel_server",
131      "${device_status_root_path}/intention/services/intention_service:intention_service",
132    ]
133  }
134
135  defines = []
136  if (device_status_sensor_enable) {
137    defines += [ "DEVICE_STATUS_SENSOR_ENABLE" ]
138  }
139  external_deps = external_deps_set
140  if (device_status_intention_framework) {
141    external_deps += [ "device_manager:devicemanagersdk" ]
142  } else {
143    if (device_status_interaction_coordination) {
144      external_deps += [ "device_manager:devicemanagersdk" ]
145    }
146  }
147  if (device_status_memmgr_enable) {
148    defines += [ "MEMMGR_ENABLE" ]
149    external_deps += [ "memmgr:memmgrclient" ]
150  }
151  if (device_status_hisysevent_enable) {
152    external_deps += [ "hisysevent:libhisysevent" ]
153    defines += [ "MSDP_HIVIEWDFX_HISYSEVENT_ENABLE" ]
154  }
155
156  if (device_status_hitrace_enable) {
157    external_deps += [ "hitrace:hitrace_meter" ]
158    defines += [ "MSDP_HIVIEWDFX_HITRACE_ENABLE" ]
159  }
160
161  subsystem_name = "${device_status_subsystem_name}"
162  part_name = "${device_status_part_name}"
163}
164
165ohos_static_library("devicestatus_static_service") {
166  sanitize = {
167    integer_overflow = true
168    ubsan = true
169    boundary_sanitize = true
170    cfi = true
171    cfi_cross_dso = true
172    debug = false
173  }
174
175  sources = sources_set
176
177  configs = [ ":devicestatus_services_private_config" ]
178
179  public_configs = [ ":devicestatus_services_public_config" ]
180
181  deps = [
182    "${device_status_interfaces_path}/innerkits:devicestatus_client",
183    "${device_status_root_path}/utils/ipc:devicestatus_ipc",
184    "${device_status_utils_path}:devicestatus_util",
185    "interaction/drag:interaction_drag",
186  ]
187
188  if (device_status_intention_framework) {
189    deps += [
190      "${device_status_root_path}/intention/adapters/ddm_adapter:intention_ddm_adapter",
191      "${device_status_root_path}/intention/adapters/dsoftbus_adapter:intention_dsoftbus_adapter",
192      "${device_status_root_path}/intention/adapters/input_adapter:intention_input_adapter",
193      "${device_status_root_path}/intention/scheduler/plugin_manager:intention_plugin_manager",
194    ]
195  }
196
197  defines = []
198  if (device_status_sensor_enable) {
199    defines += [ "DEVICE_STATUS_SENSOR_ENABLE" ]
200  }
201
202  public_deps = [
203    "${device_status_root_path}/intention/common/epoll:intention_epoll",
204    "${device_status_root_path}/intention/prototype:intention_prototype",
205    "${device_status_root_path}/intention/scheduler/timer_manager:intention_timer_manager",
206    "${device_status_root_path}/intention/services/device_manager:intention_device_manager",
207  ]
208
209  if (device_status_intention_framework) {
210    public_deps += [
211      "${device_status_root_path}/intention/ipc/socket:intention_socket_session_manager",
212      "${device_status_root_path}/intention/ipc/tunnel:intention_tunnel_server",
213      "${device_status_root_path}/intention/services/intention_service:intention_service",
214    ]
215  }
216
217  external_deps = external_deps_set
218  if (device_status_intention_framework) {
219    external_deps += [ "device_manager:devicemanagersdk" ]
220  } else {
221    if (device_status_interaction_coordination) {
222      external_deps += [ "device_manager:devicemanagersdk" ]
223    }
224  }
225  if (device_status_memmgr_enable) {
226    defines += [ "MEMMGR_ENABLE" ]
227    external_deps += [ "memmgr:memmgrclient" ]
228  }
229
230  if (device_status_hisysevent_enable) {
231    external_deps += [ "hisysevent:libhisysevent" ]
232    defines += [ "MSDP_HIVIEWDFX_HISYSEVENT_ENABLE" ]
233  }
234
235  if (device_status_hitrace_enable) {
236    external_deps += [ "hitrace:hitrace_meter" ]
237    defines += [ "MSDP_HIVIEWDFX_HITRACE_ENABLE" ]
238  }
239
240  subsystem_name = "${device_status_subsystem_name}"
241  part_name = "${device_status_part_name}"
242}
243