1# Copyright (c) 2022-2025 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/config/components/idl_tool/idl.gni") 15import("//build/ohos.gni") 16import("../windowmanager_aafwk.gni") 17 18## Build libdms.so 19config("libdms_private_config") { 20 include_dirs = [ 21 "../dm/include", 22 "../interfaces/innerkits/dm", 23 "../utils/include", 24 "${target_gen_dir}", 25 ] 26} 27 28config("libdms_public_config") { 29 include_dirs = [ "include" ] 30} 31 32idl_gen_interface("display_manager_interface") { 33 sources = [ "IDisplayManager.idl" ] 34 log_domainid = "0xD004201" 35 log_tag = "IDisplayManager" 36 part_name = "window_manager" 37 subsystem_name = "window" 38 target_type = "source_set" 39 configs = [ ":libdms_private_config" ] 40 sequenceable_ext_deps = [ 41 "graphic_2d:librender_service_client", 42 "hilog:libhilog", 43 ] 44 sanitize = { 45 cfi = true 46 cfi_cross_dso = true 47 cfi_vcall_icall_only = true 48 debug = false 49 } 50} 51 52ohos_shared_library("libdms") { 53 branch_protector_ret = "pac_ret" 54 sanitize = { 55 cfi = true 56 cfi_cross_dso = true 57 cfi_vcall_icall_only = true 58 debug = false 59 } 60 sources = [ 61 "../dm/src/zidl/display_manager_agent_proxy.cpp", 62 "src/abstract_display.cpp", 63 "src/abstract_display_controller.cpp", 64 "src/abstract_screen.cpp", 65 "src/abstract_screen_controller.cpp", 66 "src/display_cutout_controller.cpp", 67 "src/display_dumper.cpp", 68 "src/display_manager_agent_controller.cpp", 69 "src/display_manager_config.cpp", 70 "src/display_manager_ipc_service.cpp", 71 "src/display_manager_service.cpp", 72 "src/display_manager_service_inner.cpp", 73 "src/display_power_controller.cpp", 74 "src/screen_rotation_controller.cpp", 75 "src/sensor_connector.cpp", 76 "src/sensor_plugin.cpp", 77 ] 78 79 configs = [ 80 ":libdms_private_config", 81 "../resources/config/build:coverage_flags", 82 ] 83 84 public_configs = [ ":libdms_public_config" ] 85 86 deps = [ 87 ":display_manager_interface_source_set_stub", 88 "${window_base_path}/utils:libwmutil_base", 89 "${window_base_path}/window_scene/interfaces/innerkits:libwsutils", 90 "../utils:libwmutil", 91 ] 92 93 external_deps = [ 94 "c_utils:utils", 95 "config_policy:configpolicy_util", 96 "eventhandler:libeventhandler", 97 "graphic_2d:librender_service_base", 98 "graphic_2d:librender_service_client", 99 "graphic_surface:surface", 100 "hilog:libhilog", 101 "hitrace:hitrace_meter", 102 "ipc:ipc_single", 103 "libxml2:libxml2", 104 "safwk:system_ability_fwk", 105 "samgr:samgr_proxy", 106 ] 107 108 defines = [] 109 if (window_manager_feature_subscribe_motion) { 110 if (defined(global_parts_info) && defined(global_parts_info.msdp_motion)) { 111 defines += [ "WM_SUBSCRIBE_MOTION_ENABLE" ] 112 } 113 } 114 115 if (is_standard_system) { 116 external_deps += [ "init:libbegetutil" ] 117 } else { 118 external_deps += [ "init_lite:libbegetutil" ] 119 } 120 121 if (defined(global_parts_info) && 122 defined(global_parts_info.resourceschedule_soc_perf)) { 123 external_deps += [ "soc_perf:socperf_client" ] 124 defines += [ "SOC_PERF_ENABLE" ] 125 } 126 127 if (defined(global_parts_info) && defined(global_parts_info.sensors_sensor)) { 128 external_deps += [ "sensor:sensor_interface_native" ] 129 defines += [ "SENSOR_ENABLE" ] 130 } 131 132 part_name = "window_manager" 133 subsystem_name = "window" 134 135 if (build_variant == "user") { 136 defines += [ "IS_RELEASE_VERSION" ] 137 } 138} 139 140group("test") { 141 testonly = true 142 deps = [ "test:test" ] 143} 144