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.
13
14if (defined(ohos_lite)) {
15  import("//build/lite/config/component/lite_component.gni")
16} else {
17  import("//build/ohos.gni")
18}
19
20import("//foundation/distributedhardware/device_manager/device_manager.gni")
21
22if (defined(ohos_lite)) {
23  if (ohos_kernel_type == "linux") {
24    executable("devicemanagerservice") {
25      include_dirs = [
26        "include",
27        "include/advertise",
28        "include/discovery",
29        "include/softbus",
30        "include/ipc/lite",
31        "include/permission/lite",
32        "include/pinholder",
33        "${common_path}/include",
34        "${common_path}/include/ipc",
35        "${common_path}/include/ipc/lite",
36        "${common_path}/include/ipc/model",
37        "${common_path}/include/dfx",
38        "${common_path}/include/dfx/lite",
39        "${utils_path}/include",
40        "${utils_path}/include/appInfo/lite",
41        "${utils_path}/include/crypto",
42        "${utils_path}/include/fwkload/lite",
43        "${utils_path}/include/kvadapter",
44        "${utils_path}/include/timer/lite",
45        "${innerkits_path}/native_cpp/include",
46        "${innerkits_path}/native_cpp/include/ipc",
47        "${innerkits_path}/native_cpp/include/ipc/lite",
48        "//third_party/json/include",
49        "//third_party/bounds_checking_function/include",
50        "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog",
51        "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite",
52        "${interfaces_path}/c/ipc/include",
53        "//foundation/distributedshedule/samgr_lite/interfaces/kits/samgr",
54        "//foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include",
55        "${devicemanager_path}/radar/include",
56        "${softbuscache_parh}/include",
57      ]
58
59      sources = [
60        "${common_path}/src/dm_anonymous.cpp",
61        "src/advertise/advertise_manager.cpp",
62        "src/device_manager_service.cpp",
63        "src/device_manager_service_listener.cpp",
64        "src/discovery/discovery_filter.cpp",
65        "src/discovery/discovery_manager.cpp",
66        "src/ipc/lite/ipc_cmd_parser.cpp",
67        "src/ipc/lite/ipc_server_listener.cpp",
68        "src/ipc/lite/ipc_server_listenermgr.cpp",
69        "src/ipc/lite/ipc_server_main.cpp",
70        "src/ipc/lite/ipc_server_stub.cpp",
71        "src/permission/lite/permission_manager.cpp",
72        "src/pinholder/pin_holder.cpp",
73        "src/pinholder/pin_holder_session.cpp",
74        "src/softbus/mine_softbus_listener.cpp",
75        "src/softbus/softbus_listener.cpp",
76      ]
77
78      defines = [
79        "LITE_DEVICE",
80        "HI_LOG_ENABLE",
81        "DH_LOG_TAG=\"devicemanagerservice\"",
82        "LOG_DOMAIN=0xD004110",
83      ]
84
85      deps = [
86        "${devicemanager_path}/radar:devicemanagerradar",
87        "${softbuscache_parh}:dmdevicecache",
88        "${utils_path}:devicemanagerutils",
89        "//base/security/device_auth/services:deviceauth_sdk",
90        "//base/startup/init/interfaces/innerkits:libbegetutil",
91        "//commonlibrary/utils_lite:utils",
92        "//foundation/communication/dsoftbus:dsoftbus",
93        "//foundation/systemabilitymgr/safwk_lite:safwk_lite",
94        "//foundation/systemabilitymgr/samgr_lite/samgr:samgr",
95        "//third_party/bounds_checking_function:libsec_shared",
96        "//third_party/openssl:libcrypto_shared",
97      ]
98
99      cflags = [
100        "-Wall",
101        "-O2",
102        "-Wdate-time",
103        "-Wextra",
104        "-Wfloat-equal",
105        "-Wshadow",
106      ]
107
108      cflags_cc = cflags
109    }
110  }
111} else if (!support_jsapi) {
112  group("devicemanagerservice") {
113    deps = []
114  }
115} else {
116  config("devicemanagerservice_config") {
117    include_dirs = [
118      "include",
119      "include/advertise",
120      "include/discovery",
121      "include/ipc",
122      "include/ipc/standard",
123      "include/permission/standard",
124      "include/pinholder",
125      "include/publishcommonevent",
126      "include/softbus",
127      "${common_path}/include",
128      "${common_path}/include/dfx",
129      "${common_path}/include/dfx/standard",
130      "${common_path}/include/ipc",
131      "${common_path}/include/ipc/model",
132      "${common_path}/include/ipc/standard",
133      "${devicemanager_path}/commondependency/include",
134      "${devicemanager_path}/radar/include",
135      "${innerkits_path}/native_cpp/include",
136      "${softbuscache_parh}/include",
137      "${utils_path}/include/appInfo/standard",
138      "${utils_path}/include/crypto",
139      "${utils_path}/include/kvadapter",
140      "${utils_path}/include/timer",
141    ]
142  }
143
144  ohos_shared_library("devicemanagerservice") {
145    branch_protector_ret = "pac_ret"
146
147    sanitize = {
148      boundary_sanitize = true
149      cfi = true
150      cfi_cross_dso = true
151      debug = false
152      integer_overflow = true
153      ubsan = true
154    }
155
156    sources = [
157      "${common_path}/src/dfx/standard/dm_hidumper.cpp",
158      "${common_path}/src/dm_anonymous.cpp",
159      "${common_path}/src/ipc/standard/ipc_cmd_register.cpp",
160      "src/advertise/advertise_manager.cpp",
161      "src/device_manager_service.cpp",
162      "src/device_manager_service_listener.cpp",
163      "src/discovery/discovery_filter.cpp",
164      "src/discovery/discovery_manager.cpp",
165      "src/ipc/standard/ipc_cmd_parser.cpp",
166      "src/ipc/standard/ipc_server_client_proxy.cpp",
167      "src/ipc/standard/ipc_server_listener.cpp",
168      "src/ipc/standard/ipc_server_stub.cpp",
169      "src/permission/standard/permission_manager.cpp",
170      "src/pinholder/pin_holder.cpp",
171      "src/pinholder/pin_holder_session.cpp",
172      "src/publishcommonevent/dm_account_common_event.cpp",
173      "src/publishcommonevent/dm_package_common_event.cpp",
174      "src/publishcommonevent/dm_screen_common_event.cpp",
175      "src/softbus/mine_softbus_listener.cpp",
176      "src/softbus/softbus_listener.cpp",
177    ]
178
179    public_configs = [ ":devicemanagerservice_config" ]
180
181    defines = [
182      "HI_LOG_ENABLE",
183      "DH_LOG_TAG=\"devicemanagerservice\"",
184      "LOG_DOMAIN=0xD004110",
185    ]
186
187    deps = [
188      "${devicemanager_path}/commondependency:devicemanagerdependency",
189      "${devicemanager_path}/radar:devicemanagerradar",
190      "${softbuscache_parh}:dmdevicecache",
191      "${utils_path}:devicemanagerutils",
192    ]
193
194    external_deps = [
195      "ability_base:want",
196      "access_token:libaccesstoken_sdk",
197      "access_token:libtokenid_sdk",
198      "c_utils:utils",
199      "common_event_service:cesfwk_core",
200      "common_event_service:cesfwk_innerkits",
201      "device_info_manager:distributed_device_profile_common",
202      "device_info_manager:distributed_device_profile_sdk",
203      "dsoftbus:softbus_client",
204      "eventhandler:libeventhandler",
205      "ffrt:libffrt",
206      "hicollie:libhicollie",
207      "hilog:libhilog",
208      "init:libbeget_proxy",
209      "init:libbegetutil",
210      "ipc:ipc_core",
211      "ipc:ipc_single",
212      "openssl:libcrypto_shared",
213      "os_account:libaccountkits",
214      "safwk:system_ability_fwk",
215      "samgr:samgr_proxy",
216    ]
217
218    if (support_bluetooth || support_wifi) {
219      sources += [
220        "src/publishcommonevent/dm_publish_common_event.cpp",
221        "src/softbus/softbus_publish.cpp",
222      ]
223    }
224
225    if (support_bluetooth) {
226      defines += [ "SUPPORT_BLUETOOTH" ]
227      external_deps += [ "bluetooth:btframework" ]
228    }
229
230    if (support_wifi) {
231      defines += [ "SUPPORT_WIFI" ]
232      external_deps += [ "wifi:wifi_sdk" ]
233    }
234
235    if (support_power_manager) {
236      defines += [ "SUPPORT_POWER_MANAGER" ]
237      external_deps += [ "power_manager:powermgr_client" ]
238    }
239
240    if (support_memmgr) {
241      defines += [ "SUPPORT_MEMMGR" ]
242      external_deps += [ "memmgr:memmgrclient" ]
243    }
244
245    public_external_deps = [ "json:nlohmann_json_static" ]
246
247    subsystem_name = "distributedhardware"
248
249    part_name = "device_manager"
250  }
251}
252