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