diff mbox series

[v2,7/9] gfxstream + rutabaga: meson support

Message ID 20230801011723.627-8-gurchetansingh@chromium.org (mailing list archive)
State New, archived
Headers show
Series gfxstream + rutabaga_gfx | expand

Commit Message

Gurchetan Singh Aug. 1, 2023, 1:17 a.m. UTC
- Add meson detection of rutabaga_gfx
- Build virtio-gpu-rutabaga.c + associated vga/pci files when
  present

Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org>
---
 hw/display/meson.build        | 22 ++++++++++++++++++++++
 meson.build                   |  7 +++++++
 meson_options.txt             |  2 ++
 scripts/meson-buildoptions.sh |  3 +++
 4 files changed, 34 insertions(+)

Comments

Akihiko Odaki Aug. 2, 2023, 6:21 a.m. UTC | #1
On 2023/08/01 10:17, Gurchetan Singh wrote:
> - Add meson detection of rutabaga_gfx
> - Build virtio-gpu-rutabaga.c + associated vga/pci files when
>    present
> 
> Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org>
> ---
>   hw/display/meson.build        | 22 ++++++++++++++++++++++
>   meson.build                   |  7 +++++++
>   meson_options.txt             |  2 ++
>   scripts/meson-buildoptions.sh |  3 +++
>   4 files changed, 34 insertions(+)
> 
> diff --git a/hw/display/meson.build b/hw/display/meson.build
> index 413ba4ab24..10e41e4eef 100644
> --- a/hw/display/meson.build
> +++ b/hw/display/meson.build
> @@ -79,6 +79,13 @@ if config_all_devices.has_key('CONFIG_VIRTIO_GPU')
>                            if_true: [files('virtio-gpu-gl.c', 'virtio-gpu-virgl.c'), pixman, virgl])
>       hw_display_modules += {'virtio-gpu-gl': virtio_gpu_gl_ss}
>     endif
> +
> +  if rutabaga.found()
> +    virtio_gpu_rutabaga_ss = ss.source_set()
> +    virtio_gpu_rutabaga_ss.add(when: ['CONFIG_VIRTIO_GPU', rutabaga],
> +                         if_true: [files('virtio-gpu-rutabaga.c'), pixman])

This line is a bit misaligned.

