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