• 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/ohos.gni")
15import("../windowmanager_aafwk.gni")
16config("libwmutil_private_config") {
17  include_dirs = [
18    "include",
19    "../dmserver/include",
20    "../interfaces/innerkits/dm",
21    "../interfaces/innerkits/wm",
22    "${window_base_path}/wm/include",
23  ]
24}
25
26config("libwmutil_public_config") {
27  include_dirs = [
28    "include",
29    "${window_base_path}/window_scene/interfaces/include",
30    "../interfaces/innerkits/dm",
31    "../interfaces/innerkits/wm",
32  ]
33}
34
35ohos_source_set("ui_effect_controller_common") {
36  branch_protector_ret = "pac_ret"
37  sanitize = {
38    cfi = true
39    cfi_cross_dso = true
40    cfi_vcall_icall_only = true
41    debug = false
42    integer_overflow = true
43    ubsan = true
44    boundary_sanitize = true
45  }
46
47  sources = [
48    "src/ui_effect_controller_common.cpp",
49  ]
50
51  public_configs = [
52    ":libwmutil_public_config",
53  ]
54
55  public_deps = [
56    ":libwmutil_base",
57  ]
58
59  public_external_deps = [
60    "c_utils:utils",
61    "graphic_2d:librender_service_client",
62    "hilog:libhilog",
63    "ability_runtime:runtime",
64    "napi:ace_napi",
65  ]
66  part_name = "window_manager"
67  subsystem_name = "window"
68}
69
70## build libwmutil_static.a
71ohos_static_library("libwmutil_static") {
72  branch_protector_ret = "pac_ret"
73  sanitize = {
74    cfi = true
75    cfi_cross_dso = true
76    cfi_vcall_icall_only = true
77    debug = false
78    integer_overflow = true
79    ubsan = true
80    boundary_sanitize = true
81  }
82  sources = [
83    "src/accessibility_window_info.cpp",
84    "src/agent_death_recipient.cpp",
85    "src/color_parser.cpp",
86    "src/cutout_info.cpp",
87    "src/display_change_info.cpp",
88    "src/display_info.cpp",
89    "src/dm_virtual_screen_option.cpp",
90    "src/dms_reporter.cpp",
91    "src/perform_reporter.cpp",
92    "src/permission.cpp",
93    "src/persistent_storage.cpp",
94    "src/pip_report.cpp",
95    "src/floating_ball_report.cpp",
96    "src/screen_group_info.cpp",
97    "src/screen_info.cpp",
98    "src/screenshot_info.cpp",
99    "src/singleton_container.cpp",
100    "src/string_util.cpp",
101    "src/surface_draw.cpp",
102    "src/surface_reader.cpp",
103    "src/surface_reader_handler_impl.cpp",
104    "src/sys_cap_util.cpp",
105    "src/unreliable_window_info.cpp",
106    "src/vsync_station.cpp",
107    "src/window_drawing_content_info.cpp",
108    "src/window_frame_trace_impl.cpp",
109    "src/window_property.cpp",
110    "src/window_transition_info.cpp",
111    "src/window_visibility_info.cpp",
112    "src/wm_math.cpp",
113    "src/wm_occlusion_region.cpp",
114    "src/xml_config_base.cpp",
115  ]
116
117  configs = [
118    ":libwmutil_private_config",
119    "${window_base_path}/resources/config/build:coverage_flags",
120  ]
121
122  public_configs = [ ":libwmutil_public_config" ]
123
124  deps = [ ":libwmutil_base" ]
125
126  external_deps = [
127    "ability_base:want",
128    "ability_runtime:ability_manager",
129    "access_token:libaccesstoken_sdk",
130    "access_token:libtokenid_sdk",
131    "bundle_framework:appexecfwk_base",
132    "bundle_framework:appexecfwk_core",
133    "c_utils:utils",
134    "eventhandler:libeventhandler",
135    "graphic_2d:2d_graphics",
136    "graphic_2d:librender_service_client",
137    "graphic_surface:surface",
138    "hilog:libhilog",
139    "hisysevent:libhisysevent",
140    "hitrace:hitrace_meter",
141    "image_framework:image_native",
142    "input:libmmi-client",
143    "ipc:ipc_single",
144    "preferences:native_preferences",
145    "samgr:samgr_proxy",
146  ]
147
148  part_name = "window_manager"
149  subsystem_name = "window"
150
151  defines = []
152  defines += [ "FRAME_TRACE_ENABLE" ]
153  external_deps += [ "frame_aware_sched:frame_trace_intf" ]
154}
155
156## Build libwmutil_base.so
157ohos_shared_library("libwmutil_base") {
158  branch_protector_ret = "pac_ret"
159  sanitize = {
160    cfi = true
161    cfi_cross_dso = true
162    cfi_vcall_icall_only = true
163    debug = false
164  }
165  sources = [
166    "src/accessibility_window_info.cpp",
167    "src/agent_death_recipient.cpp",
168    "src/color_parser.cpp",
169    "src/cutout_info.cpp",
170    "src/display_change_info.cpp",
171    "src/display_info.cpp",
172    "src/screen_group_info.cpp",
173    "src/screen_info.cpp",
174    "src/screenshot_info.cpp",
175    "src/singleton_container.cpp",
176    "src/string_util.cpp",
177    "src/unreliable_window_info.cpp",
178    "src/window_drawing_content_info.cpp",
179    "src/window_manager_hilog.cpp",
180    "src/window_pid_visibility_info.cpp",
181    "src/window_visibility_info.cpp",
182    "src/wm_common.cpp",
183    "src/wm_math.cpp",
184    "src/wm_occlusion_region.cpp",
185    "src/xml_config_base.cpp",
186  ]
187
188  configs = [ ":libwmutil_private_config" ]
189
190  external_deps = [
191    "c_utils:utils",
192    "hilog:libhilog",
193    "ipc:ipc_single",
194  ]
195
196  innerapi_tags = [ "platformsdk" ]
197  part_name = "window_manager"
198  subsystem_name = "window"
199}
200
201## Build libwmutil.so
202ohos_shared_library("libwmutil") {
203  branch_protector_ret = "pac_ret"
204  sources = [
205    "src/dm_virtual_screen_option.cpp",
206    "src/dms_reporter.cpp",
207    "src/dms_xcollie.cpp",
208    "src/perform_reporter.cpp",
209    "src/permission.cpp",
210    "src/persistent_storage.cpp",
211    "src/pip_report.cpp",
212    "src/floating_ball_report.cpp",
213    "src/rs_adapter.cpp",
214    "src/screen_fold_data.cpp",
215    "src/screen_group_info.cpp",
216    "src/screen_info.cpp",
217    "src/surface_draw.cpp",
218    "src/surface_reader.cpp",
219    "src/surface_reader_handler_impl.cpp",
220    "src/sys_cap_util.cpp",
221    "src/typec_port_info.cpp",
222    "src/vsync_station.cpp",
223    "src/window_frame_trace_impl.cpp",
224    "src/window_property.cpp",
225    "src/window_transition_info.cpp",
226  ]
227
228  configs = [
229    ":libwmutil_private_config",
230    "../resources/config/build:coverage_flags",
231  ]
232
233  public_configs = [ ":libwmutil_public_config" ]
234
235  deps = [ ":libwmutil_base" ]
236
237  external_deps = [
238    "ability_base:want",
239    "ability_runtime:ability_start_setting",
240    "access_token:libaccesstoken_sdk",
241    "access_token:libtokenid_sdk",
242    "bundle_framework:appexecfwk_base",
243    "bundle_framework:appexecfwk_core",
244    "c_utils:utils",
245    "eventhandler:libeventhandler",
246    "graphic_2d:2d_graphics",
247    "graphic_2d:librender_service_base",
248    "graphic_2d:librender_service_client",
249    "graphic_surface:surface",
250    "hicollie:libhicollie",
251    "hilog:libhilog",
252    "hisysevent:libhisysevent",
253    "hitrace:hitrace_meter",
254    "image_framework:image_native",
255    "init:libbegetutil",
256    "input:libmmi-client",
257    "ipc:ipc_single",
258    "samgr:samgr_proxy",
259  ]
260  if (!(host_os == "linux" && host_cpu == "arm64")) {
261    external_deps += [ "preferences:native_preferences" ]
262  }
263
264  innerapi_tags = [ "platformsdk" ]
265  part_name = "window_manager"
266  subsystem_name = "window"
267
268  defines = []
269  if (build_variant == "user") {
270    defines += [ "IS_RELEASE_VERSION" ]
271  }
272
273  defines += [ "FRAME_TRACE_ENABLE" ]
274  external_deps += [ "frame_aware_sched:frame_trace_intf" ]
275}
276
277group("test") {
278  testonly = true
279  deps = [ "test:test" ]
280}
281