> +    hw_display_modules += {'virtio-gpu-rutabaga': virtio_gpu_rutabaga_ss}
> +  endif
>   endif
>   
>   if config_all_devices.has_key('CONFIG_VIRTIO_PCI')
> @@ -95,6 +102,12 @@ if config_all_devices.has_key('CONFIG_VIRTIO_PCI')
>                                if_true: [files('virtio-gpu-pci-gl.c'), pixman])
>       hw_display_modules += {'virtio-gpu-pci-gl': virtio_gpu_pci_gl_ss}
>     endif
> +  if rutabaga.found()
> +    virtio_gpu_pci_rutabaga_ss = ss.source_set()
> +    virtio_gpu_pci_rutabaga_ss.add(when: ['CONFIG_VIRTIO_GPU', 'CONFIG_VIRTIO_PCI', rutabaga],
> +                       if_true: [files('virtio-gpu-pci-rutabaga.c'), pixman])
> +    hw_display_modules += {'virtio-gpu-pci-rutabaga': virtio_gpu_pci_rutabaga_ss}
> +  endif
>   endif
>   
>   if config_all_devices.has_key('CONFIG_VIRTIO_VGA')
> @@ -113,6 +126,15 @@ if config_all_devices.has_key('CONFIG_VIRTIO_VGA')
>     virtio_vga_gl_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-vga.c'),
>                                               if_false: files('acpi-vga-stub.c'))
>     hw_display_modules += {'virtio-vga-gl': virtio_vga_gl_ss}
> +
> +  if rutabaga.found()
> +    virtio_vga_rutabaga_ss = ss.source_set()
> +    virtio_vga_rutabaga_ss.add(when: ['CONFIG_VIRTIO_VGA', rutabaga],
> +                         if_true: [files('virtio-vga-rutabaga.c'), pixman])
> +    virtio_vga_rutabaga_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-vga.c'),
> +                                                   if_false: files('acpi-vga-stub.c'))
> +    hw_display_modules += {'virtio-vga-rutabaga': virtio_vga_rutabaga_ss}
> +  endif
>   endif
>   
>   system_ss.add(when: 'CONFIG_OMAP', if_true: files('omap_lcdc.c'))
> diff --git a/meson.build b/meson.build
> index 98e68ef0b1..293f388e53 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1069,6 +1069,12 @@ if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu
>                                          dependencies: virgl))
>     endif
>   endif
> +rutabaga = not_found
> +if not get_option('rutabaga_gfx').auto() or have_system or have_vhost_user_gpu
> +  rutabaga = dependency('rutabaga_gfx_ffi',
> +                         method: 'pkg-config',
> +                         required: get_option('rutabaga_gfx'))
> +endif
>   blkio = not_found
>   if not get_option('blkio').auto() or have_block
>     blkio = dependency('blkio',
> @@ -4272,6 +4278,7 @@ summary_info += {'libtasn1':          tasn1}
>   summary_info += {'PAM':               pam}
>   summary_info += {'iconv support':     iconv}
>   summary_info += {'virgl support':     virgl}
> +summary_info += {'rutabaga support':  rutabaga}
>   summary_info += {'blkio support':     blkio}
>   summary_info += {'curl support':      curl}
>   summary_info += {'Multipath support': mpathpersist}
> diff --git a/meson_options.txt b/meson_options.txt
> index aaea5ddd77..dea3bf7d9c 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -224,6 +224,8 @@ option('vmnet', type : 'feature', value : 'auto',
>          description: 'vmnet.framework network backend support')
>   option('virglrenderer', type : 'feature', value : 'auto',
>          description: 'virgl rendering support')
> +option('rutabaga_gfx', type : 'feature', value : 'auto',
> +       description: 'rutabaga_gfx support')
>   option('png', type : 'feature', value : 'auto',
>          description: 'PNG support with libpng')
>   option('vnc', type : 'feature', value : 'auto',
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index 9da3fe299b..9a95b4f782 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -154,6 +154,7 @@ meson_options_help() {
>     printf "%s\n" '  rbd             Ceph block device driver'
>     printf "%s\n" '  rdma            Enable RDMA-based migration'
>     printf "%s\n" '  replication     replication support'
> +  printf "%s\n" '  rutabaga-gfx    rutabaga_gfx support'
>     printf "%s\n" '  sdl             SDL user interface'
>     printf "%s\n" '  sdl-image       SDL Image support for icons'
>     printf "%s\n" '  seccomp         seccomp support'
> @@ -419,6 +420,8 @@ _meson_option_parse() {
>       --disable-replication) printf "%s" -Dreplication=disabled ;;
>       --enable-rng-none) printf "%s" -Drng_none=true ;;
>       --disable-rng-none) printf "%s" -Drng_none=false ;;
> +    --enable-rutabaga-gfx) printf "%s" -Drutabaga_gfx=enabled ;;
> +    --disable-rutabaga-gfx) printf "%s" -Drutabaga_gfx=disabled ;;
>       --enable-safe-stack) printf "%s" -Dsafe_stack=true ;;
>       --disable-safe-stack) printf "%s" -Dsafe_stack=false ;;
>       --enable-sanitizers) printf "%s" -Dsanitizers=true ;;
diff mbox series

Patch

diff --git a/hw/display/meson.build b/hw/display/meson.build
index 413ba4ab24..10e41e4eef 100644
--- a/hw/display/meson.build
+++ b/hw/display/meson.build
@@ -79,6 +79,13 @@  if config_all_devices.has_key('CONFIG_VIRTIO_GPU')
                          if_true: [files('virtio-gpu-gl.c', 'virtio-gpu-virgl.c'), pixman, virgl])
     hw_display_modules += {'virtio-gpu-gl': virtio_gpu_gl_ss}
   endif
+
+  if rutabaga.found()
+    virtio_gpu_rutabaga_ss = ss.source_set()
+    virtio_gpu_rutabaga_ss.add(when: ['CONFIG_VIRTIO_GPU', rutabaga],
+                         if_true: [files('virtio-gpu-rutabaga.c'), pixman])
+    hw_display_modules += {'virtio-gpu-rutabaga': virtio_gpu_rutabaga_ss}
+  endif
 endif
 
 if config_all_devices.has_key('CONFIG_VIRTIO_PCI')
@@ -95,6 +102,12 @@  if config_all_devices.has_key('CONFIG_VIRTIO_PCI')
                              if_true: [files('virtio-gpu-pci-gl.c'), pixman])
     hw_display_modules += {'virtio-gpu-pci-gl': virtio_gpu_pci_gl_ss}
   endif
