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