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