• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2025 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/config/components/idl_tool/idl.gni")
15import("//build/ohos.gni")
16import("../windowmanager_aafwk.gni")
17
18config("libidl_config") {
19  include_dirs = [ "${target_gen_dir}" ]
20}
21
22config("libwms_config") {
23  visibility = [ ":*" ]
24
25  include_dirs = [
26    "include",
27    "include/utils",
28    "include/window_snapshot",
29    "include/window_group",
30    "../interfaces/innerkits/wm",
31    "../interfaces/innerkits/dm",
32    "../wm/include",
33    "../utils/include",
34    "../dm/include",
35    "../dmserver/include",
36  ]
37}
38
39config("libmockwms_config") {
40  visibility = [ ":*" ]
41
42  include_dirs = [
43    "include",
44    "${window_base_path}/utils/include",
45    "${window_base_path}/interfaces/innerkits/wm",
46    "${window_base_path}/window_scene/session_manager_service/include",
47    "${window_base_path}/window_scene/session_manager/include/zidl",
48
49    # for session_manager
50    "${window_base_path}/interfaces/innerkits/wm",
51    "${window_base_path}/interfaces/include",
52    "${window_base_path}/window_scene",
53    "${window_base_path}/window_scene/interfaces/include",
54    "${window_base_path}/window_scene/screen_session_manager/include",
55    "${window_base_path}/window_scene/screen_session_manager/include/zidl",
56    "${window_base_path}/window_scene/session_manager/include",
57    "${window_base_path}/window_scene/session_manager/include/zidl",
58    "${window_base_path}/window_scene/session_manager_service/include",
59
60    # for session_manager
61    "${window_base_path}/wmserver/include",
62    "${window_base_path}/wmserver/include/zidl",
63
64    # for screen_session_manager
65    "${window_base_path}/utils/include",
66    "${window_base_path}/dm/include",
67    "${window_base_path}/interfaces/innerkits/dm",
68    "${window_base_path}/dmserver/include",
69    "${window_base_path}/window_scene/screen_session_manager_client/include",
70
71    # for scene session manager
72    "${window_base_path}/interfaces/innerkits/wm",
73    "${window_base_path}/wmserver/include",
74
75    # for window_manager_hilog
76    "${window_base_path}/utils/include",
77
78    "${window_base_path}/wm/include",
79    "${window_base_path}/wm/include/zidl",
80  ]
81}
82
83idl_gen_interface("mock_session_manager_service_interface") {
84  sources = [ "IMockSessionManagerInterface.idl" ]
85  log_domainid = "0xD004200"
86  log_tag = "IMockSessionManager"
87  part_name = "window_manager"
88  subsystem_name = "window"
89}
90
91ohos_source_set("mock_session_manager_service_stub") {
92  branch_protector_ret = "pac_ret"
93  sanitize = {
94    cfi = true
95    cfi_cross_dso = true
96    cfi_vcall_icall_only = true
97    debug = false
98  }
99  idl_gen_files = get_target_outputs(":mock_session_manager_service_interface")
100  sources = filter_include(idl_gen_files, [ "*_stub.cpp" ])
101  configs = [ ":libidl_config" ]
102  deps = [ ":mock_session_manager_service_interface" ]
103  external_deps = [
104    "hilog:libhilog",
105    "ipc:ipc_core",
106  ]
107  part_name = "window_manager"
108  subsystem_name = "window"
109}
110
111ohos_source_set("mock_session_manager_service_proxy") {
112  branch_protector_ret = "pac_ret"
113  sanitize = {
114    cfi = true
115    cfi_cross_dso = true
116    cfi_vcall_icall_only = true
117    debug = false
118  }
119  idl_gen_files = get_target_outputs(":mock_session_manager_service_interface")
120  sources = filter_include(idl_gen_files, [ "*_proxy.cpp" ])
121  configs = [ ":libidl_config" ]
122  deps = [ ":mock_session_manager_service_interface" ]
123  external_deps = [
124    "hilog:libhilog",
125    "ipc:ipc_core",
126  ]
127  part_name = "window_manager"
128  subsystem_name = "window"
129}
130
131ohos_shared_library("sms") {
132  branch_protector_ret = "pac_ret"
133  sanitize = {
134    cfi = true
135    cfi_cross_dso = true
136    cfi_vcall_icall_only = true
137    debug = false
138  }
139  sources = [
140    "${window_base_path}/window_scene/screen_session_manager/src/screen_session_manager_lite.cpp",
141    "${window_base_path}/window_scene/screen_session_manager/src/zidl/screen_session_manager_lite_stub.cpp",
142    "${window_base_path}/window_scene/session_manager/src/zidl/scene_session_manager_proxy.cpp",
143    "src/mock_session_manager_service.cpp",
144    "src/zidl/session_manager_service_recover_proxy.cpp",
145  ]
146
147  public_configs = [
148    ":libmockwms_config",
149    ":libidl_config",
150  ]
151
152  deps = [
153    ":mock_session_manager_service_stub",
154    "${window_base_path}/utils:libwmutil",
155    "${window_base_path}/utils:libwmutil_base",
156    "${window_base_path}/window_scene/common:window_scene_common",
157    "${window_base_path}/window_scene/interfaces/innerkits:libwsutils",
158    "${window_base_path}/window_scene/session:ui_effect_controller_client",
159    "../utils:libwmutil",
160  ]
161  external_deps = [
162    "ability_base:session_info",
163    "ability_base:want",
164    "ability_runtime:mission_info",
165    "bundle_framework:appexecfwk_base",
166    "bundle_framework:appexecfwk_core",
167    "c_utils:utils",
168    "graphic_2d:librender_service_base",
169    "graphic_2d:librender_service_client",
170    "hilog:libhilog",
171    "image_framework:image_native",
172    "ipc:ipc_single",
173    "safwk:system_ability_fwk",
174    "samgr:samgr_proxy",
175  ]
176  public_external_deps = [
177    "ability_runtime:ability_manager",
178    "accessibility:accessibility_common",
179    "graphic_2d:window_animation",
180    "input:libmmi-client",
181    "input:libmmi-napi",
182    "samgr:samgr_proxy",
183  ]
184  if (window_manager_use_sceneboard) {
185    deps += [ "${window_base_path}/window_scene/session_manager_service:session_manager_service" ]
186  }
187  if (is_standard_system) {
188    external_deps += [ "init:libbegetutil" ]
189  } else {
190    external_deps += [ "init_lite:libbegetutil" ]
191  }
192  innerapi_tags = [ "platformsdk" ]
193  part_name = "window_manager"
194  subsystem_name = "window"
195}
196
197if (window_manager_use_sceneboard) {
198  group("libwms") {
199    deps = [ "../etc:wms_etc" ]
200  }
201} else {
202  ohos_shared_library("libwms") {
203    branch_protector_ret = "pac_ret"
204    sanitize = {
205      cfi = true
206      cfi_cross_dso = true
207      cfi_vcall_icall_only = true
208      debug = false
209    }
210    defines = [
211      "SUPPORT_SCREEN",
212      "SUPPORT_GRAPHICS",
213    ]
214    if (use_musl) {
215      if (musl_use_jemalloc && musl_use_jemalloc_dfx_intf) {
216        defines += [ "CONFIG_USE_JEMALLOC_DFX_INTF" ]
217      }
218    }
219    sources = [
220      "../wm/src/zidl/window_manager_agent_proxy.cpp",
221      "../wm/src/zidl/window_proxy.cpp",
222      "src/accessibility_connection.cpp",
223      "src/avoid_area_controller.cpp",
224      "src/display_group_controller.cpp",
225      "src/display_group_info.cpp",
226      "src/display_zoom_controller.cpp",
227      "src/drag_controller.cpp",
228      "src/freeze_controller.cpp",
229      "src/inner_window.cpp",
230      "src/input_window_monitor.cpp",
231      "src/memory_guard.cpp",
232      "src/minimize_app.cpp",
233      "src/remote_animation.cpp",
234      "src/starting_window.cpp",
235      "src/utils/window_manager_service_utils.cpp",
236      "src/window_common_event.cpp",
237      "src/window_controller.cpp",
238      "src/window_dumper.cpp",
239      "src/window_group_mgr.cpp",
240      "src/window_inner_manager.cpp",
241      "src/window_layout_policy.cpp",
242      "src/window_layout_policy_cascade.cpp",
243      "src/window_layout_policy_tile.cpp",
244      "src/window_manager_agent_controller.cpp",
245      "src/window_manager_config.cpp",
246      "src/window_manager_service.cpp",
247      "src/window_node.cpp",
248      "src/window_node_container.cpp",
249      "src/window_node_state_machine.cpp",
250      "src/window_pair.cpp",
251      "src/window_root.cpp",
252      "src/window_snapshot/snapshot_controller.cpp",
253      "src/window_snapshot/snapshot_proxy.cpp",
254      "src/window_snapshot/snapshot_stub.cpp",
255      "src/window_system_effect.cpp",
256      "src/window_zorder_policy.cpp",
257      "src/zidl/window_manager_stub.cpp",
258    ]
259
260    configs = [
261      ":libwms_config",
262      "../resources/config/build:coverage_flags",
263    ]
264
265    deps = [
266      "${window_base_path}/window_scene/interfaces/innerkits:libwsutils",
267      "../dmserver:libdms",
268      "../etc:wms_etc",
269      "../utils:libwmutil",
270      "../utils:libwmutil_base",
271      "../wm:libwm",
272    ]
273
274    external_deps = [
275      "ability_base:want",
276      "ability_runtime:ability_manager",
277      "bundle_framework:appexecfwk_base",
278      "c_utils:utils",
279      "common_event_service:cesfwk_innerkits",
280      "config_policy:configpolicy_util",
281      "eventhandler:libeventhandler",
282      "graphic_2d:librender_service_base",
283      "graphic_2d:librender_service_client",
284      "graphic_2d:window_animation",
285      "hicollie:libhicollie",
286      "hilog:libhilog",
287      "hisysevent:libhisysevent",
288      "hitrace:hitrace_meter",
289      "image_framework:image_native",
290      "input:libmmi-client",
291      "ipc:ipc_single",
292      "libxml2:libxml2",
293      "preferences:native_preferences",
294      "resource_management:global_resmgr",
295      "safwk:system_ability_fwk",
296      "samgr:samgr_proxy",
297    ]
298
299    if (defined(global_parts_info) &&
300        defined(global_parts_info.resourceschedule_memmgr_override)) {
301      external_deps += [ "memmgr:memmgrclient" ]
302      defines += [ "MEMMGR_WINDOW_ENABLE" ]
303    }
304
305    if (defined(global_parts_info) &&
306        defined(global_parts_info.resourceschedule_memmgr)) {
307      external_deps += [ "memmgr:memmgrclient" ]
308      defines += [ "MEMMGR_WINDOW_ENABLE" ]
309    }
310
311    if (defined(global_parts_info) &&
312        defined(global_parts_info.resourceschedule_resource_schedule_service)) {
313      external_deps += [ "resource_schedule_service:ressched_client" ]
314      defines += [ "RESOURCE_SCHEDULE_SERVICE_ENABLE" ]
315    }
316
317    if (defined(global_parts_info) &&
318        defined(global_parts_info.resourceschedule_soc_perf)) {
319      external_deps += [ "soc_perf:socperf_client" ]
320      defines += [ "SOC_PERF_ENABLE" ]
321    }
322
323    if (is_standard_system) {
324      external_deps += [ "init:libbegetutil" ]
325    } else {
326      external_deps += [ "init_lite:libbegetutil" ]
327    }
328
329    if (defined(global_parts_info) &&
330        defined(global_parts_info.powermgr_power_manager)) {
331      external_deps += [ "power_manager:powermgr_client" ]
332      defines += [ "POWER_MANAGER_ENABLE" ]
333    }
334
335    if (defined(global_parts_info) &&
336        defined(global_parts_info.powermgr_display_manager)) {
337      external_deps += [ "display_manager:displaymgr" ]
338      defines += [ "POWERMGR_DISPLAY_MANAGER_ENABLE" ]
339    }
340
341    part_name = "window_manager"
342    subsystem_name = "window"
343  }
344}
345
346group("test") {
347  testonly = true
348  if (window_manager_use_sceneboard) {
349    deps = []
350  } else {
351    deps = [ "test:test" ]
352  }
353}
354