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("libwm_private_config") { 18 visibility = [ ":*" ] 19 20 include_dirs = [ 21 "include", 22 "../wmserver/include", 23 "../wmserver/include/zidl", 24 "../window_scene/session/host/include", 25 "//foundation/arkui/napi", # because of ability_context.h 26 ] 27} 28 29config("libwm_public_config") { 30 include_dirs = [ 31 "../interfaces/innerkits/wm", 32 "../utils/include", 33 "../window_scene", 34 ] 35} 36 37## Build libwm_static.a 38ohos_static_library("libwm_static") { 39 branch_protector_ret = "pac_ret" 40 sanitize = { 41 cfi = true 42 cfi_cross_dso = true 43 debug = false 44 } 45 include_dirs = [ 46 "../utils/include", 47 "../window_scene/intention_event/service/anr_manager/include", 48 "../window_scene/intention_event/framework/anr_handler/include", 49 "${window_base_path}/window_scene/intention_event/include", 50 "${accessibility_path}/interfaces/innerkits/common/include/", 51 ] 52 53 sources = [ 54 "../wmserver/src/zidl/window_manager_proxy.cpp", 55 "src/extension_window.cpp", 56 "src/extension_window_impl.cpp", 57 "src/input_transfer_station.cpp", 58 "src/picture_in_picture_controller.cpp", 59 "src/picture_in_picture_manager.cpp", 60 "src/picture_in_picture_option.cpp", 61 "src/root_scene.cpp", 62 "src/static_call.cpp", 63 "src/vsync_station.cpp", 64 "src/window.cpp", 65 "src/window_accessibility_controller.cpp", 66 "src/window_adapter.cpp", 67 "src/window_agent.cpp", 68 "src/window_extension_session_impl.cpp", 69 "src/window_frame_trace_impl.cpp", 70 "src/window_impl.cpp", 71 "src/window_input_channel.cpp", 72 "src/window_manager.cpp", 73 "src/window_manager_agent.cpp", 74 "src/window_option.cpp", 75 "src/window_prepare_terminate.cpp", 76 "src/window_rate_manager.cpp", 77 "src/window_scene.cpp", 78 "src/window_scene_session_impl.cpp", 79 "src/window_session_impl.cpp", 80 "src/zidl/window_manager_agent_stub.cpp", 81 "src/zidl/window_stub.cpp", 82 ] 83 84 configs = [ 85 ":libwm_private_config", 86 "${window_base_path}/resources/config/build:coverage_flags", 87 ] 88 89 public_configs = [ ":libwm_public_config" ] 90 91 deps = [ 92 "${window_base_path}/dm:libdm", 93 "${window_base_path}/utils:libwmutil", 94 "${window_base_path}/window_scene/common:window_scene_common", 95 "${window_base_path}/window_scene/intention_event:libintention_event", 96 "${window_base_path}/window_scene/intention_event/service:intention_event_anr_manager", 97 "${window_base_path}/window_scene/session:scene_session", 98 "${window_base_path}/window_scene/session_manager:session_manager", 99 ] 100 101 external_deps = [ 102 "ability_base:configuration", 103 "ability_base:want", 104 "ability_runtime:ability_context_native", 105 "ability_runtime:ability_manager", 106 "ability_runtime:app_manager", 107 "ace_engine:ace_uicontent", 108 "ace_engine:ace_xcomponent_controller", 109 "bundle_framework:appexecfwk_core", 110 "c_utils:utils", 111 "eventhandler:libeventhandler", 112 "graphic_2d:librender_service_client", 113 "graphic_2d:window_animation", 114 "hilog:libhilog", 115 "hisysevent:libhisysevent", 116 "hitrace:hitrace_meter", 117 "image_framework:image_native", 118 "init:libbegetutil", 119 "input:libmmi-client", 120 "ipc:ipc_single", 121 "samgr:samgr_proxy", 122 ] 123 124 defines = [] 125 126 if (defined(global_parts_info) && 127 defined(global_parts_info.barrierfree_accessibility)) { 128 external_deps += [ "accessibility:accessibility_common" ] 129 } 130 131 if (efficiency_manager_enable) { 132 external_deps += [ "efficiency_manager:suspend_manager_client" ] 133 defines += [ "EFFICIENCY_MANAGER_ENABLE" ] 134 } 135 136 if (defined(global_parts_info)) { 137 if (defined( 138 global_parts_info.hmosresourceschedule_frame_aware_sched_override)) { 139 defines += [ "FRAME_TRACE_ENABLE" ] 140 external_deps += [ "frame_aware_sched_override:frame_trace_intf" ] 141 } else if (defined(global_parts_info.resourceschedule_frame_aware_sched)) { 142 defines += [ "FRAME_TRACE_ENABLE" ] 143 external_deps += [ "frame_aware_sched:frame_trace_intf" ] 144 } 145 } 146 147 if (defined(global_parts_info) && 148 defined(global_parts_info.resourceschedule_resource_schedule_service)) { 149 external_deps += [ "resource_schedule_service:ressched_client" ] 150 defines += [ "RESOURCE_SCHEDULE_SERVICE_ENABLE" ] 151 } 152 153 if (defined(global_parts_info) && 154 defined(global_parts_info.powermgr_power_manager)) { 155 external_deps += [ "power_manager:powermgr_client" ] 156 defines += [ "POWER_MANAGER_ENABLE" ] 157 } 158 159 if (!defined(global_parts_info) || 160 defined(global_parts_info.inputmethod_imf)) { 161 imf_enable = true 162 } else { 163 imf_enable = false 164 } 165 print("imf_enable: ", imf_enable) 166 167 if (imf_enable == true) { 168 external_deps += [ "imf:inputmethod_client" ] 169 defines += [ "IMF_ENABLE" ] 170 } 171 172 part_name = "window_manager" 173 subsystem_name = "window" 174} 175 176## Build libwm.so 177ohos_shared_library("libwm") { 178 branch_protector_ret = "pac_ret" 179 sanitize = { 180 cfi = true 181 cfi_cross_dso = true 182 debug = false 183 } 184 include_dirs = [ 185 "../utils/include", 186 "../window_scene/intention_event/service/anr_manager/include", 187 "../window_scene/intention_event/framework/anr_handler/include", 188 "${window_base_path}/window_scene/intention_event/include", 189 "${accessibility_path}/interfaces/innerkits/common/include/", 190 ] 191 192 sources = [ 193 "../wmserver/src/zidl/window_manager_proxy.cpp", 194 "src/extension_window.cpp", 195 "src/extension_window_impl.cpp", 196 "src/input_transfer_station.cpp", 197 "src/picture_in_picture_controller.cpp", 198 "src/picture_in_picture_manager.cpp", 199 "src/picture_in_picture_option.cpp", 200 "src/root_scene.cpp", 201 "src/static_call.cpp", 202 "src/vsync_station.cpp", 203 "src/window.cpp", 204 "src/window_accessibility_controller.cpp", 205 "src/window_adapter.cpp", 206 "src/window_agent.cpp", 207 "src/window_extension_session_impl.cpp", 208 "src/window_frame_trace_impl.cpp", 209 "src/window_impl.cpp", 210 "src/window_input_channel.cpp", 211 "src/window_manager.cpp", 212 "src/window_manager_agent.cpp", 213 "src/window_option.cpp", 214 "src/window_prepare_terminate.cpp", 215 "src/window_rate_manager.cpp", 216 "src/window_scene.cpp", 217 "src/window_scene_session_impl.cpp", 218 "src/window_session_impl.cpp", 219 "src/zidl/window_manager_agent_stub.cpp", 220 "src/zidl/window_stub.cpp", 221 ] 222 223 configs = [ 224 ":libwm_private_config", 225 "../resources/config/build:coverage_flags", 226 ] 227 228 public_configs = [ ":libwm_public_config" ] 229 230 deps = [ 231 "${window_base_path}/window_scene/common:window_scene_common", 232 "${window_base_path}/window_scene/intention_event:libintention_event", 233 "${window_base_path}/window_scene/intention_event/service:intention_event_anr_manager", 234 "${window_base_path}/window_scene/session:scene_session", 235 "${window_base_path}/window_scene/session_manager:session_manager", 236 "../dm:libdm", 237 "../utils:libwmutil", 238 ] 239 240 external_deps = [ 241 "ability_base:configuration", 242 "ability_base:want", 243 "ability_runtime:ability_context_native", 244 "ability_runtime:ability_manager", 245 "ability_runtime:app_manager", 246 "ace_engine:ace_uicontent", 247 "ace_engine:ace_xcomponent_controller", 248 "bundle_framework:appexecfwk_core", 249 "c_utils:utils", 250 "eventhandler:libeventhandler", 251 "graphic_2d:librender_service_client", 252 "graphic_2d:window_animation", 253 "hilog:libhilog", 254 "hisysevent:libhisysevent", 255 "hitrace:hitrace_meter", 256 "image_framework:image_native", 257 "init:libbegetutil", 258 "input:libmmi-client", 259 "ipc:ipc_single", 260 "samgr:samgr_proxy", 261 ] 262 263 defines = [] 264 265 if (defined(global_parts_info) && 266 defined(global_parts_info.barrierfree_accessibility)) { 267 external_deps += [ "accessibility:accessibility_common" ] 268 } 269 270 if (defined(global_parts_info)) { 271 if (defined( 272 global_parts_info.hmosresourceschedule_frame_aware_sched_override)) { 273 defines += [ "FRAME_TRACE_ENABLE" ] 274 external_deps += [ "frame_aware_sched_override:frame_trace_intf" ] 275 } else if (defined(global_parts_info.resourceschedule_frame_aware_sched)) { 276 defines += [ "FRAME_TRACE_ENABLE" ] 277 external_deps += [ "frame_aware_sched:frame_trace_intf" ] 278 } 279 } 280 281 if (defined(global_parts_info) && 282 defined(global_parts_info.resourceschedule_resource_schedule_service)) { 283 external_deps += [ "resource_schedule_service:ressched_client" ] 284 defines += [ "RESOURCE_SCHEDULE_SERVICE_ENABLE" ] 285 } 286 287 if (!defined(global_parts_info) || 288 defined(global_parts_info.inputmethod_imf)) { 289 imf_enable = true 290 } else { 291 imf_enable = false 292 } 293 294 if (defined(global_parts_info) && 295 defined(global_parts_info.powermgr_power_manager)) { 296 external_deps += [ "power_manager:powermgr_client" ] 297 defines += [ "POWER_MANAGER_ENABLE" ] 298 } 299 print("imf_enable: ", imf_enable) 300 301 if (imf_enable == true) { 302 external_deps += [ "imf:inputmethod_client" ] 303 defines += [ "IMF_ENABLE" ] 304 } 305 innerapi_tags = [ "platformsdk" ] 306 part_name = "window_manager" 307 subsystem_name = "window" 308} 309 310## Build libwm_lite.so 311ohos_shared_library("libwm_lite") { 312 include_dirs = [ "../utils/include" ] 313 sources = [ 314 "src/window_adapter_lite.cpp", 315 "src/window_manager_lite.cpp", 316 "src/window_option.cpp", 317 ] 318 319 configs = [ 320 ":libwm_private_config", 321 "../resources/config/build:coverage_flags", 322 ] 323 324 public_configs = [ ":libwm_public_config" ] 325 326 deps = [ 327 "${window_base_path}/utils:libwmutil_base", 328 "${window_base_path}/window_scene/session_manager:session_manager_lite", 329 ] 330 331 external_deps = [ 332 "bundle_framework:appexecfwk_core", 333 "c_utils:utils", 334 "hilog:libhilog", 335 "init:libbegetutil", 336 "ipc:ipc_single", 337 "samgr:samgr_proxy", 338 ] 339 340 part_name = "window_manager" 341 subsystem_name = "window" 342} 343 344group("test") { 345 testonly = true 346 deps = [ "test:test" ] 347} 348