1# Copyright (c) 2023 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("../../windowmanager_aafwk.gni")
16
17config("session_manager_public_config") {
18  visibility = [ ":*" ]
19
20  include_dirs = [
21    "${window_base_path}/interfaces/innerkits/wm",
22    "${window_base_path}/interfaces/include",
23    "${window_base_path}/window_scene",
24    "${window_base_path}/window_scene/common/include",
25    "${window_base_path}/window_scene/interfaces/include",
26    "${window_base_path}/window_scene/screen_session_manager/include",
27    "${window_base_path}/window_scene/screen_session_manager/include/zidl",
28    "${window_base_path}/window_scene/session_manager/include",
29    "${window_base_path}/window_scene/session_manager/include/zidl",
30    "${window_base_path}/window_scene/session_manager_service/include",
31
32    # for session_manager
33    "${window_base_path}/wmserver/include",
34    "${window_base_path}/wmserver/include/zidl",
35
36    # for screen_session_manager
37    "${window_base_path}/utils/include",
38    "${window_base_path}/dm/include",
39    "${window_base_path}/interfaces/innerkits/dm",
40    "${window_base_path}/dmserver/include",
41
42    # for scene session manager
43    "${window_base_path}/interfaces/innerkits/wm",
44    "${window_base_path}/wmserver/include",
45    "${window_base_path}/window_scene/screen_session_manager_client/include",
46
47    # for window_manager_hilog
48    "${window_base_path}/utils/include",
49
50    "${window_base_path}/wm/include",
51    "${window_base_path}/wm/include/zidl",
52  ]
53}
54
55ohos_shared_library("scene_session_manager") {
56  branch_protector_ret = "pac_ret"
57  sanitize = {
58    cfi = true
59    cfi_cross_dso = true
60    cfi_vcall_icall_only = true
61    debug = false
62  }
63  sources = [
64    "../../wm/src/zidl/window_manager_agent_proxy.cpp",
65    "src/anomaly_detection.cpp",
66    "src/distributed_client.cpp",
67    "src/extension_session_manager.cpp",
68    "src/hidump_controller.cpp",
69    "src/publish/scb_dump_subscriber.cpp",
70    "src/scb_session_handler.cpp",
71    "src/scene_input_manager.cpp",
72    "src/scene_session_converter.cpp",
73    "src/scene_session_dirty_manager.cpp",
74    "src/scene_session_manager.cpp",
75    "src/scene_session_manager_lite.cpp",
76    "src/scene_system_ability_listener.cpp",
77    "src/session_listener_controller.cpp",
78    "src/session_manager_agent_controller.cpp",
79    "src/window_scene_config.cpp",
80    "src/zidl/scene_session_manager_lite_stub.cpp",
81    "src/zidl/scene_session_manager_stub.cpp",
82  ]
83
84  public_configs = [ ":session_manager_public_config" ]
85
86  deps = [
87    "${window_base_path}/dm:libdm",
88    "${window_base_path}/utils:libwmutil",
89    "${window_base_path}/utils:libwmutil_base",
90    "${window_base_path}/window_scene/common:window_scene_common",
91    "${window_base_path}/window_scene/intention_event/service:intention_event_anr_manager",
92    "${window_base_path}/window_scene/screen_session_manager_client:screen_session_manager_client",
93    "${window_base_path}/window_scene/session:scene_session",
94    "${window_base_path}/window_scene/session:screen_session",
95  ]
96  public_external_deps = [
97    "ability_runtime:session_handler",
98    "accessibility:accessibility_common",
99    "graphic_2d:librender_service_client",
100    "graphic_2d:window_animation",
101    "input:libmmi-client",
102    "input:libmmi-napi",
103  ]
104  external_deps = [
105    "ability_base:session_info",
106    "ability_base:want",
107    "ability_runtime:ability_context_native",
108    "ability_runtime:ability_deps_wrapper",
109    "ability_runtime:ability_manager",
110    "ability_runtime:ability_start_setting",
111    "ability_runtime:app_manager",
112    "ability_runtime:mission_info",
113    "ability_runtime:session_handler",
114    "ace_engine:ace_uicontent",
115    "bundle_framework:appexecfwk_base",
116    "bundle_framework:appexecfwk_core",
117    "c_utils:utils",
118    "config_policy:configpolicy_util",
119    "dsoftbus:softbus_client",
120    "eventhandler:libeventhandler",
121    "ffrt:libffrt",
122    "graphic_2d:librender_service_client",
123    "hicollie:libhicollie",
124    "hilog:libhilog",
125    "hisysevent:libhisysevent",
126    "hitrace:hitrace_meter",
127    "image_framework:image_native",
128    "init:libbegetutil",
129    "input:libmmi-client",
130    "ipc:ipc_single",
131    "libxml2:libxml2",
132    "napi:ace_napi",
133    "resource_management:global_resmgr",
134    "samgr:samgr_proxy",
135  ]
136
137  defines = []
138  if (defined(global_parts_info) &&
139      defined(global_parts_info.resourceschedule_memmgr_override)) {
140    external_deps += [ "memmgr:memmgrclient" ]
141    defines += [ "MEMMGR_WINDOW_ENABLE" ]
142  }
143
144  if (defined(global_parts_info) &&
145      defined(global_parts_info.powermgr_power_manager)) {
146    external_deps += [ "power_manager:powermgr_client" ]
147    defines += [ "POWER_MANAGER_ENABLE" ]
148  }
149
150  if (defined(global_parts_info) &&
151      defined(global_parts_info.powermgr_display_manager)) {
152    external_deps += [ "display_manager:displaymgr" ]
153    defines += [ "POWERMGR_DISPLAY_MANAGER_ENABLE" ]
154  }
155
156  if (defined(global_parts_info) &&
157      defined(global_parts_info.resourceschedule_soc_perf)) {
158    external_deps += [ "resource_schedule_service:ressched_client" ]
159    defines += [ "RES_SCHED_ENABLE" ]
160  }
161
162  if (defined(global_parts_info) &&
163      defined(global_parts_info.security_security_component_manager)) {
164    external_deps += [ "security_component_manager:libsecurity_component_sdk" ]
165    defines += [ "SECURITY_COMPONENT_MANAGER_ENABLE" ]
166  }
167
168  if (!defined(global_parts_info) ||
169      defined(global_parts_info.inputmethod_imf)) {
170    imf_enable = true
171  } else {
172    imf_enable = false
173  }
174  print("imf_enable: ", imf_enable)
175  if (imf_enable == true) {
176    external_deps += [ "imf:inputmethod_client" ]
177    defines += [ "IMF_ENABLE" ]
178  }
179
180  innerapi_tags = [ "platformsdk" ]
181  part_name = "window_manager"
182  subsystem_name = "window"
183
184  if (build_variant == "user") {
185    defines += [ "IS_RELEASE_VERSION" ]
186  }
187}
188
189ohos_shared_library("session_manager") {
190  branch_protector_ret = "pac_ret"
191  sanitize = {
192    cfi = true
193    cfi_cross_dso = true
194    cfi_vcall_icall_only = true
195    debug = false
196  }
197  sources = [
198    "../../wmserver/src/zidl/mock_session_manager_service_proxy.cpp",
199    "../session_manager_service/src/session_manager_service_proxy.cpp",
200    "src/session_manager.cpp",
201    "src/zidl/scene_session_manager_proxy.cpp",
202  ]
203
204  cflags_cc = [ "-std=c++17" ]
205
206  public_configs = [ ":session_manager_public_config" ]
207
208  deps = [
209    ":session_manager_lite",
210    "${window_base_path}/utils:libwmutil",
211    "${window_base_path}/utils:libwmutil_base",
212    "${window_base_path}/window_scene/common:window_scene_common",
213  ]
214  public_external_deps = [
215    "ability_runtime:session_handler",
216    "accessibility:accessibility_common",
217    "graphic_2d:librender_service_client",
218    "graphic_2d:window_animation",
219    "input:libmmi-client",
220    "input:libmmi-napi",
221  ]
222  external_deps = [
223    "ability_base:session_info",
224    "ability_base:want",
225    "ability_runtime:ability_manager",
226    "ability_runtime:app_manager",
227    "ability_runtime:mission_info",
228    "c_utils:utils",
229    "graphic_2d:librender_service_client",
230    "hilog:libhilog",
231    "image_framework:image_native",
232    "ipc:ipc_single",
233    "safwk:system_ability_fwk",
234    "samgr:samgr_proxy",
235  ]
236
237  innerapi_tags = [ "platformsdk_indirect" ]
238  part_name = "window_manager"
239  subsystem_name = "window"
240
241  defines = []
242  if (build_variant == "user") {
243    defines += [ "IS_RELEASE_VERSION" ]
244  }
245}
246
247ohos_shared_library("session_manager_lite") {
248  branch_protector_ret = "pac_ret"
249  sanitize = {
250    cfi = true
251    cfi_cross_dso = true
252    cfi_vcall_icall_only = true
253    debug = false
254  }
255  sources = [
256    "../../wmserver/src/zidl/mock_session_manager_service_proxy.cpp",
257    "../session_manager_service/src/session_manager_service_proxy.cpp",
258    "src/session_manager_lite.cpp",
259    "src/zidl/scene_session_manager_lite_proxy.cpp",
260  ]
261
262  cflags_cc = [ "-std=c++17" ]
263
264  public_configs = [ ":session_manager_public_config" ]
265
266  deps = [
267    "${window_base_path}/utils:libwmutil_base",
268    "${window_base_path}/window_scene/common:window_scene_common",
269  ]
270
271  public_external_deps = [
272    "ability_runtime:session_handler",
273    "accessibility:accessibility_common",
274    "input:libmmi-napi",
275  ]
276
277  external_deps = [
278    "ability_base:session_info",
279    "ability_base:want",
280    "ability_runtime:mission_info",
281    "c_utils:utils",
282    "hilog:libhilog",
283    "ipc:ipc_single",
284    "samgr:samgr_proxy",
285  ]
286
287  innerapi_tags = [ "platformsdk_indirect" ]
288  part_name = "window_manager"
289  subsystem_name = "window"
290
291  defines = []
292  if (build_variant == "user") {
293    defines += [ "IS_RELEASE_VERSION" ]
294  }
295}
296