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_base", 112 "graphic_2d:librender_service_client", 113 "hilog:libhilog", 114 "image_framework:image_native", 115 "ipc:ipc_single", 116 "safwk:system_ability_fwk", 117 "samgr:samgr_proxy", 118 ] 119 public_external_deps = [ 120 "ability_runtime:ability_manager", 121 "accessibility:accessibility_common", 122 "graphic_2d:window_animation", 123 "input:libmmi-client", 124 "input:libmmi-napi", 125 "samgr:samgr_proxy", 126 ] 127 if (window_manager_use_sceneboard) { 128 deps += [ "${window_base_path}/window_scene/session_manager_service:session_manager_service" ] 129 } 130 if (is_standard_system) { 131 external_deps += [ "init:libbegetutil" ] 132 } else { 133 external_deps += [ "init_lite:libbegetutil" ] 134 } 135 innerapi_tags = [ "platformsdk" ] 136 part_name = "window_manager" 137 subsystem_name = "window" 138} 139 140if (window_manager_use_sceneboard) { 141 group("libwms") { 142 deps = [ "../etc:wms_etc" ] 143 } 144} else { 145 ohos_shared_library("libwms") { 146 branch_protector_ret = "pac_ret" 147 sanitize = { 148 cfi = true 149 cfi_cross_dso = true 150 cfi_vcall_icall_only = true 151 debug = false 152 } 153 defines = [ 154 "SUPPORT_SCREEN", 155 "SUPPORT_GRAPHICS", 156 ] 157 if (use_musl) { 158 if (musl_use_jemalloc && musl_use_jemalloc_dfx_intf) { 159 defines += [ "CONFIG_USE_JEMALLOC_DFX_INTF" ] 160 } 161 } 162 sources = [ 163 "../wm/src/zidl/window_manager_agent_proxy.cpp", 164 "../wm/src/zidl/window_proxy.cpp", 165 "src/accessibility_connection.cpp", 166 "src/avoid_area_controller.cpp", 167 "src/display_group_controller.cpp", 168 "src/display_group_info.cpp", 169 "src/display_zoom_controller.cpp", 170 "src/drag_controller.cpp", 171 "src/freeze_controller.cpp", 172 "src/inner_window.cpp", 173 "src/input_window_monitor.cpp", 174 "src/memory_guard.cpp", 175 "src/minimize_app.cpp", 176 "src/remote_animation.cpp", 177 "src/starting_window.cpp", 178 "src/utils/window_manager_service_utils.cpp", 179 "src/window_common_event.cpp", 180 "src/window_controller.cpp", 181 "src/window_dumper.cpp", 182 "src/window_group_mgr.cpp", 183 "src/window_inner_manager.cpp", 184 "src/window_layout_policy.cpp", 185 "src/window_layout_policy_cascade.cpp", 186 "src/window_layout_policy_tile.cpp", 187 "src/window_manager_agent_controller.cpp", 188 "src/window_manager_config.cpp", 189 "src/window_manager_service.cpp", 190 "src/window_node.cpp", 191 "src/window_node_container.cpp", 192 "src/window_node_state_machine.cpp", 193 "src/window_pair.cpp", 194 "src/window_root.cpp", 195 "src/window_snapshot/snapshot_controller.cpp", 196 "src/window_snapshot/snapshot_proxy.cpp", 197 "src/window_snapshot/snapshot_stub.cpp", 198 "src/window_system_effect.cpp", 199 "src/window_zorder_policy.cpp", 200 "src/zidl/window_manager_stub.cpp", 201 ] 202 203 configs = [ 204 ":libwms_config", 205 "../resources/config/build:coverage_flags", 206 ] 207 208 deps = [ 209 "${window_base_path}/window_scene/interfaces/innerkits:libwsutils", 210 "../dmserver:libdms", 211 "../etc:wms_etc", 212 "../utils:libwmutil", 213 "../utils:libwmutil_base", 214 "../wm:libwm", 215 ] 216 217 external_deps = [ 218 "ability_base:want", 219 "ability_runtime:ability_manager", 220 "c_utils:utils", 221 "common_event_service:cesfwk_innerkits", 222 "config_policy:configpolicy_util", 223 "eventhandler:libeventhandler", 224 "graphic_2d:librender_service_base", 225 "graphic_2d:librender_service_client", 226 "graphic_2d:window_animation", 227 "hicollie:libhicollie", 228 "hilog:libhilog", 229 "hisysevent:libhisysevent", 230 "hitrace:hitrace_meter", 231 "image_framework:image_native", 232 "input:libmmi-client", 233 "ipc:ipc_single", 234 "libxml2:libxml2", 235 "preferences:native_preferences", 236 "safwk:system_ability_fwk", 237 "samgr:samgr_proxy", 238 ] 239 240 if (defined(global_parts_info) && 241 defined(global_parts_info.resourceschedule_memmgr_override)) { 242 external_deps += [ "memmgr:memmgrclient" ] 243 defines += [ "MEMMGR_WINDOW_ENABLE" ] 244 } 245 246 if (defined(global_parts_info) && 247 defined(global_parts_info.resourceschedule_memmgr)) { 248 external_deps += [ "memmgr:memmgrclient" ] 249 defines += [ "MEMMGR_WINDOW_ENABLE" ] 250 } 251 252 if (defined(global_parts_info) && 253 defined(global_parts_info.resourceschedule_resource_schedule_service)) { 254 external_deps += [ "resource_schedule_service:ressched_client" ] 255 defines += [ "RESOURCE_SCHEDULE_SERVICE_ENABLE" ] 256 } 257 258 if (defined(global_parts_info) && 259 defined(global_parts_info.resourceschedule_soc_perf)) { 260 external_deps += [ "soc_perf:socperf_client" ] 261 defines += [ "SOC_PERF_ENABLE" ] 262 } 263 264 if (is_standard_system) { 265 external_deps += [ "init:libbegetutil" ] 266 } else { 267 external_deps += [ "init_lite:libbegetutil" ] 268 } 269 270 if (defined(global_parts_info) && 271 defined(global_parts_info.powermgr_power_manager)) { 272 external_deps += [ "power_manager:powermgr_client" ] 273 defines += [ "POWER_MANAGER_ENABLE" ] 274 } 275 276 if (defined(global_parts_info) && 277 defined(global_parts_info.powermgr_display_manager)) { 278 external_deps += [ "display_manager:displaymgr" ] 279 defines += [ "POWERMGR_DISPLAY_MANAGER_ENABLE" ] 280 } 281 282 part_name = "window_manager" 283 subsystem_name = "window" 284 } 285} 286 287group("test") { 288 testonly = true 289 if (window_manager_use_sceneboard) { 290 deps = [] 291 } else { 292 deps = [ "test:test" ] 293 } 294} 295