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