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