+  if rutabaga.found()
+    virtio_gpu_pci_rutabaga_ss = ss.source_set()
+    virtio_gpu_pci_rutabaga_ss.add(when: ['CONFIG_VIRTIO_GPU', 'CONFIG_VIRTIO_PCI', rutabaga],
+                       if_true: [files('virtio-gpu-pci-rutabaga.c'), pixman])
+    hw_display_modules += {'virtio-gpu-pci-rutabaga': virtio_gpu_pci_rutabaga_ss}
+  endif
 endif
 
 if config_all_devices.has_key('CONFIG_VIRTIO_VGA')
@@ -113,6 +126,15 @@  if config_all_devices.has_key('CONFIG_VIRTIO_VGA')
   virtio_vga_gl_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-vga.c'),
                                             if_false: files('acpi-vga-stub.c'))
   hw_display_modules += {'virtio-vga-gl': virtio_vga_gl_ss}
+
+  if rutabaga.found()
+    virtio_vga_rutabaga_ss = ss.source_set()
+    virtio_vga_rutabaga_ss.add(when: ['CONFIG_VIRTIO_VGA', rutabaga],
+                         if_true: [files('virtio-vga-rutabaga.c'), pixman])
+    virtio_vga_rutabaga_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-vga.c'),
+                                                   if_false: files('acpi-vga-stub.c'))
+    hw_display_modules += {'virtio-vga-rutabaga': virtio_vga_rutabaga_ss}
+  endif
 endif
 
 system_ss.add(when: 'CONFIG_OMAP', if_true: files('omap_lcdc.c'))
diff --git a/meson.build b/meson.build
index 98e68ef0b1..293f388e53 100644
--- a/meson.build
+++ b/meson.build
@@ -1069,6 +1069,12 @@  if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu
                                        dependencies: virgl))
   endif
 endif
+rutabaga = not_found
+if not get_option('rutabaga_gfx').auto() or have_system or have_vhost_user_gpu
+  rutabaga = dependency('rutabaga_gfx_ffi',
+                         method: 'pkg-config',
+                         required: get_option('rutabaga_gfx'))
+endif
 blkio = not_found
 if not get_option('blkio').auto() or have_block
   blkio = dependency('blkio',
@@ -4272,6 +4278,7 @@  summary_info += {'libtasn1':          tasn1}
 summary_info += {'PAM':               pam}
 summary_info += {'iconv support':     iconv}
 summary_info += {'virgl support':     virgl}
+summary_info += {'rutabaga support':  rutabaga}
 summary_info += {'blkio support':     blkio}
 summary_info += {'curl support':      curl}
 summary_info += {'Multipath support': mpathpersist}
diff --git a/meson_options.txt b/meson_options.txt
index aaea5ddd77..dea3bf7d9c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -224,6 +224,8 @@  option('vmnet', type : 'feature', value : 'auto',
        description: 'vmnet.framework network backend support')
 option('virglrenderer', type : 'feature', value : 'auto',
        description: 'virgl rendering support')
+option('rutabaga_gfx', type : 'feature', value : 'auto',
+       description: 'rutabaga_gfx support')
 option('png', type : 'feature', value : 'auto',
        description: 'PNG support with libpng')
 option('vnc', type : 'feature', value : 'auto',
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 9da3fe299b..9a95b4f782 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -154,6 +154,7 @@  meson_options_help() {
   printf "%s\n" '  rbd             Ceph block device driver'
   printf "%s\n" '  rdma            Enable RDMA-based migration'
   printf "%s\n" '  replication     replication support'
+  printf "%s\n" '  rutabaga-gfx    rutabaga_gfx support'
   printf "%s\n" '  sdl             SDL user interface'
   printf "%s\n" '  sdl-image       SDL Image support for icons'
   printf "%s\n" '  seccomp         seccomp support'
@@ -419,6 +420,8 @@  _meson_option_parse() {
     --disable-replication) printf "%s" -Dreplication=disabled ;;
     --enable-rng-none) printf "%s" -Drng_none=true ;;
     --disable-rng-none) printf "%s" -Drng_none=false ;;
+    --enable-rutabaga-gfx) printf "%s" -Drutabaga_gfx=enabled ;;
+    --disable-rutabaga-gfx) printf "%s" -Drutabaga_gfx=disabled ;;
     --enable-safe-stack) printf "%s" -Dsafe_stack=true ;;
     --disable-safe-stack) printf "%s" -Dsafe_stack=false ;;
     --enable-sanitizers) printf "%s" -Dsanitizers=true ;;