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") 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 = [ "include" ] 28} 29 30## build libwmutil_static.a 31ohos_static_library("libwmutil_static") { 32 branch_protector_ret = "pac_ret" 33 sanitize = { 34 cfi = true 35 cfi_cross_dso = true 36 cfi_vcall_icall_only = true 37 debug = false 38 integer_overflow = true 39 ubsan = true 40 boundary_sanitize = true 41 } 42 sources = [ 43 "src/accessibility_window_info.cpp", 44 "src/agent_death_recipient.cpp", 45 "src/color_parser.cpp", 46 "src/cutout_info.cpp", 47 "src/display_change_info.cpp", 48 "src/display_info.cpp", 49 "src/dms_reporter.cpp", 50 "src/perform_reporter.cpp", 51 "src/permission.cpp", 52 "src/persistent_storage.cpp", 53 "src/pip_report.cpp", 54 "src/screen_group_info.cpp", 55 "src/screen_info.cpp", 56 "src/screenshot_info.cpp", 57 "src/singleton_container.cpp", 58 "src/string_util.cpp", 59 "src/surface_draw.cpp", 60 "src/surface_reader.cpp", 61 "src/surface_reader_handler_impl.cpp", 62 "src/sys_cap_util.cpp", 63 "src/unreliable_window_info.cpp", 64 "src/vsync_station.cpp", 65 "src/window_drawing_content_info.cpp", 66 "src/window_frame_trace_impl.cpp", 67 "src/window_property.cpp", 68 "src/window_transition_info.cpp", 69 "src/window_visibility_info.cpp", 70 "src/wm_math.cpp", 71 "src/wm_occlusion_region.cpp", 72 "src/xml_config_base.cpp", 73 ] 74 75 configs = [ 76 ":libwmutil_private_config", 77 "${window_base_path}/resources/config/build:coverage_flags", 78 ] 79 80 public_configs = [ ":libwmutil_public_config" ] 81 82 deps = [ ":libwmutil_base" ] 83 84 external_deps = [ 85 "ability_base:want", 86 "ability_runtime:ability_manager", 87 "access_token:libaccesstoken_sdk", 88 "access_token:libtokenid_sdk", 89 "bundle_framework:appexecfwk_base", 90 "bundle_framework:appexecfwk_core", 91 "c_utils:utils", 92 "eventhandler:libeventhandler", 93 "graphic_2d:2d_graphics", 94 "graphic_2d:librender_service_client", 95 "graphic_surface:surface", 96 "hilog:libhilog", 97 "hisysevent:libhisysevent", 98 "hitrace:hitrace_meter", 99 "image_framework:image_native", 100 "input:libmmi-client", 101 "ipc:ipc_single", 102 "preferences:native_preferences", 103 "samgr:samgr_proxy", 104 ] 105 106 part_name = "window_manager" 107 subsystem_name = "window" 108 109 defines = [] 110 defines += [ "FRAME_TRACE_ENABLE" ] 111 external_deps += [ "frame_aware_sched:frame_trace_intf" ] 112} 113 114## Build libwmutil_base.so 115ohos_shared_library("libwmutil_base") { 116 branch_protector_ret = "pac_ret" 117 sanitize = { 118 cfi = true 119 cfi_cross_dso = true 120 cfi_vcall_icall_only = true 121 debug = false 122 } 123 sources = [ 124 "src/accessibility_window_info.cpp", 125 "src/agent_death_recipient.cpp", 126 "src/color_parser.cpp", 127 "src/cutout_info.cpp", 128 "src/display_change_info.cpp", 129 "src/display_info.cpp", 130 "src/screen_group_info.cpp", 131 "src/screen_info.cpp", 132 "src/screenshot_info.cpp", 133 "src/singleton_container.cpp", 134 "src/string_util.cpp", 135 "src/unreliable_window_info.cpp", 136 "src/window_drawing_content_info.cpp", 137 "src/window_manager_hilog.cpp", 138 "src/window_pid_visibility_info.cpp", 139 "src/window_visibility_info.cpp", 140 "src/wm_common.cpp", 141 "src/wm_math.cpp", 142 "src/wm_occlusion_region.cpp", 143 "src/xml_config_base.cpp", 144 ] 145 146 configs = [ ":libwmutil_private_config" ] 147 148 external_deps = [ 149 "c_utils:utils", 150 "hilog:libhilog", 151 "ipc:ipc_single", 152 ] 153 154 innerapi_tags = [ "platformsdk" ] 155 part_name = "window_manager" 156 subsystem_name = "window" 157} 158 159## Build libwmutil.so 160ohos_shared_library("libwmutil") { 161 branch_protector_ret = "pac_ret" 162 sources = [ 163 "src/dms_reporter.cpp", 164 "src/dms_xcollie.cpp", 165 "src/perform_reporter.cpp", 166 "src/permission.cpp", 167 "src/persistent_storage.cpp", 168 "src/pip_report.cpp", 169 "src/screen_cache.cpp", 170 "src/screen_fold_data.cpp", 171 "src/screen_group_info.cpp", 172 "src/screen_info.cpp", 173 "src/surface_draw.cpp", 174 "src/surface_reader.cpp", 175 "src/surface_reader_handler_impl.cpp", 176 "src/sys_cap_util.cpp", 177 "src/typec_port_info.cpp", 178 "src/vsync_station.cpp", 179 "src/window_frame_trace_impl.cpp", 180 "src/window_property.cpp", 181 "src/window_transition_info.cpp", 182 ] 183 184 configs = [ 185 ":libwmutil_private_config", 186 "../resources/config/build:coverage_flags", 187 ] 188 189 public_configs = [ ":libwmutil_public_config" ] 190 191 deps = [ ":libwmutil_base" ] 192 193 external_deps = [ 194 "ability_base:want", 195 "ability_runtime:ability_start_setting", 196 "access_token:libaccesstoken_sdk", 197 "access_token:libtokenid_sdk", 198 "bundle_framework:appexecfwk_base", 199 "bundle_framework:appexecfwk_core", 200 "c_utils:utils", 201 "eventhandler:libeventhandler", 202 "graphic_2d:2d_graphics", 203 "graphic_2d:librender_service_base", 204 "graphic_2d:librender_service_client", 205 "graphic_surface:surface", 206 "hicollie:libhicollie", 207 "hilog:libhilog", 208 "hisysevent:libhisysevent", 209 "hitrace:hitrace_meter", 210 "image_framework:image_native", 211 "input:libmmi-client", 212 "ipc:ipc_single", 213 "samgr:samgr_proxy", 214 ] 215 if (!(host_os == "linux" && host_cpu == "arm64")) { 216 external_deps += [ "preferences:native_preferences" ] 217 } 218 219 innerapi_tags = [ "platformsdk" ] 220 part_name = "window_manager" 221 subsystem_name = "window" 222 223 defines = [] 224 if (build_variant == "user") { 225 defines += [ "IS_RELEASE_VERSION" ] 226 } 227 228 defines += [ "FRAME_TRACE_ENABLE" ] 229 external_deps += [ "frame_aware_sched:frame_trace_intf" ] 230} 231 232group("test") { 233 testonly = true 234 deps = [ "test:test" ] 235} 236