1e0dac50fSopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2e0dac50fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3e0dac50fSopenharmony_ci# you may not use this file except in compliance with the License. 4e0dac50fSopenharmony_ci# You may obtain a copy of the License at 5e0dac50fSopenharmony_ci# 6e0dac50fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7e0dac50fSopenharmony_ci# 8e0dac50fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9e0dac50fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10e0dac50fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11e0dac50fSopenharmony_ci# See the License for the specific language governing permissions and 12e0dac50fSopenharmony_ci# limitations under the License. 13e0dac50fSopenharmony_ci 14e0dac50fSopenharmony_ciimport("//build/ohos.gni") 15e0dac50fSopenharmony_ciimport("../windowmanager_aafwk.gni") 16e0dac50fSopenharmony_ciconfig("libwmutil_private_config") { 17e0dac50fSopenharmony_ci include_dirs = [ 18e0dac50fSopenharmony_ci "include", 19e0dac50fSopenharmony_ci "../dmserver/include", 20e0dac50fSopenharmony_ci "../interfaces/innerkits/dm", 21e0dac50fSopenharmony_ci "../interfaces/innerkits/wm", 22e0dac50fSopenharmony_ci ] 23e0dac50fSopenharmony_ci} 24e0dac50fSopenharmony_ci 25e0dac50fSopenharmony_ciconfig("libwmutil_public_config") { 26e0dac50fSopenharmony_ci include_dirs = [ "include" ] 27e0dac50fSopenharmony_ci} 28e0dac50fSopenharmony_ci 29e0dac50fSopenharmony_ci## build libwmutil_static.a 30e0dac50fSopenharmony_ciohos_static_library("libwmutil_static") { 31e0dac50fSopenharmony_ci branch_protector_ret = "pac_ret" 32e0dac50fSopenharmony_ci sanitize = { 33e0dac50fSopenharmony_ci cfi = true 34e0dac50fSopenharmony_ci cfi_cross_dso = true 35e0dac50fSopenharmony_ci cfi_vcall_icall_only = true 36e0dac50fSopenharmony_ci debug = false 37e0dac50fSopenharmony_ci integer_overflow = true 38e0dac50fSopenharmony_ci ubsan = true 39e0dac50fSopenharmony_ci boundary_sanitize = true 40e0dac50fSopenharmony_ci } 41e0dac50fSopenharmony_ci sources = [ 42e0dac50fSopenharmony_ci "src/accessibility_window_info.cpp", 43e0dac50fSopenharmony_ci "src/agent_death_recipient.cpp", 44e0dac50fSopenharmony_ci "src/color_parser.cpp", 45e0dac50fSopenharmony_ci "src/cutout_info.cpp", 46e0dac50fSopenharmony_ci "src/display_change_info.cpp", 47e0dac50fSopenharmony_ci "src/display_info.cpp", 48e0dac50fSopenharmony_ci "src/dms_reporter.cpp", 49e0dac50fSopenharmony_ci "src/perform_reporter.cpp", 50e0dac50fSopenharmony_ci "src/permission.cpp", 51e0dac50fSopenharmony_ci "src/persistent_storage.cpp", 52e0dac50fSopenharmony_ci "src/pip_report.cpp", 53e0dac50fSopenharmony_ci "src/screen_group_info.cpp", 54e0dac50fSopenharmony_ci "src/screen_info.cpp", 55e0dac50fSopenharmony_ci "src/screenshot_info.cpp", 56e0dac50fSopenharmony_ci "src/singleton_container.cpp", 57e0dac50fSopenharmony_ci "src/string_util.cpp", 58e0dac50fSopenharmony_ci "src/surface_draw.cpp", 59e0dac50fSopenharmony_ci "src/surface_reader.cpp", 60e0dac50fSopenharmony_ci "src/surface_reader_handler_impl.cpp", 61e0dac50fSopenharmony_ci "src/sys_cap_util.cpp", 62e0dac50fSopenharmony_ci "src/unreliable_window_info.cpp", 63e0dac50fSopenharmony_ci "src/window_drawing_content_info.cpp", 64e0dac50fSopenharmony_ci "src/window_property.cpp", 65e0dac50fSopenharmony_ci "src/window_transition_info.cpp", 66e0dac50fSopenharmony_ci "src/window_visibility_info.cpp", 67e0dac50fSopenharmony_ci "src/wm_math.cpp", 68e0dac50fSopenharmony_ci "src/wm_occlusion_region.cpp", 69e0dac50fSopenharmony_ci "src/xml_config_base.cpp", 70e0dac50fSopenharmony_ci ] 71e0dac50fSopenharmony_ci 72e0dac50fSopenharmony_ci configs = [ 73e0dac50fSopenharmony_ci ":libwmutil_private_config", 74e0dac50fSopenharmony_ci "${window_base_path}/resources/config/build:coverage_flags", 75e0dac50fSopenharmony_ci ] 76e0dac50fSopenharmony_ci 77e0dac50fSopenharmony_ci public_configs = [ ":libwmutil_public_config" ] 78e0dac50fSopenharmony_ci 79e0dac50fSopenharmony_ci external_deps = [ 80e0dac50fSopenharmony_ci "ability_base:want", 81e0dac50fSopenharmony_ci "ability_runtime:ability_manager", 82e0dac50fSopenharmony_ci "access_token:libaccesstoken_sdk", 83e0dac50fSopenharmony_ci "access_token:libtokenid_sdk", 84e0dac50fSopenharmony_ci "bundle_framework:appexecfwk_base", 85e0dac50fSopenharmony_ci "bundle_framework:appexecfwk_core", 86e0dac50fSopenharmony_ci "c_utils:utils", 87e0dac50fSopenharmony_ci "graphic_2d:2d_graphics", 88e0dac50fSopenharmony_ci "graphic_2d:librender_service_client", 89e0dac50fSopenharmony_ci "graphic_surface:surface", 90e0dac50fSopenharmony_ci "hilog:libhilog", 91e0dac50fSopenharmony_ci "hisysevent:libhisysevent", 92e0dac50fSopenharmony_ci "hitrace:hitrace_meter", 93e0dac50fSopenharmony_ci "image_framework:image_native", 94e0dac50fSopenharmony_ci "input:libmmi-client", 95e0dac50fSopenharmony_ci "ipc:ipc_single", 96e0dac50fSopenharmony_ci "preferences:native_preferences", 97e0dac50fSopenharmony_ci "samgr:samgr_proxy", 98e0dac50fSopenharmony_ci ] 99e0dac50fSopenharmony_ci 100e0dac50fSopenharmony_ci part_name = "window_manager" 101e0dac50fSopenharmony_ci subsystem_name = "window" 102e0dac50fSopenharmony_ci} 103e0dac50fSopenharmony_ci 104e0dac50fSopenharmony_ci## Build libwmutil_base.so 105e0dac50fSopenharmony_ciohos_shared_library("libwmutil_base") { 106e0dac50fSopenharmony_ci branch_protector_ret = "pac_ret" 107e0dac50fSopenharmony_ci sanitize = { 108e0dac50fSopenharmony_ci cfi = true 109e0dac50fSopenharmony_ci cfi_cross_dso = true 110e0dac50fSopenharmony_ci cfi_vcall_icall_only = true 111e0dac50fSopenharmony_ci debug = false 112e0dac50fSopenharmony_ci } 113e0dac50fSopenharmony_ci sources = [ 114e0dac50fSopenharmony_ci "src/accessibility_window_info.cpp", 115e0dac50fSopenharmony_ci "src/agent_death_recipient.cpp", 116e0dac50fSopenharmony_ci "src/color_parser.cpp", 117e0dac50fSopenharmony_ci "src/cutout_info.cpp", 118e0dac50fSopenharmony_ci "src/display_change_info.cpp", 119e0dac50fSopenharmony_ci "src/display_info.cpp", 120e0dac50fSopenharmony_ci "src/screen_group_info.cpp", 121e0dac50fSopenharmony_ci "src/screen_info.cpp", 122e0dac50fSopenharmony_ci "src/screenshot_info.cpp", 123e0dac50fSopenharmony_ci "src/singleton_container.cpp", 124e0dac50fSopenharmony_ci "src/string_util.cpp", 125e0dac50fSopenharmony_ci "src/unreliable_window_info.cpp", 126e0dac50fSopenharmony_ci "src/window_drawing_content_info.cpp", 127e0dac50fSopenharmony_ci "src/window_pid_visibility_info.cpp", 128e0dac50fSopenharmony_ci "src/window_visibility_info.cpp", 129e0dac50fSopenharmony_ci "src/wm_common.cpp", 130e0dac50fSopenharmony_ci "src/wm_math.cpp", 131e0dac50fSopenharmony_ci "src/wm_occlusion_region.cpp", 132e0dac50fSopenharmony_ci "src/xml_config_base.cpp", 133e0dac50fSopenharmony_ci ] 134e0dac50fSopenharmony_ci 135e0dac50fSopenharmony_ci configs = [ ":libwmutil_private_config" ] 136e0dac50fSopenharmony_ci 137e0dac50fSopenharmony_ci external_deps = [ 138e0dac50fSopenharmony_ci "c_utils:utils", 139e0dac50fSopenharmony_ci "hilog:libhilog", 140e0dac50fSopenharmony_ci "ipc:ipc_single", 141e0dac50fSopenharmony_ci ] 142e0dac50fSopenharmony_ci 143e0dac50fSopenharmony_ci innerapi_tags = [ "platformsdk" ] 144e0dac50fSopenharmony_ci part_name = "window_manager" 145e0dac50fSopenharmony_ci subsystem_name = "window" 146e0dac50fSopenharmony_ci} 147e0dac50fSopenharmony_ci 148e0dac50fSopenharmony_ci## Build libwmutil.so 149e0dac50fSopenharmony_ciohos_shared_library("libwmutil") { 150e0dac50fSopenharmony_ci branch_protector_ret = "pac_ret" 151e0dac50fSopenharmony_ci sources = [ 152e0dac50fSopenharmony_ci "src/dms_reporter.cpp", 153e0dac50fSopenharmony_ci "src/dms_xcollie.cpp", 154e0dac50fSopenharmony_ci "src/perform_reporter.cpp", 155e0dac50fSopenharmony_ci "src/permission.cpp", 156e0dac50fSopenharmony_ci "src/persistent_storage.cpp", 157e0dac50fSopenharmony_ci "src/pip_report.cpp", 158e0dac50fSopenharmony_ci "src/screen_fold_data.cpp", 159e0dac50fSopenharmony_ci "src/screen_group_info.cpp", 160e0dac50fSopenharmony_ci "src/screen_info.cpp", 161e0dac50fSopenharmony_ci "src/surface_draw.cpp", 162e0dac50fSopenharmony_ci "src/surface_reader.cpp", 163e0dac50fSopenharmony_ci "src/surface_reader_handler_impl.cpp", 164e0dac50fSopenharmony_ci "src/sys_cap_util.cpp", 165e0dac50fSopenharmony_ci "src/typec_port_info.cpp", 166e0dac50fSopenharmony_ci "src/window_property.cpp", 167e0dac50fSopenharmony_ci "src/window_transition_info.cpp", 168e0dac50fSopenharmony_ci ] 169e0dac50fSopenharmony_ci 170e0dac50fSopenharmony_ci configs = [ 171e0dac50fSopenharmony_ci ":libwmutil_private_config", 172e0dac50fSopenharmony_ci "../resources/config/build:coverage_flags", 173e0dac50fSopenharmony_ci ] 174e0dac50fSopenharmony_ci 175e0dac50fSopenharmony_ci public_configs = [ ":libwmutil_public_config" ] 176e0dac50fSopenharmony_ci 177e0dac50fSopenharmony_ci deps = [ ":libwmutil_base" ] 178e0dac50fSopenharmony_ci 179e0dac50fSopenharmony_ci external_deps = [ 180e0dac50fSopenharmony_ci "ability_base:want", 181e0dac50fSopenharmony_ci "ability_runtime:ability_start_setting", 182e0dac50fSopenharmony_ci "access_token:libaccesstoken_sdk", 183e0dac50fSopenharmony_ci "access_token:libtokenid_sdk", 184e0dac50fSopenharmony_ci "bundle_framework:appexecfwk_base", 185e0dac50fSopenharmony_ci "bundle_framework:appexecfwk_core", 186e0dac50fSopenharmony_ci "c_utils:utils", 187e0dac50fSopenharmony_ci "graphic_2d:2d_graphics", 188e0dac50fSopenharmony_ci "graphic_2d:librender_service_client", 189e0dac50fSopenharmony_ci "graphic_surface:surface", 190e0dac50fSopenharmony_ci "hicollie:libhicollie", 191e0dac50fSopenharmony_ci "hilog:libhilog", 192e0dac50fSopenharmony_ci "hisysevent:libhisysevent", 193e0dac50fSopenharmony_ci "hitrace:hitrace_meter", 194e0dac50fSopenharmony_ci "image_framework:image_native", 195e0dac50fSopenharmony_ci "input:libmmi-client", 196e0dac50fSopenharmony_ci "ipc:ipc_single", 197e0dac50fSopenharmony_ci "samgr:samgr_proxy", 198e0dac50fSopenharmony_ci ] 199e0dac50fSopenharmony_ci if (!(host_os == "linux" && host_cpu == "arm64")) { 200e0dac50fSopenharmony_ci external_deps += [ "preferences:native_preferences" ] 201e0dac50fSopenharmony_ci } 202e0dac50fSopenharmony_ci 203e0dac50fSopenharmony_ci innerapi_tags = [ "platformsdk" ] 204e0dac50fSopenharmony_ci part_name = "window_manager" 205e0dac50fSopenharmony_ci subsystem_name = "window" 206e0dac50fSopenharmony_ci 207e0dac50fSopenharmony_ci defines = [] 208e0dac50fSopenharmony_ci if (build_variant == "user") { 209e0dac50fSopenharmony_ci defines += [ "IS_RELEASE_VERSION" ] 210e0dac50fSopenharmony_ci } 211e0dac50fSopenharmony_ci} 212e0dac50fSopenharmony_ci 213e0dac50fSopenharmony_cigroup("test") { 214e0dac50fSopenharmony_ci testonly = true 215e0dac50fSopenharmony_ci deps = [ "test:test" ] 216e0dac50fSopenharmony_ci} 217