1# Copyright (c) 2020-2021 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#     http://www.apache.org/licenses/LICENSE-2.0
6# Unless required by applicable law or agreed to in writing, software
7# distributed under the License is distributed on an "AS IS" BASIS,
8# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9# See the License for the specific language governing permissions and
10# limitations under the License.
11
12import("//build/lite/config/component/lite_component.gni")
13import("//build/lite/ndk/ndk.gni")
14
15lite_component("window_manager_lite") {
16  features = [
17    ":wms_server",
18    ":wms_client",
19  ]
20  public_deps = [ ":wms_client" ]
21}
22
23ndk_lib("window_manager_lite_ndk") {
24  lib_extension = ".so"
25  deps = [ ":wms_client" ]
26  head_files = []
27}
28
29commonDeps = [
30  "//foundation/systemabilitymgr/samgr_lite/samgr:samgr",
31  "//foundation/systemabilitymgr/samgr_lite/communication/broadcast:broadcast",
32  "//foundation/communication/ipc/interfaces/innerkits/c/ipc:ipc_single",
33  "//foundation/graphic/surface_lite:surface",
34  "//foundation/graphic/graphic_utils_lite:utils_lite",
35  "//third_party/bounds_checking_function:libsec_shared",
36]
37
38shared_library("wms_client") {
39  sources = [
40    "frameworks/ims/input_event_listener_proxy.cpp",
41    "frameworks/wms/iwindows_manager.cpp",
42    "frameworks/wms/lite_proxy_surface.cpp",
43    "frameworks/wms/lite_proxy_window.cpp",
44    "frameworks/wms/lite_proxy_windows_manager.cpp",
45    "frameworks/wms/lite_win_requestor.cpp",
46    "frameworks/wms/lite_wm_requestor.cpp",
47    "frameworks/wms/lite_wms_client.cpp",
48  ]
49  deps = commonDeps
50  public_deps = [ "//foundation/graphic/surface_lite:surface_lite" ]
51  public_configs = [ ":wms_public_config" ]
52  ldflags = [ "-lstdc++" ]
53  cflags = [ "-Wall" ]
54  cflags_cc = cflags
55}
56
57config("wms_public_config") {
58  include_dirs = [ "interfaces/innerkits" ]
59}
60
61imsSources = [
62  "services/ims/input_event_distributer.cpp",
63  "services/ims/input_event_hub.cpp",
64  "services/ims/input_manager_service.cpp",
65  "services/ims/input_event_client_proxy.cpp",
66  "services/ims/samgr_ims.cpp",
67]
68imsInclude = [ "services/ims" ]
69imsDeps = [ "//drivers/hdf_core/adapter/uhdf/posix:hdf_posix_osal" ]
70
71executable("wms_server") {
72  sources = [
73    "services/wms/lite_win.cpp",
74    "services/wms/lite_wm.cpp",
75    "services/wms/lite_wms.cpp",
76    "services/wms/samgr_wms.cpp",
77    "services/wms/wms.cpp",
78  ]
79  include_dirs = [
80    "frameworks/ims",
81    "interfaces/innerkits",
82    "//base/security/permission_lite/services/pms_client/include",
83    "//base/security/permission_lite/interfaces/innerkits",
84    "//base/security/permission_lite/interfaces/kits",
85    "//drivers/peripheral/input/interfaces/include",
86    "//third_party/FreeBSD/sys/dev/evdev",
87  ]
88  ldflags = [
89    "-lstdc++",
90    "-lpthread",
91    "-Wl,-rpath-link=$ohos_root_path/$root_out_dir",
92    "-ldisplay_gfx",
93    "-ldisplay_gralloc",
94    "-ldisplay_layer",
95  ]
96  deps = [
97    "//base/security/permission_lite/services/pms_client:pms_client",
98    "//drivers/peripheral/input/hal:hdi_input",
99    "//foundation/graphic/graphic_utils_lite:lite_graphic_hals",
100  ]
101  deps += commonDeps
102  cflags = [ "-Wall" ]
103  cflags_cc = cflags
104
105  sources += imsSources
106  include_dirs += imsInclude
107  deps += imsDeps
108}
109