• 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
17group("default") {
18  public_deps = [
19    ":drm-backend",
20
21    #":hdi-backend",
22    ":ivi-shell",
23    ":libweston-desktop",
24    ":weston",
25    ":weston.ini",
26    ":weston.rc",
27  ]
28}
29
30## Generate Wayland Protocols {{{
31wayland_protocol("text_cursor_position_protocol") {
32  sources = [ "protocol/text-cursor-position.xml" ]
33}
34wayland_protocol("weston_content_protection_protocol") {
35  sources = [ "protocol/weston-content-protection.xml" ]
36}
37wayland_protocol("weston_touch_calibration_protocol") {
38  sources = [ "protocol/weston-touch-calibration.xml" ]
39}
40wayland_protocol("weston_direct_display_protocol") {
41  sources = [ "protocol/weston-direct-display.xml" ]
42}
43wayland_protocol("weston_screenshooter_protocol") {
44  sources = [ "protocol/weston-screenshooter.xml" ]
45}
46wayland_protocol("ivi_application_protocol") {
47  sources = [ "protocol/ivi-application.xml" ]
48}
49wayland_protocol("drm_auth_protocol") {
50  sources = [ "protocol/drm-auth.xml" ]
51}
52
53## Generate Wayland Protocols }}}
54
55## Build libshared.a {{{
56config("libshared_config") {
57  visibility = [ ":*" ]
58
59  include_dirs = [
60    "include",
61    "//third_party/wayland_standard/src",
62    "//third_party/wayland-ivi-extension_standard/include",
63  ]
64
65  cflags = [
66    "-Wall",
67    "-Werror",
68    "-Wno-unused-parameter",
69  ]
70}
71
72config("libshared_public_config") {
73  include_dirs = [ "shared" ]
74}
75
76ohos_static_library("libshared") {
77  sources = [
78    "shared/config-parser.c",
79    "shared/file-util.c",
80    "shared/matrix.c",
81    "shared/option-parser.c",
82    "shared/os-compatibility.c",
83  ]
84
85  configs = [ ":libshared_config" ]
86
87  public_configs = [ ":libshared_public_config" ]
88
89  deps = []
90
91  public_deps = [ "//third_party/wayland_standard:libwayland_server" ]
92}
93
94## Build libshared.a }}}
95
96## Build libweston.so {{{
97config("libweston_config") {
98  visibility = [ ":*" ]
99
100  include_dirs = [
101    "//third_party/weston/include",
102    "libweston",
103    "//third_party/wayland_standard/src",
104    "//third_party/wayland-ivi-extension_standard/include",
105    "//third_party/weston",
106  ]
107
108  cflags = [
109    "-Wall",
110    "-Werror",
111    "-Wno-unused-parameter",
112    "-Wno-unused-function",
113    "-Wno-missing-field-initializers",
114    "-Wno-unused-variable",
115    "-Wno-implicit-function-declaration",
116  ]
117}
118
119config("libweston_public_config") {
120  include_dirs = [
121    "include",
122    "libweston/backend-drm",
123    "//third_party/bounds_checking_function/include",
124  ]
125}
126
127ohos_shared_library("libweston") {
128  sources = [
129    "libweston/animation.c",
130    "libweston/bindings.c",
131    "libweston/clipboard.c",
132    "libweston/compositor.c",
133    "libweston/content-protection.c",
134    "libweston/data-device.c",
135    "libweston/input.c",
136    "libweston/launcher-direct.c",
137    "libweston/launcher-util.c",
138    "libweston/launcher-weston-launch.c",
139    "libweston/linux-dmabuf.c",
140    "libweston/linux-explicit-synchronization.c",
141    "libweston/linux-sync-file.c",
142    "libweston/noop-renderer.c",
143    "libweston/pixel-formats.c",
144    "libweston/pixman-renderer.c",
145    "libweston/plugin-registry.c",
146    "libweston/screenshooter.c",
147    "libweston/tde-render-part.cpp",
148    "libweston/touch-calibration.c",
149    "libweston/vertex-clipping.c",
150    "libweston/weston-direct-display.c",
151    "libweston/zoom.c",
152  ]
153
154  configs = [ ":libweston_config" ]
155
156  public_configs = [
157    ":libweston_public_config",
158    ":drm-backend_public_config",
159  ]
160
161  deps = [
162    ":trace",
163    "//third_party/libdrm:libdrm",
164    "//third_party/libinput:libinput-third",
165    "//utils/native/base:utils",
166  ]
167
168  public_deps = [
169    ":libshared",
170    ":text_cursor_position_protocol",
171    ":weston_content_protection_protocol",
172    ":weston_direct_display_protocol",
173    ":weston_touch_calibration_protocol",
174    "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog",
175    "//drivers/peripheral/display/hal:hdi_display_gralloc",
176    "//third_party/libxkbcommon:libxkbcommon",
177    "//third_party/pixman:libpixman",
178    "//third_party/wayland-protocols_standard:input_timestamps_unstable_v1_protocol",
179    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
180    "//third_party/wayland-protocols_standard:linux_explicit_synchronization_unstable_v1_protocol",
181    "//third_party/wayland-protocols_standard:pointer_constraints_unstable_v1_protocol",
182    "//third_party/wayland-protocols_standard:presentation_time_protocol",
183    "//third_party/wayland-protocols_standard:relative_pointer_unstable_v1_protocol",
184    "//third_party/wayland-protocols_standard:viewporter_protocol",
185    "//third_party/wayland-protocols_standard:xdg_output_unstable_v1_protocol",
186  ]
187
188  part_name = "graphic_standard"
189  subsystem_name = "graphic"
190}
191
192## Build libweston.so }}}
193
194## Build libexec_weston.a {{{
195config("libexec_weston_config") {
196  visibility = [ ":*" ]
197
198  include_dirs = [
199    "libweston",
200    ".",
201  ]
202
203  cflags = [
204    "-Wall",
205    "-Werror",
206    "-Wno-unused-parameter",
207    "-Wno-missing-field-initializers",
208    "-Wno-unused-variable",
209    "-Wno-incompatible-pointer-types",
210  ]
211}
212
213config("libexec_weston_public_config") {
214  include_dirs = []
215}
216
217ohos_static_library("libexec_weston") {
218  sources = [
219    "compositor/main.c",
220    "compositor/text-backend.c",
221    "compositor/weston-screenshooter.c",
222  ]
223
224  configs = [ ":libexec_weston_config" ]
225
226  public_configs = [ ":libexec_weston_public_config" ]
227
228  deps = [
229    ":trace",
230    ":weston_screenshooter_protocol",
231    "//foundation/graphic/standard/frameworks/vsync:libvsync_module",
232    "//third_party/libinput:libinput-third",
233    "//third_party/wayland-protocols_standard:input_method_unstable_v1_protocol",
234    "//third_party/wayland-protocols_standard:text_input_unstable_v1_protocol",
235  ]
236
237  public_deps = [
238    ":libweston",
239    "//third_party/wayland_standard:wayland_core_protocol",
240  ]
241}
242
243## Build libexec_weston.a }}}
244
245## Build weston {{{
246config("weston_config") {
247  visibility = [ ":*" ]
248
249  include_dirs = []
250
251  cflags = [
252    "-Wall",
253    "-Werror",
254  ]
255}
256
257config("weston_public_config") {
258  include_dirs = []
259}
260
261ohos_executable("weston") {
262  install_enable = true
263
264  sources = [ "compositor/executable.c" ]
265
266  configs = [ ":weston_config" ]
267
268  public_configs = [ ":weston_public_config" ]
269
270  deps = [
271    ":libexec_weston",
272    ":trace",
273  ]
274
275  public_deps = []
276
277  subsystem_name = "graphic"
278  part_name = "graphic_standard"
279}
280
281## Build weston }}}
282
283## Build libweston-desktop.so {{{
284config("libweston-desktop_config") {
285  visibility = [ ":*" ]
286
287  include_dirs = [ "." ]
288
289  cflags = [
290    "-Wall",
291    "-Werror",
292    "-Wno-unused-function",
293  ]
294}
295
296config("libweston-desktop_public_config") {
297  include_dirs = [ "include/libweston-desktop" ]
298}
299
300ohos_shared_library("libweston-desktop") {
301  sources = [
302    "libweston-desktop/client.c",
303    "libweston-desktop/libweston-desktop.c",
304    "libweston-desktop/seat.c",
305    "libweston-desktop/surface.c",
306    "libweston-desktop/wl-shell.c",
307    "libweston-desktop/xdg-shell-v6.c",
308    "libweston-desktop/xdg-shell.c",
309  ]
310
311  configs = [ ":libweston-desktop_config" ]
312
313  public_configs = [ ":libweston-desktop_public_config" ]
314
315  deps = []
316
317  public_deps = [
318    ":libexec_weston",
319    "//third_party/wayland-protocols_standard:xdg_shell_protocol",
320    "//third_party/wayland-protocols_standard:xdg_shell_unstable_v6_protocol",
321  ]
322
323  part_name = "graphic_standard"
324  subsystem_name = "graphic"
325}
326
327## Build libweston-desktop.so }}}
328
329## Build ivi-shell.so {{{
330config("ivi-shell_config") {
331  visibility = [ ":*" ]
332
333  include_dirs = [ "." ]
334
335  cflags = [
336    "-Wall",
337    "-Werror",
338    "-Wno-unused-function",
339    "-Wno-unused-variable",
340    "-Wno-incompatible-pointer-types",
341  ]
342}
343
344config("ivi-shell_public_config") {
345  include_dirs = []
346}
347
348ohos_shared_library("ivi-shell") {
349  sources = [
350    "ivi-shell/ivi-layout-transition.c",
351    "ivi-shell/ivi-layout.c",
352    "ivi-shell/ivi-shell.c",
353  ]
354
355  configs = [ ":ivi-shell_config" ]
356
357  public_configs = [ ":ivi-shell_public_config" ]
358
359  deps = [
360    ":ivi_application_protocol",
361    ":libweston-desktop",
362    ":trace",
363    "//third_party/wayland_standard:wayland_core_protocol",
364  ]
365
366  public_deps = []
367
368  subsystem_name = "graphic"
369  part_name = "graphic_standard"
370}
371
372## Build ivi-shell.so }}}
373
374## Build drm-backend.so {{{
375config("drm-backend_config") {
376  visibility = [ ":*" ]
377
378  include_dirs = [
379    "include",
380    "libweston",
381    "libweston/backend-drm/auth",
382    ".",
383  ]
384
385  cflags = [
386    "-Wall",
387    "-Wno-error",
388    "-Wno-unused-parameter",
389    "-Wno-missing-field-initializers",
390    "-Wno-implicit-function-declaration",
391    "-Wno-unused-variable",
392    "-Wno-unused-function",
393    "-Wno-sometimes-uninitialized",
394  ]
395}
396
397config("drm-backend_public_config") {
398  include_dirs = []
399}
400
401ohos_executable("simple-dmabuf-egl-hos") {
402  include_dirs = [
403    "include",
404    "include/EGL",
405    "//third_party/weston/include/libweston",
406    "//third_party/wayland_standard/egl",
407    "//third_party/weston/libweston",
408    "//third_party/wayland-ivi-extension_standard/include",
409    "//third_party/weston/shared",
410  ]
411  cflags = [
412    "-Wno-return-type",
413    "-Wno-visibility",
414    "-Wno-unused-function",
415    "-DENABLE_EGL",
416    "-DEGL_NO_X11",
417  ]
418  sources = [
419    "clients/simple-dmabuf-egl-hos.c",
420  ]
421
422  configs = [ ":drm-backend_config" ]
423
424  public_configs = [ ":drm-backend_public_config" ]
425
426  deps = [
427    "//third_party/wayland-protocols_standard:presentation_time_protocol",
428    "//third_party/wayland_standard:libwayland_client",
429    "//third_party/wayland_standard:libwayland_cursor",
430    "//third_party/wayland_standard:wayland_core_protocol",
431    "//third_party/weston:ivi_application_protocol",
432    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
433    "//third_party/wayland-protocols_standard:linux_explicit_synchronization_unstable_v1_protocol",
434    "//third_party/wayland-protocols_standard:xdg_shell_protocol",
435    ":weston_direct_display_protocol",
436    "//third_party/libdrm:libdrm",
437    "//third_party/wayland_standard:libwayland_client",
438    "//foundation/graphic/standard/frameworks/wmserver:wms_protocol",
439  ]
440
441  part_name = "graphic_standard"
442  subsystem_name = "graphic"
443}
444
445ohos_executable("simple-egl-hos") {
446  include_dirs = [
447    "include",
448    "include/EGL",
449    "//third_party/weston/include/libweston",
450    "//third_party/wayland_standard/egl",
451    "//third_party/weston/libweston",
452    "//third_party/weston/libweston",
453    "//third_party/weston/shared",
454  ]
455  sources = [
456    "clients/simple-egl-hos.c",
457  ]
458
459  cflags = [
460    "-Wno-return-type",
461    "-Wno-visibility",
462    "-Wno-unused-function",
463    "-DENABLE_EGL",
464    "-DEGL_NO_X11",
465  ]
466  configs = [ ":drm-backend_config" ]
467
468  public_configs = [ ":drm-backend_public_config" ]
469
470  deps = [
471    "//third_party/wayland-protocols_standard:presentation_time_protocol",
472    "//third_party/wayland_standard:libwayland_client",
473    "//third_party/wayland_standard:libwayland_cursor",
474    "//third_party/wayland_standard:wayland_core_protocol",
475    "//third_party/weston:ivi_application_protocol",
476    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
477    "//third_party/wayland-protocols_standard:linux_explicit_synchronization_unstable_v1_protocol",
478    "//third_party/wayland-protocols_standard:xdg_shell_protocol",
479    ":weston_direct_display_protocol",
480    "//third_party/libdrm:libdrm",
481    "//third_party/wayland_standard:libwayland_client",
482    "//foundation/graphic/standard/frameworks/wmserver:wms_protocol",
483  ]
484
485  part_name = "graphic_standard"
486  subsystem_name = "graphic"
487}
488
489ohos_shared_library("drm-backend") {
490  output_prefix_override = true
491  output_name = "drm-backend"
492  output_extension = "so"
493
494  sources = [
495    "libweston/backend-drm/auth/wayland_drm_auth_server.c",
496    "libweston/backend-drm/drm.c",
497#    "libweston/backend-drm/drm-gbm.c",
498    "libweston/backend-drm/fb.c",
499    "libweston/backend-drm/kms.c",
500    "libweston/backend-drm/libbacklight.c",
501    "libweston/backend-drm/modes.c",
502    "libweston/backend-drm/state-helpers.c",
503    "libweston/backend-drm/state-propose.c",
504    "libweston/libinput-device.c",
505    "libweston/libinput-seat.c",
506
507    # "libweston/backend-drm/drm-gbm.c",
508  ]
509
510  configs = [ ":drm-backend_config" ]
511
512  public_configs = [ ":drm-backend_public_config" ]
513
514  deps = [
515    ":drm_auth_protocol",
516    ":libweston",
517    ":trace",
518    "//foundation/graphic/standard/frameworks/vsync:libvsync_module",
519    "//third_party/libdrm:libdrm",
520    "//third_party/libinput:libinput-third",
521    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
522    "//third_party/wayland-protocols_standard:presentation_time_protocol",
523    "//third_party/wayland-protocols_standard:relative_pointer_unstable_v1_protocol",
524    "//third_party/wayland_standard:wayland_core_protocol",
525  ]
526
527  public_deps = []
528
529  part_name = "graphic_standard"
530  subsystem_name = "graphic"
531}
532
533## Build drm-backend.so }}}
534
535## Install weston.ini to /system/etc/weston.ini {{{
536ohos_prebuilt_etc("weston.ini") {
537  source = "weston.ini"
538  part_name = "graphic_standard"
539  subsystem_name = "graphic"
540}
541
542## Install weston.ini to /system/etc/weston.ini }}}
543
544## Install weston.rc to /system/etc/init/weston.rc {{{
545ohos_prebuilt_etc("weston.rc") {
546  if (use_musl) {
547    source = "weston.cfg"
548  } else {
549    source = "weston.rc"
550  }
551  relative_install_dir = "init"
552  part_name = "graphic_standard"
553  subsystem_name = "graphic"
554}
555
556## Install weston.rc to /system/etc/init/weston.rc }}}
557
558## Build trace.so {{{
559config("trace_config") {
560  visibility = [ ":*" ]
561
562  cflags = [
563    "-Wall",
564    "-Werror",
565    "-g3",
566  ]
567}
568
569config("trace_public_config") {
570  include_dirs = [ "libweston" ]
571}
572
573ohos_shared_library("trace") {
574  sources = [ "libweston/trace.cpp" ]
575
576  configs = [ ":trace_config" ]
577
578  public_configs = [ ":trace_public_config" ]
579
580  deps = [ "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog" ]
581
582  subsystem_name = "graphic"
583  part_name = "graphic_standard"
584}
585
586## Build trace.so }}}
587
588### Build hdi-backend.so {{{
589#config("hdi-backend_config") {
590#  visibility = [ ":*" ]
591#
592#  include_dirs = [
593#    "libweston",
594#    ".",
595#  ]
596#
597#  cflags = [
598#    "-Wall",
599#    "-Werror",
600#  ]
601#}
602#
603#ohos_shared_library("hdi-backend") {
604#  output_prefix_override = true
605#  output_name = "hdi-backend"
606#  output_extension = "so"
607#
608#  sources = [
609#    "libweston/backend-hdi/hdi_backend.cpp",
610#    "libweston/backend-hdi/hdi_head.cpp",
611#    "libweston/backend-hdi/hdi_output.cpp",
612#    "libweston/backend-hdi/hdi_renderer.cpp",
613#    "libweston/backend-hdi/main.cpp",
614#    "libweston/libinput-device.c",
615#    "libweston/libinput-seat.c",
616#  ]
617#
618#  configs = [ ":hdi-backend_config" ]
619#
620#  deps = [
621#    ":libweston",
622#    ":trace",
623#    "//drivers/peripheral/display/hal:hdi_display_device_drm",
624#    "//drivers/peripheral/display/hal:hdi_display_gralloc",
625#    "//foundation/graphic/standard/frameworks/vsync:libvsync_module",
626#    "//third_party/libdrm:libdrm",
627#    "//third_party/libinput:libinput-third",
628#    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
629#    "//third_party/wayland_standard:wayland_core_protocol",
630#    "//utils/native/base:utils",
631#  ]
632#
633#  part_name = "graphic_standard"
634#  subsystem_name = "graphic"
635#}
636#
637### Build hdi-backend.so }}}
638
639# gl-renderer.so waiting for libEGL & libGLESv2
640### Build gl-renderer.so {{{
641#config("gl-renderer_config") {
642#  visibility = [ ":*" ]
643#
644#  include_dirs = [
645#    "//third_party/weston",
646#    "//third_party/wayland_standard/egl",
647#    "//third_party/weston/libweston",
648#    "//third_party/wayland-ivi-extension_standard/include",
649#  ]
650#
651#  cflags = [
652#    "-Wno-return-type",
653#    "-Wno-visibility",
654#    "-Wno-unused-function",
655#  ]
656#}
657#
658#config("gl-renderer_public_config") {
659#  include_dirs = [
660#  ]
661#}
662#
663#ohos_shared_library("gl-renderer") {
664#  sources = [
665#    "libweston/renderer-gl/egl-glue.c",
666#    "libweston/renderer-gl/gl-renderer.c",
667#    "libweston/vertex-clipping.c",
668#  ]
669#
670#  configs = [
671#    ":gl-renderer_config",
672#  ]
673#
674#  public_configs = [
675#    ":gl-renderer_public_config",
676#  ]
677#
678#  deps = [
679#    ":libweston",
680#    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
681#  ]
682#
683#  asdk_deps = [
684#    "shared_library:libEGL",
685#    "shared_library:libGLESv2",
686#  ]
687#
688#  public_deps = [
689#  ]
690#
691#  subsystem_name = "graphic"
692#  part_name = "graphic_standard"
693#}
694
695## Install weston.rc to /system/etc/init/weston.rc }}}
696
697# gl-renderer.so waiting for libEGL & libGLESv2
698### Build gl-renderer.so {{{
699config("gl-renderer_config") {
700  visibility = [ ":*" ]
701
702  include_dirs = [
703    "include",
704    "include/EGL",
705    "//third_party/weston",
706    "//third_party/wayland_standard/egl",
707    "//third_party/weston/libweston",
708    "//third_party/wayland-ivi-extension_standard/include",
709  ]
710
711  cflags = [
712    "-Wno-return-type",
713    "-Wno-visibility",
714    "-Wno-unused-function",
715    "-DENABLE_EGL",
716    "-DEGL_NO_X11",
717  ]
718}
719
720config("gl-renderer_public_config") {
721  include_dirs = [
722  ]
723
724  cflags = [
725  ]
726}
727
728ohos_shared_library("gl-renderer") {
729    output_prefix_override=true
730    output_name="gl-renderer"
731    output_extension="so"
732  sources = [
733    "libweston/renderer-gl/egl-glue.c",
734    "libweston/renderer-gl/gl-renderer.c",
735    "libweston/vertex-clipping.c",
736  ]
737
738  configs = [
739    ":gl-renderer_config",
740  ]
741
742  public_configs = [
743    ":gl-renderer_public_config",
744  ]
745
746  deps = [
747    ":libweston",
748    "//third_party/libdrm:libdrm",
749    "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol",
750  ]
751
752  public_deps = [
753  ]
754
755  part_name = "graphic_standard"
756  subsystem_name = "graphic"
757}
758### Build gl-renderer.so }}}
759