1e0dac50fSopenharmony_ci# Copyright (c) 2023 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_ci
17e0dac50fSopenharmony_ciconfig("session_manager_public_config") {
18e0dac50fSopenharmony_ci  visibility = [ ":*" ]
19e0dac50fSopenharmony_ci
20e0dac50fSopenharmony_ci  include_dirs = [
21e0dac50fSopenharmony_ci    "${window_base_path}/interfaces/innerkits/wm",
22e0dac50fSopenharmony_ci    "${window_base_path}/interfaces/include",
23e0dac50fSopenharmony_ci    "${window_base_path}/window_scene",
24e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/common/include",
25e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/interfaces/include",
26e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/screen_session_manager/include",
27e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/screen_session_manager/include/zidl",
28e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/session_manager_service/include",
29e0dac50fSopenharmony_ci
30e0dac50fSopenharmony_ci    # for session_manager
31e0dac50fSopenharmony_ci    "${window_base_path}/wmserver/include",
32e0dac50fSopenharmony_ci    "${window_base_path}/wmserver/include/zidl",
33e0dac50fSopenharmony_ci
34e0dac50fSopenharmony_ci    # for screen_session_manager
35e0dac50fSopenharmony_ci    "${window_base_path}/utils/include",
36e0dac50fSopenharmony_ci    "${window_base_path}/dm/include",
37e0dac50fSopenharmony_ci    "${window_base_path}/interfaces/innerkits/dm",
38e0dac50fSopenharmony_ci    "${window_base_path}/dmserver/include",
39e0dac50fSopenharmony_ci
40e0dac50fSopenharmony_ci    # for scene session manager
41e0dac50fSopenharmony_ci    "${window_base_path}/interfaces/innerkits/wm",
42e0dac50fSopenharmony_ci    "${window_base_path}/wmserver/include",
43e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/screen_session_manager_client/include",
44e0dac50fSopenharmony_ci
45e0dac50fSopenharmony_ci    # for window_manager_hilog
46e0dac50fSopenharmony_ci    "${window_base_path}/utils/include",
47e0dac50fSopenharmony_ci
48e0dac50fSopenharmony_ci    "${window_base_path}/wm/include",
49e0dac50fSopenharmony_ci    "${window_base_path}/wm/include/zidl",
50e0dac50fSopenharmony_ci  ]
51e0dac50fSopenharmony_ci}
52e0dac50fSopenharmony_ci
53e0dac50fSopenharmony_ciohos_shared_library("screen_session_manager") {
54e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
55e0dac50fSopenharmony_ci  sanitize = {
56e0dac50fSopenharmony_ci    cfi = true
57e0dac50fSopenharmony_ci    cfi_cross_dso = true
58e0dac50fSopenharmony_ci    cfi_vcall_icall_only = true
59e0dac50fSopenharmony_ci    debug = false
60e0dac50fSopenharmony_ci  }
61e0dac50fSopenharmony_ci  sources = [
62e0dac50fSopenharmony_ci    "../../dm/src/zidl/display_manager_agent_proxy.cpp",
63e0dac50fSopenharmony_ci    "../screen_session_manager_client/src/zidl/screen_session_manager_client_proxy.cpp",
64e0dac50fSopenharmony_ci    "src/connection/screen_cast_connection.cpp",
65e0dac50fSopenharmony_ci    "src/connection/screen_session_ability_connection.cpp",
66e0dac50fSopenharmony_ci    "src/connection/screen_snapshot_picker_connection.cpp",
67e0dac50fSopenharmony_ci    "src/fold_screen_controller/dual_display_fold_policy.cpp",
68e0dac50fSopenharmony_ci    "src/fold_screen_controller/fold_screen_controller.cpp",
69e0dac50fSopenharmony_ci    "src/fold_screen_controller/fold_screen_policy.cpp",
70e0dac50fSopenharmony_ci    "src/fold_screen_controller/fold_screen_sensor_manager.cpp",
71e0dac50fSopenharmony_ci    "src/fold_screen_controller/fold_screen_state_machine.cpp",
72e0dac50fSopenharmony_ci    "src/fold_screen_controller/sensor_fold_state_manager/dual_display_sensor_fold_state_manager.cpp",
73e0dac50fSopenharmony_ci    "src/fold_screen_controller/sensor_fold_state_manager/sensor_fold_state_manager.cpp",
74e0dac50fSopenharmony_ci    "src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_fold_state_manager.cpp",
75e0dac50fSopenharmony_ci    "src/fold_screen_controller/sensor_fold_state_manager/single_display_sensor_pocket_fold_state_manager.cpp",
76e0dac50fSopenharmony_ci    "src/fold_screen_controller/single_display_fold_policy.cpp",
77e0dac50fSopenharmony_ci    "src/fold_screen_controller/single_display_pocket_fold_policy.cpp",
78e0dac50fSopenharmony_ci    "src/multi_screen_manager.cpp",
79e0dac50fSopenharmony_ci    "src/publish/screen_session_publish.cpp",
80e0dac50fSopenharmony_ci    "src/screen_cutout_controller.cpp",
81e0dac50fSopenharmony_ci    "src/screen_rotation_property.cpp",
82e0dac50fSopenharmony_ci    "src/screen_scene_config.cpp",
83e0dac50fSopenharmony_ci    "src/screen_sensor_connector.cpp",
84e0dac50fSopenharmony_ci    "src/screen_session_dumper.cpp",
85e0dac50fSopenharmony_ci    "src/screen_session_manager.cpp",
86e0dac50fSopenharmony_ci    "src/screen_setting_helper.cpp",
87e0dac50fSopenharmony_ci    "src/screen_tent_property.cpp",
88e0dac50fSopenharmony_ci    "src/session_display_power_controller.cpp",
89e0dac50fSopenharmony_ci    "src/setting_observer.cpp",
90e0dac50fSopenharmony_ci    "src/setting_provider.cpp",
91e0dac50fSopenharmony_ci    "src/zidl/screen_session_manager_stub.cpp",
92e0dac50fSopenharmony_ci  ]
93e0dac50fSopenharmony_ci
94e0dac50fSopenharmony_ci  cflags_cc = [ "-std=c++17" ]
95e0dac50fSopenharmony_ci
96e0dac50fSopenharmony_ci  public_configs = [ ":session_manager_public_config" ]
97e0dac50fSopenharmony_ci  public_external_deps = [
98e0dac50fSopenharmony_ci    "ability_runtime:session_handler",
99e0dac50fSopenharmony_ci    "accessibility:accessibility_common",
100e0dac50fSopenharmony_ci    "input:libmmi-client",
101e0dac50fSopenharmony_ci    "input:libmmi-napi",
102e0dac50fSopenharmony_ci  ]
103e0dac50fSopenharmony_ci  deps = [
104e0dac50fSopenharmony_ci    "${window_base_path}/etc:wms_etc",
105e0dac50fSopenharmony_ci    "${window_base_path}/utils:libwmutil",
106e0dac50fSopenharmony_ci    "${window_base_path}/utils:libwmutil_base",
107e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/common:window_scene_common",
108e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/interfaces/innerkits:libwsutils",
109e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/session:screen_session",
110e0dac50fSopenharmony_ci    "${window_base_path}/wmserver:sms",
111e0dac50fSopenharmony_ci  ]
112e0dac50fSopenharmony_ci
113e0dac50fSopenharmony_ci  external_deps = [
114e0dac50fSopenharmony_ci    "ability_base:base",
115e0dac50fSopenharmony_ci    "ability_base:want",
116e0dac50fSopenharmony_ci    "ability_base:zuri",
117e0dac50fSopenharmony_ci    "ability_runtime:ability_connect_callback_stub",
118e0dac50fSopenharmony_ci    "ability_runtime:ability_manager",
119e0dac50fSopenharmony_ci    "ability_runtime:abilitykit_native",
120e0dac50fSopenharmony_ci    "ability_runtime:app_manager",
121e0dac50fSopenharmony_ci    "ability_runtime:dataobs_manager",
122e0dac50fSopenharmony_ci    "ability_runtime:extension_manager",
123e0dac50fSopenharmony_ci    "c_utils:utils",
124e0dac50fSopenharmony_ci    "common_event_service:cesfwk_innerkits",
125e0dac50fSopenharmony_ci    "config_policy:configpolicy_util",
126e0dac50fSopenharmony_ci    "data_share:datashare_common",
127e0dac50fSopenharmony_ci    "data_share:datashare_consumer",
128e0dac50fSopenharmony_ci    "eventhandler:libeventhandler",
129e0dac50fSopenharmony_ci    "graphic_2d:librender_service_client",
130e0dac50fSopenharmony_ci    "hicollie:libhicollie",
131e0dac50fSopenharmony_ci    "hilog:libhilog",
132e0dac50fSopenharmony_ci    "hisysevent:libhisysevent",
133e0dac50fSopenharmony_ci    "hitrace:hitrace_meter",
134e0dac50fSopenharmony_ci    "init:libbeget_proxy",
135e0dac50fSopenharmony_ci    "ipc:ipc_core",
136e0dac50fSopenharmony_ci    "libxml2:libxml2",
137e0dac50fSopenharmony_ci    "safwk:system_ability_fwk",
138e0dac50fSopenharmony_ci    "samgr:samgr_proxy",
139e0dac50fSopenharmony_ci  ]
140e0dac50fSopenharmony_ci
141e0dac50fSopenharmony_ci  defines = []
142e0dac50fSopenharmony_ci  if (window_manager_feature_subscribe_motion) {
143e0dac50fSopenharmony_ci    if (defined(global_parts_info) && defined(global_parts_info.msdp_motion)) {
144e0dac50fSopenharmony_ci      external_deps += [ "motion:motion_interface_native" ]
145e0dac50fSopenharmony_ci      defines += [ "WM_SUBSCRIBE_MOTION_ENABLE" ]
146e0dac50fSopenharmony_ci    }
147e0dac50fSopenharmony_ci  }
148e0dac50fSopenharmony_ci
149e0dac50fSopenharmony_ci  if (defined(global_parts_info) && defined(global_parts_info.sensors_sensor)) {
150e0dac50fSopenharmony_ci    external_deps += [ "sensor:sensor_interface_native" ]
151e0dac50fSopenharmony_ci    defines += [ "SENSOR_ENABLE" ]
152e0dac50fSopenharmony_ci  }
153e0dac50fSopenharmony_ci
154e0dac50fSopenharmony_ci  if (defined(global_parts_info) &&
155e0dac50fSopenharmony_ci      defined(global_parts_info.powermgr_power_manager)) {
156e0dac50fSopenharmony_ci    external_deps += [ "power_manager:powermgr_client" ]
157e0dac50fSopenharmony_ci    defines += [ "POWER_MANAGER_ENABLE" ]
158e0dac50fSopenharmony_ci  }
159e0dac50fSopenharmony_ci
160e0dac50fSopenharmony_ci  if (window_manager_feature_tp_enable) {
161e0dac50fSopenharmony_ci    defines += [ "TP_FEATURE_ENABLE" ]
162e0dac50fSopenharmony_ci  }
163e0dac50fSopenharmony_ci
164e0dac50fSopenharmony_ci  if (is_standard_system) {
165e0dac50fSopenharmony_ci    external_deps += [ "init:libbegetutil" ]
166e0dac50fSopenharmony_ci  } else {
167e0dac50fSopenharmony_ci    external_deps += [ "init_lite:libbegetutil" ]
168e0dac50fSopenharmony_ci  }
169e0dac50fSopenharmony_ci
170e0dac50fSopenharmony_ci  if (device_status_enable) {
171e0dac50fSopenharmony_ci    external_deps += [ "device_status:devicestatus_client" ]
172e0dac50fSopenharmony_ci    defines += [ "DEVICE_STATUS_ENABLE" ]
173e0dac50fSopenharmony_ci  }
174e0dac50fSopenharmony_ci
175e0dac50fSopenharmony_ci  innerapi_tags = [ "platformsdk" ]
176e0dac50fSopenharmony_ci  part_name = "window_manager"
177e0dac50fSopenharmony_ci  subsystem_name = "window"
178e0dac50fSopenharmony_ci}
179