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_ci
17e0dac50fSopenharmony_ciconfig("libdm_private_config") {
18e0dac50fSopenharmony_ci  include_dirs = [
19e0dac50fSopenharmony_ci    "include",
20e0dac50fSopenharmony_ci    "../dmserver/include",
21e0dac50fSopenharmony_ci    "${window_base_path}/interfaces/innerkits/wm",
22e0dac50fSopenharmony_ci    "${window_base_path}/window_scene",
23e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/screen_session_manager/include",
24e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/screen_session_manager_client/include",
25e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/session_manager/include",
26e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/session_manager_service/include",
27e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/interfaces/innerkits/include",
28e0dac50fSopenharmony_ci  ]
29e0dac50fSopenharmony_ci}
30e0dac50fSopenharmony_ci
31e0dac50fSopenharmony_ciconfig("libdm_public_config") {
32e0dac50fSopenharmony_ci  include_dirs = [
33e0dac50fSopenharmony_ci    "../interfaces/innerkits",
34e0dac50fSopenharmony_ci    "../interfaces/innerkits/dm",
35e0dac50fSopenharmony_ci    "../utils/include",
36e0dac50fSopenharmony_ci  ]
37e0dac50fSopenharmony_ci}
38e0dac50fSopenharmony_ci
39e0dac50fSopenharmony_ciconfig("libdm_ndk_public_config") {
40e0dac50fSopenharmony_ci  include_dirs = [ "../interfaces/kits/dmndk/dm" ]
41e0dac50fSopenharmony_ci}
42e0dac50fSopenharmony_ci
43e0dac50fSopenharmony_ciconfig("for_libdm_public_config") {
44e0dac50fSopenharmony_ci  include_dirs =
45e0dac50fSopenharmony_ci      [ "../../../multimedia/image_framework/interfaces/innerkits/include" ]
46e0dac50fSopenharmony_ci}
47e0dac50fSopenharmony_ci
48e0dac50fSopenharmony_ci## Build libdm_static.a
49e0dac50fSopenharmony_ciohos_static_library("libdm_static") {
50e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
51e0dac50fSopenharmony_ci  sanitize = {
52e0dac50fSopenharmony_ci    cfi = true
53e0dac50fSopenharmony_ci    cfi_cross_dso = true
54e0dac50fSopenharmony_ci    cfi_vcall_icall_only = true
55e0dac50fSopenharmony_ci    debug = false
56e0dac50fSopenharmony_ci    integer_overflow = true
57e0dac50fSopenharmony_ci    ubsan = true
58e0dac50fSopenharmony_ci    boundary_sanitize = true
59e0dac50fSopenharmony_ci  }
60e0dac50fSopenharmony_ci  sources = [
61e0dac50fSopenharmony_ci    "../dmserver/src/display_manager_proxy.cpp",
62e0dac50fSopenharmony_ci    "../window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp",
63e0dac50fSopenharmony_ci    "src/display.cpp",
64e0dac50fSopenharmony_ci    "src/display_manager.cpp",
65e0dac50fSopenharmony_ci    "src/display_manager_adapter.cpp",
66e0dac50fSopenharmony_ci    "src/screen.cpp",
67e0dac50fSopenharmony_ci    "src/screen_group.cpp",
68e0dac50fSopenharmony_ci    "src/screen_manager.cpp",
69e0dac50fSopenharmony_ci    "src/zidl/display_manager_agent_stub.cpp",
70e0dac50fSopenharmony_ci  ]
71e0dac50fSopenharmony_ci
72e0dac50fSopenharmony_ci  configs = [
73e0dac50fSopenharmony_ci    ":libdm_private_config",
74e0dac50fSopenharmony_ci    "${window_base_path}/resources/config/build:coverage_flags",
75e0dac50fSopenharmony_ci  ]
76e0dac50fSopenharmony_ci
77e0dac50fSopenharmony_ci  public_configs = [ ":libdm_public_config" ]
78e0dac50fSopenharmony_ci
79e0dac50fSopenharmony_ci  deps = [
80e0dac50fSopenharmony_ci    "${window_base_path}/utils:libwmutil",
81e0dac50fSopenharmony_ci    "${window_base_path}/utils:libwmutil_base",
82e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/interfaces/innerkits:libwsutils",
83e0dac50fSopenharmony_ci  ]
84e0dac50fSopenharmony_ci
85e0dac50fSopenharmony_ci  public_external_deps = [
86e0dac50fSopenharmony_ci    "graphic_2d:color_manager",
87e0dac50fSopenharmony_ci    "image_framework:image_native",
88e0dac50fSopenharmony_ci  ]
89e0dac50fSopenharmony_ci
90e0dac50fSopenharmony_ci  external_deps = [
91e0dac50fSopenharmony_ci    "ability_runtime:ability_manager",
92e0dac50fSopenharmony_ci    "c_utils:utils",
93e0dac50fSopenharmony_ci    "graphic_2d:librender_service_client",
94e0dac50fSopenharmony_ci    "hilog:libhilog",
95e0dac50fSopenharmony_ci    "image_framework:image_native",
96e0dac50fSopenharmony_ci    "ipc:ipc_single",
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 libdm.so
105e0dac50fSopenharmony_ciohos_shared_library("libdm") {
106e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
107e0dac50fSopenharmony_ci  sources = [
108e0dac50fSopenharmony_ci    "../dmserver/src/display_manager_proxy.cpp",
109e0dac50fSopenharmony_ci    "../window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp",
110e0dac50fSopenharmony_ci    "src/display.cpp",
111e0dac50fSopenharmony_ci    "src/display_manager.cpp",
112e0dac50fSopenharmony_ci    "src/display_manager_adapter.cpp",
113e0dac50fSopenharmony_ci    "src/screen.cpp",
114e0dac50fSopenharmony_ci    "src/screen_group.cpp",
115e0dac50fSopenharmony_ci    "src/screen_manager.cpp",
116e0dac50fSopenharmony_ci    "src/zidl/display_manager_agent_stub.cpp",
117e0dac50fSopenharmony_ci  ]
118e0dac50fSopenharmony_ci
119e0dac50fSopenharmony_ci  configs = [
120e0dac50fSopenharmony_ci    ":libdm_private_config",
121e0dac50fSopenharmony_ci    "../resources/config/build:coverage_flags",
122e0dac50fSopenharmony_ci  ]
123e0dac50fSopenharmony_ci
124e0dac50fSopenharmony_ci  public_configs = [
125e0dac50fSopenharmony_ci    ":for_libdm_public_config",
126e0dac50fSopenharmony_ci    ":libdm_public_config",
127e0dac50fSopenharmony_ci  ]
128e0dac50fSopenharmony_ci
129e0dac50fSopenharmony_ci  deps = [
130e0dac50fSopenharmony_ci    "${window_base_path}/utils:libwmutil",
131e0dac50fSopenharmony_ci    "${window_base_path}/utils:libwmutil_base",
132e0dac50fSopenharmony_ci    "${window_base_path}/window_scene/interfaces/innerkits:libwsutils",
133e0dac50fSopenharmony_ci  ]
134e0dac50fSopenharmony_ci
135e0dac50fSopenharmony_ci  public_external_deps = [ "graphic_2d:color_manager" ]
136e0dac50fSopenharmony_ci
137e0dac50fSopenharmony_ci  external_deps = [
138e0dac50fSopenharmony_ci    "ability_runtime:ability_manager",
139e0dac50fSopenharmony_ci    "c_utils:utils",
140e0dac50fSopenharmony_ci    "graphic_2d:librender_service_client",
141e0dac50fSopenharmony_ci    "hilog:libhilog",
142e0dac50fSopenharmony_ci    "image_framework:image_native",
143e0dac50fSopenharmony_ci    "ipc:ipc_single",
144e0dac50fSopenharmony_ci    "samgr:samgr_proxy",
145e0dac50fSopenharmony_ci  ]
146e0dac50fSopenharmony_ci
147e0dac50fSopenharmony_ci  innerapi_tags = [ "platformsdk" ]
148e0dac50fSopenharmony_ci  part_name = "window_manager"
149e0dac50fSopenharmony_ci  subsystem_name = "window"
150e0dac50fSopenharmony_ci
151e0dac50fSopenharmony_ci  defines = []
152e0dac50fSopenharmony_ci  if (build_variant == "user") {
153e0dac50fSopenharmony_ci    defines += [ "IS_RELEASE_VERSION" ]
154e0dac50fSopenharmony_ci  }
155e0dac50fSopenharmony_ci}
156e0dac50fSopenharmony_ci
157e0dac50fSopenharmony_cigroup("test") {
158e0dac50fSopenharmony_ci  testonly = true
159e0dac50fSopenharmony_ci  deps = [ "test:test" ]
160e0dac50fSopenharmony_ci}
161e0dac50fSopenharmony_ci
162e0dac50fSopenharmony_ci## Build libdm_ndk.so
163e0dac50fSopenharmony_ciohos_shared_library("libdm_ndk") {
164e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
165e0dac50fSopenharmony_ci  output_name = "libnative_display_manager"
166e0dac50fSopenharmony_ci  output_extension = "so"
167e0dac50fSopenharmony_ci
168e0dac50fSopenharmony_ci  sanitize = {
169e0dac50fSopenharmony_ci    cfi = true
170e0dac50fSopenharmony_ci    cfi_cross_dso = true
171e0dac50fSopenharmony_ci    cfi_vcall_icall_only = true
172e0dac50fSopenharmony_ci    debug = false
173e0dac50fSopenharmony_ci  }
174e0dac50fSopenharmony_ci
175e0dac50fSopenharmony_ci  public_configs = [ ":libdm_ndk_public_config" ]
176e0dac50fSopenharmony_ci
177e0dac50fSopenharmony_ci  include_dirs = [
178e0dac50fSopenharmony_ci    "${window_base_path}/interfaces/kits/dmndk/dm",
179e0dac50fSopenharmony_ci    "${window_base_path}/interfaces/inner_kits/dm",
180e0dac50fSopenharmony_ci  ]
181e0dac50fSopenharmony_ci
182e0dac50fSopenharmony_ci  sources = [ "src/oh_display_manager.cpp" ]
183e0dac50fSopenharmony_ci
184e0dac50fSopenharmony_ci  deps = [ ":libdm" ]
185e0dac50fSopenharmony_ci  innerapi_tags = [ "ndk" ]
186e0dac50fSopenharmony_ci
187e0dac50fSopenharmony_ci  external_deps = [
188e0dac50fSopenharmony_ci    "c_utils:utils",
189e0dac50fSopenharmony_ci    "hilog:libhilog",
190e0dac50fSopenharmony_ci  ]
191e0dac50fSopenharmony_ci
192e0dac50fSopenharmony_ci  part_name = "window_manager"
193e0dac50fSopenharmony_ci  subsystem_name = "window"
194e0dac50fSopenharmony_ci}
195