• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 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#
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("//third_party/wayland_standard/wayland_protocol.gni")
16
17## Generate Wayland Protocols {{{
18wayland_protocol("ivi_wm_protocol") {
19  sources = [ "protocol/ivi-wm.xml" ]
20}
21wayland_protocol("ivi_input_protocol") {
22  sources = [ "protocol/ivi-input.xml" ]
23}
24wayland_protocol("screen_info_protocol") {
25  sources = [ "screen-info/protocol/screen-info.xml" ]
26}
27
28## Generate Wayland Protocols }}}
29
30## Build ivi-controller.so {{{
31config("ivi-controller_config") {
32  visibility = [ ":*" ]
33
34  include_dirs = [
35    "//third_party/wayland_standard",
36    "//third_party/weston/compositor",
37    "//third_party/weston/ivi-shell",
38    "//third_party/weston/libweston",
39    "screen-info/module",
40  ]
41
42  cflags = [
43    "-Wall",
44    "-Werror",
45    "-Wno-incompatible-pointer-types",
46  ]
47}
48
49config("ivi-controller_public_config") {
50  include_dirs = [ "weston-ivi-shell/src" ]
51}
52
53ohos_shared_library("ivi-controller") {
54  sources = [ "weston-ivi-shell/src/ivi-controller.c" ]
55
56  configs = [ ":ivi-controller_config" ]
57
58  public_configs = [ ":ivi-controller_public_config" ]
59
60  deps = [
61    ":ivi_input_protocol",
62    "//third_party/wayland_standard:wayland_core_protocol",
63    "//third_party/weston:ivi_application_protocol",
64    "//third_party/weston:libexec_weston",
65  ]
66
67  public_deps = [ ":ivi_wm_protocol" ]
68
69  part_name = "graphic_standard"
70  subsystem_name = "graphic"
71}
72
73## Build ivi-controller.so }}}
74
75## Build ivi-input-controller.so {{{
76config("ivi-input-controller_config") {
77  visibility = [ ":*" ]
78
79  include_dirs = [
80    "//third_party/weston/ivi-shell",
81    "//third_party/weston/include/libweston",
82    "ivi-layermanagement-api/ilmCommon/include",
83    "weston-ivi-shell/src",
84    "//third_party/weston/libweston",
85  ]
86
87  cflags = [
88    "-Wall",
89    "-Werror",
90    "-Wno-incompatible-pointer-types",
91  ]
92}
93
94config("ivi-input-controller_public_config") {
95  include_dirs = []
96}
97
98ohos_shared_library("ivi-input-controller") {
99  sources =
100      [ "ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c" ]
101
102  configs = [ ":ivi-input-controller_config" ]
103
104  public_configs = [ ":ivi-input-controller_public_config" ]
105
106  deps = [
107    ":ivi_input_protocol",
108    ":ivi_wm_protocol",
109    "//third_party/wayland_standard:wayland_core_protocol",
110    "//third_party/weston:ivi_application_protocol",
111    "//third_party/weston:libweston",
112  ]
113
114  public_deps = []
115
116  part_name = "graphic_standard"
117  subsystem_name = "graphic"
118}
119
120## Build ivi-input-controller.so }}}
121
122## Build ivi-id-agent.so {{{
123config("ivi-id-agent_config") {
124  visibility = [ ":*" ]
125
126  include_dirs = [
127    "//third_party/weston/compositor",
128    "//third_party/weston/ivi-shell",
129    "//third_party/weston/include/libweston",
130  ]
131
132  cflags = []
133}
134
135config("ivi-id-agent_public_config") {
136  include_dirs = []
137}
138
139ohos_shared_library("ivi-id-agent") {
140  sources = [ "ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c" ]
141
142  configs = [ ":ivi-id-agent_config" ]
143
144  public_configs = [ ":ivi-id-agent_public_config" ]
145
146  deps = [ "//third_party/weston:libweston-desktop" ]
147
148  public_deps = []
149
150  part_name = "graphic_standard"
151  subsystem_name = "graphic"
152}
153
154## Build ivi-id-agent.so }}}
155
156## Build libilmClient.so {{{
157config("libilmClient_config") {
158  visibility = [ ":*" ]
159
160  include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ]
161
162  cflags = [
163    "-Wall",
164    "-Werror",
165  ]
166}
167
168config("libilmClient_public_config") {
169  include_dirs = [ "ivi-layermanagement-api/ilmClient/include" ]
170}
171
172ohos_shared_library("libilmClient") {
173  sources = [
174    "ivi-layermanagement-api/ilmClient/src/ilm_client.c",
175    "ivi-layermanagement-api/ilmClient/src/ilm_client_wayland_platform.c",
176  ]
177
178  configs = [ ":libilmClient_config" ]
179
180  public_configs = [ ":libilmClient_public_config" ]
181
182  deps = [ "//third_party/wayland_standard:libwayland_client" ]
183
184  public_deps = [
185    "//third_party/wayland_standard:wayland_core_protocol",
186    "//third_party/weston:ivi_application_protocol",
187  ]
188
189  part_name = "graphic_standard"
190  subsystem_name = "graphic"
191}
192
193## Build libilmClient.so }}}
194
195## Build libilmCommon.so {{{
196config("libilmCommon_config") {
197  visibility = [ ":*" ]
198
199  include_dirs = []
200
201  cflags = []
202}
203
204config("libilmCommon_public_config") {
205  include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ]
206}
207
208ohos_shared_library("libilmCommon") {
209  sources = [
210    "ivi-layermanagement-api/ilmCommon/src/ilm_common.c",
211    "ivi-layermanagement-api/ilmCommon/src/ilm_common_wayland_platform.c",
212  ]
213
214  configs = [ ":libilmCommon_config" ]
215
216  public_configs = [ ":libilmCommon_public_config" ]
217
218  deps = [
219    ":libilmControl",
220    "//third_party/wayland_standard:libwayland_client",
221  ]
222
223  public_deps = []
224
225  part_name = "graphic_standard"
226  subsystem_name = "graphic"
227}
228
229## Build libilmCommon.so }}}
230
231## Build libilmControl.so {{{
232config("libilmControl_config") {
233  visibility = [ ":*" ]
234
235  include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ]
236
237  cflags = []
238}
239
240config("libilmControl_public_config") {
241  include_dirs = [ "ivi-layermanagement-api/ilmControl/include" ]
242}
243
244ohos_shared_library("libilmControl") {
245  sources = [
246    "ivi-layermanagement-api/ilmControl/src/bitmap.c",
247    "ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c",
248    "ivi-layermanagement-api/ilmControl/src/writepng.c",
249  ]
250
251  configs = [ ":libilmControl_config" ]
252
253  public_configs = [ ":libilmControl_public_config" ]
254
255  deps = [
256    ":ivi_input_protocol",
257    ":ivi_wm_protocol",
258    "//third_party/libpng:libpng",
259    "//third_party/wayland_standard:libwayland_client",
260  ]
261
262  public_deps = []
263
264  part_name = "graphic_standard"
265  subsystem_name = "graphic"
266}
267
268## Build libilmControl.so }}}
269
270## Build libilmInput.so {{{
271config("libilmInput_config") {
272  visibility = [ ":*" ]
273
274  include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ]
275
276  cflags = []
277}
278
279config("libilmInput_public_config") {
280  include_dirs = [ "ivi-layermanagement-api/ilmInput/include" ]
281}
282
283ohos_shared_library("libilmInput") {
284  sources = [ "ivi-layermanagement-api/ilmInput/src/ilm_input.c" ]
285
286  configs = [ ":libilmInput_config" ]
287
288  public_configs = [ ":libilmInput_public_config" ]
289
290  deps = [
291    ":ivi_input_protocol",
292    ":libilmControl",
293    "//third_party/wayland_standard:libwayland_client",
294  ]
295
296  public_deps = []
297
298  part_name = "graphic_standard"
299  subsystem_name = "graphic"
300}
301
302## Build libilmInput.so }}}
303
304## Build layer-add-surfaces {{{
305config("layer-add-surfaces_config") {
306  visibility = [ ":*" ]
307
308  include_dirs = []
309
310  cflags = []
311}
312
313ohos_executable("layer-add-surfaces") {
314  install_enable = true
315
316  sources = [
317    "ivi-layermanagement-examples/layer-add-surfaces/src/layer-add-surfaces.c",
318  ]
319
320  configs = [ ":layer-add-surfaces_config" ]
321
322  deps = [
323    ":libilmCommon",
324    ":libilmControl",
325    "//third_party/wayland_standard:wayland_core_protocol",
326    "//third_party/weston:ivi_application_protocol",
327  ]
328
329  part_name = "graphic_standard"
330  subsystem_name = "graphic"
331}
332
333## Build layer-add-surfaces }}}
334
335## Build LayerManagerControl {{{
336config("LayerManagerControl_config") {
337  visibility = [ ":*" ]
338
339  include_dirs = [ "ivi-layermanagement-examples/LayerManagerControl/include" ]
340
341  cflags = [ "-Wno-header-hygiene" ]
342}
343
344ohos_executable("LayerManagerControl") {
345  install_enable = true
346
347  sources = [
348    "ivi-layermanagement-examples/LayerManagerControl/src/Expression.cpp",
349    "ivi-layermanagement-examples/LayerManagerControl/src/ExpressionInterpreter.cpp",
350    "ivi-layermanagement-examples/LayerManagerControl/src/analyze.cpp",
351    "ivi-layermanagement-examples/LayerManagerControl/src/commands.cpp",
352    "ivi-layermanagement-examples/LayerManagerControl/src/common.cpp",
353    "ivi-layermanagement-examples/LayerManagerControl/src/control.cpp",
354    "ivi-layermanagement-examples/LayerManagerControl/src/input_commands.cpp",
355    "ivi-layermanagement-examples/LayerManagerControl/src/main.cpp",
356    "ivi-layermanagement-examples/LayerManagerControl/src/print.cpp",
357    "ivi-layermanagement-examples/LayerManagerControl/src/sceneio.cpp",
358    "ivi-layermanagement-examples/LayerManagerControl/src/util.cpp",
359  ]
360
361  configs = [ ":LayerManagerControl_config" ]
362
363  deps = [
364    ":libilmCommon",
365    ":libilmControl",
366    ":libilmInput",
367    "//third_party/wayland_standard:wayland_core_protocol",
368    "//third_party/weston:ivi_application_protocol",
369  ]
370
371  part_name = "graphic_standard"
372  subsystem_name = "graphic"
373}
374
375## Build LayerManagerControl }}}
376
377## Build simple-weston-client {{{
378config("simple-weston-client_config") {
379  visibility = [ ":*" ]
380
381  include_dirs = [ "//third_party/bounds_checking_function/include" ]
382
383  cflags = [
384    "-Wall",
385    "-Werror",
386    "-Wno-unused-function",
387    "-Wno-unused-variable",
388  ]
389}
390
391ohos_executable("simple-weston-client") {
392  install_enable = true
393
394  sources = [ "ivi-layermanagement-examples/simple-weston-client/src/simple-weston-client.c" ]
395
396  configs = [
397    ":simple-weston-client_config",
398    "//third_party/libdrm:libdrm_public_config",
399  ]
400
401  deps = [
402    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
403    "//third_party/wayland-protocols_standard:viewporter_protocol",
404    "//third_party/wayland_standard:libwayland_client",
405    "//third_party/wayland_standard:libwayland_cursor",
406    "//third_party/wayland_standard:wayland_core_protocol",
407    "//third_party/weston:ivi_application_protocol",
408    "//third_party/weston:libweston",
409    "//utils/native/base:utils",
410  ]
411
412  part_name = "graphic_standard"
413  subsystem_name = "graphic"
414}
415
416## Build simple-weston-client }}}
417
418## Build libscreen-info-module.so {{{
419config("libscreen-info-module_config") {
420  visibility = [ ":*" ]
421
422  include_dirs = [
423    "//third_party/weston/compositor",
424    "//third_party/weston/include",
425    "//third_party/weston/ivi-shell",
426  ]
427
428  cflags = []
429}
430
431config("libscreen-info-module_public_config") {
432  include_dirs = [ "screen-info/module" ]
433}
434
435ohos_shared_library("libscreen-info-module") {
436  sources = [ "screen-info/module/screen-info.c" ]
437
438  configs = [ ":libscreen-info-module_config" ]
439
440  public_configs = [ ":libscreen-info-module_public_config" ]
441
442  deps = [
443    ":ivi-controller",
444    "//third_party/weston:libweston",
445  ]
446
447  part_name = "graphic_standard"
448  subsystem_name = "graphic"
449}
450
451## Build libscreen-info-module.so }}}
452
453## Build libtest-screen-info-module.so {{{
454config("libtest-screen-info-module_config") {
455  visibility = [ ":*" ]
456
457  include_dirs = [
458    "//third_party/weston/compositor",
459    "//third_party/weston/include",
460    "//third_party/weston/ivi-shell",
461  ]
462
463  cflags = []
464}
465
466ohos_shared_library("libtest-screen-info-module") {
467  sources = [ "screen-info/test-module/call-screen-info.c" ]
468
469  configs = [ ":libtest-screen-info-module_config" ]
470
471  deps = [
472    ":ivi-controller",
473    ":libscreen-info-module",
474    ":screen_info_protocol",
475    "//third_party/weston:libweston",
476  ]
477
478  part_name = "graphic_standard"
479  subsystem_name = "graphic"
480}
481
482## Build libtest-screen-info-module.so }}}
483
484## Build screen-info-module-test {{{
485config("screen-info-module-test_config") {
486  visibility = [ ":*" ]
487
488  include_dirs = []
489
490  cflags = []
491}
492
493ohos_executable("screen-info-module-test") {
494  install_enable = true
495
496  sources = [ "screen-info/test/main.c" ]
497
498  configs = [ ":screen-info-module-test_config" ]
499
500  deps = [
501    ":screen_info_protocol",
502    "//third_party/wayland_standard:libwayland_client",
503  ]
504
505  part_name = "graphic_standard"
506  subsystem_name = "graphic"
507}
508## Build screen-info-module-test }}}
509