diff mbox series

[037/143] meson: add qemu-bridge-helper

Message ID 1596741379-12902-38-git-send-email-pbonzini@redhat.com (mailing list archive)
State New, archived
Headers show
Series Meson integration for 5.2 | expand

Commit Message

Paolo Bonzini Aug. 6, 2020, 7:14 p.m. UTC
From: Marc-André Lureau <marcandre.lureau@redhat.com>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile    | 4 ----
 meson.build | 8 +++++++-
 2 files changed, 7 insertions(+), 5 deletions(-)

Comments

Philippe Mathieu-Daudé Aug. 7, 2020, 1:20 p.m. UTC | #1
Hi Paolo,

On 8/6/20 9:14 PM, Paolo Bonzini wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  Makefile    | 4 ----
>  meson.build | 8 +++++++-
>  2 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 5df772b..0a2bbd5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -181,8 +181,6 @@ LIBS+=-lz $(LIBS_TOOLS)
>  
>  HELPERS-y = $(HELPERS)
>  
> -HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) += qemu-bridge-helper$(EXESUF)
> -
>  # Sphinx does not allow building manuals into the same directory as
>  # the source files, so if we're doing an in-tree QEMU build we must
>  # build the manuals into a subdirectory (and then install them from
> @@ -415,8 +413,6 @@ qemu-nbd$(EXESUF): qemu-nbd.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io
>  qemu-io$(EXESUF): qemu-io.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
>  qemu-storage-daemon$(EXESUF): qemu-storage-daemon.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(chardev-obj-y) $(io-obj-y) $(qom-obj-y) $(storage-daemon-obj-y) $(COMMON_LDADDS)
>  
> -qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o $(COMMON_LDADDS)
> -
>  qemu-keymap$(EXESUF): qemu-keymap.o ui/input-keymap.o $(COMMON_LDADDS)
>  
>  qemu-edid$(EXESUF): qemu-edid.o hw/display/edid-generate.o $(COMMON_LDADDS)
> diff --git a/meson.build b/meson.build
> index a68c7b4..9eb1204 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -270,7 +270,6 @@ qemuutil = declare_dependency(link_with: libqemuutil,
>                                sources: genh + version_res)
>  
>  # Other build targets
> -
>  if 'CONFIG_GUEST_AGENT' in config_host
>    subdir('qga')
>  endif
> @@ -289,6 +288,13 @@ if have_tools
>      subdir('contrib/vhost-user-scsi')
>    endif
>  
> +  if host_machine.system() == 'linux'
> +    executable('qemu-bridge-helper', files('qemu-bridge-helper.c'),
> +               dependencies: [qemuutil, libcap_ng],

Is libcap_ng still optional?

> +               install: true,
> +               install_dir: get_option('libexecdir'))
> +  endif
> +
>    if 'CONFIG_IVSHMEM' in config_host
>      subdir('contrib/ivshmem-client')
>      subdir('contrib/ivshmem-server')
>
Paolo Bonzini Aug. 7, 2020, 2:26 p.m. UTC | #2
On 07/08/20 15:20, Philippe Mathieu-Daudé wrote:
>>    endif
>>  
>> +  if host_machine.system() == 'linux'
>> +    executable('qemu-bridge-helper', files('qemu-bridge-helper.c'),
>> +               dependencies: [qemuutil, libcap_ng],
> Is libcap_ng still optional?
> 

Yes, if a dependency is absent it is simply left out.  See
contrib/vhost-user-scsi for an example where the executable is disabled.

Instead, if you want a dependency to be mandatory you have two choices:

- to break the build you use "required: true", see the SDL conversion
for an example

- to disable executables there is a thing called disabler but we're not
using it because it's confusing.  I was thinking of adding an
"or_disable()" method to dependency objects, but I have never
contributed it.

Paolo
Philippe Mathieu-Daudé Aug. 7, 2020, 2:40 p.m. UTC | #3
On 8/7/20 4:26 PM, Paolo Bonzini wrote:
> On 07/08/20 15:20, Philippe Mathieu-Daudé wrote:
>>>    endif
>>>  
>>> +  if host_machine.system() == 'linux'
>>> +    executable('qemu-bridge-helper', files('qemu-bridge-helper.c'),
>>> +               dependencies: [qemuutil, libcap_ng],
>> Is libcap_ng still optional?
>>
> 
> Yes, if a dependency is absent it is simply left out.  See
> contrib/vhost-user-scsi for an example where the executable is disabled.
> 
> Instead, if you want a dependency to be mandatory you have two choices:
> 
> - to break the build you use "required: true", see the SDL conversion
> for an example

OK, good :)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> 
> - to disable executables there is a thing called disabler but we're not
> using it because it's confusing.  I was thinking of adding an
> "or_disable()" method to dependency objects, but I have never
> contributed it.
> 
> Paolo
>
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 5df772b..0a2bbd5 100644
--- a/Makefile
+++ b/Makefile
@@ -181,8 +181,6 @@  LIBS+=-lz $(LIBS_TOOLS)
 
 HELPERS-y = $(HELPERS)
 
-HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) += qemu-bridge-helper$(EXESUF)
-
 # Sphinx does not allow building manuals into the same directory as
 # the source files, so if we're doing an in-tree QEMU build we must
 # build the manuals into a subdirectory (and then install them from
@@ -415,8 +413,6 @@  qemu-nbd$(EXESUF): qemu-nbd.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io
 qemu-io$(EXESUF): qemu-io.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
 qemu-storage-daemon$(EXESUF): qemu-storage-daemon.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(chardev-obj-y) $(io-obj-y) $(qom-obj-y) $(storage-daemon-obj-y) $(COMMON_LDADDS)
 
-qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o $(COMMON_LDADDS)
-
 qemu-keymap$(EXESUF): qemu-keymap.o ui/input-keymap.o $(COMMON_LDADDS)
 
 qemu-edid$(EXESUF): qemu-edid.o hw/display/edid-generate.o $(COMMON_LDADDS)
diff --git a/meson.build b/meson.build
index a68c7b4..9eb1204 100644
--- a/meson.build
+++ b/meson.build
@@ -270,7 +270,6 @@  qemuutil = declare_dependency(link_with: libqemuutil,
                               sources: genh + version_res)
 
 # Other build targets
-
 if 'CONFIG_GUEST_AGENT' in config_host
   subdir('qga')
 endif
@@ -289,6 +288,13 @@  if have_tools
     subdir('contrib/vhost-user-scsi')
   endif
 
+  if host_machine.system() == 'linux'
+    executable('qemu-bridge-helper', files('qemu-bridge-helper.c'),
+               dependencies: [qemuutil, libcap_ng],
+               install: true,
+               install_dir: get_option('libexecdir'))
+  endif
+
   if 'CONFIG_IVSHMEM' in config_host
     subdir('contrib/ivshmem-client')
     subdir('contrib/ivshmem-server')