[PATCH] meson: look up cp and dtrace with find_program()

Paolo Bonzini posted 1 patch 2 years, 7 months ago
Failed in applying to current master (apply log)
pc-bios/keymaps/meson.build | 3 ++-
trace/meson.build           | 5 +++--
2 files changed, 5 insertions(+), 3 deletions(-)
[PATCH] meson: look up cp and dtrace with find_program()
Posted by Paolo Bonzini 2 years, 7 months ago
Avoid that meson prints a "Program xyz found" test once per
custom_target.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 pc-bios/keymaps/meson.build | 3 ++-
 trace/meson.build           | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
index 05eda6c0d2..44247a12b5 100644
--- a/pc-bios/keymaps/meson.build
+++ b/pc-bios/keymaps/meson.build
@@ -38,6 +38,7 @@ if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host
 else
   native_qemu_keymap = qemu_keymap
 endif
+cp = find_program('cp')
 
 t = []
 foreach km, args: keymaps
@@ -55,7 +56,7 @@ foreach km, args: keymaps
                        build_by_default: true,
                        input: km,
                        output: km,
-                       command: ['cp', '@INPUT@', '@OUTPUT@'],
+                       command: [cp, '@INPUT@', '@OUTPUT@'],
                        install: true,
                        install_dir: qemu_datadir / 'keymaps')
   endif
diff --git a/trace/meson.build b/trace/meson.build
index 74c3214a13..54e509c17c 100644
--- a/trace/meson.build
+++ b/trace/meson.build
@@ -2,6 +2,7 @@
 specific_ss.add(files('control-target.c'))
 
 trace_events_files = []
+dtrace = find_program('dtrace')
 foreach dir : [ '.' ] + trace_events_subdirs
   trace_events_file = meson.project_source_root() / dir / 'trace-events'
   trace_events_files += [ trace_events_file ]
@@ -39,13 +40,13 @@ foreach dir : [ '.' ] + trace_events_subdirs
     trace_dtrace_h = custom_target(fmt.format('trace-dtrace', 'h'),
                                    output: fmt.format('trace-dtrace', 'h'),
                                    input: trace_dtrace,
-                                   command: [ 'dtrace', '-DSTAP_SDT_V2', '-o', '@OUTPUT@', '-h', '-s', '@INPUT@' ])
+                                   command: [ dtrace, '-DSTAP_SDT_V2', '-o', '@OUTPUT@', '-h', '-s', '@INPUT@' ])
     trace_ss.add(trace_dtrace_h)
     if host_machine.system() != 'darwin'
       trace_dtrace_o = custom_target(fmt.format('trace-dtrace', 'o'),
                                      output: fmt.format('trace-dtrace', 'o'),
                                      input: trace_dtrace,
-                                     command: [ 'dtrace', '-DSTAP_SDT_V2', '-o', '@OUTPUT@', '-G', '-s', '@INPUT@' ])
+                                     command: [ dtrace, '-DSTAP_SDT_V2', '-o', '@OUTPUT@', '-G', '-s', '@INPUT@' ])
       trace_ss.add(trace_dtrace_o)
     endif
 
-- 
2.31.1


Re: [PATCH] meson: look up cp and dtrace with find_program()
Posted by Marc-André Lureau 2 years, 7 months ago
Hi

On Tue, Sep 7, 2021 at 9:27 PM Paolo Bonzini <pbonzini@redhat.com> wrote:

> Avoid that meson prints a "Program xyz found" test once per
> custom_target.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Is there a meson bug already?


> ---
>  pc-bios/keymaps/meson.build | 3 ++-
>  trace/meson.build           | 5 +++--
>  2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
> index 05eda6c0d2..44247a12b5 100644
> --- a/pc-bios/keymaps/meson.build
> +++ b/pc-bios/keymaps/meson.build
> @@ -38,6 +38,7 @@ if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in
> config_host
>  else
>    native_qemu_keymap = qemu_keymap
>  endif
> +cp = find_program('cp')
>
>  t = []
>  foreach km, args: keymaps
> @@ -55,7 +56,7 @@ foreach km, args: keymaps
>                         build_by_default: true,
>                         input: km,
>                         output: km,
> -                       command: ['cp', '@INPUT@', '@OUTPUT@'],
> +                       command: [cp, '@INPUT@', '@OUTPUT@'],
>                         install: true,
>                         install_dir: qemu_datadir / 'keymaps')
>    endif
> diff --git a/trace/meson.build b/trace/meson.build
> index 74c3214a13..54e509c17c 100644
> --- a/trace/meson.build
> +++ b/trace/meson.build
> @@ -2,6 +2,7 @@
>  specific_ss.add(files('control-target.c'))
>
>  trace_events_files = []
> +dtrace = find_program('dtrace')
>  foreach dir : [ '.' ] + trace_events_subdirs
>    trace_events_file = meson.project_source_root() / dir / 'trace-events'
>    trace_events_files += [ trace_events_file ]
> @@ -39,13 +40,13 @@ foreach dir : [ '.' ] + trace_events_subdirs
>      trace_dtrace_h = custom_target(fmt.format('trace-dtrace', 'h'),
>                                     output: fmt.format('trace-dtrace',
> 'h'),
>                                     input: trace_dtrace,
> -                                   command: [ 'dtrace', '-DSTAP_SDT_V2',
> '-o', '@OUTPUT@', '-h', '-s', '@INPUT@' ])
> +                                   command: [ dtrace, '-DSTAP_SDT_V2',
> '-o', '@OUTPUT@', '-h', '-s', '@INPUT@' ])
>      trace_ss.add(trace_dtrace_h)
>      if host_machine.system() != 'darwin'
>        trace_dtrace_o = custom_target(fmt.format('trace-dtrace', 'o'),
>                                       output: fmt.format('trace-dtrace',
> 'o'),
>                                       input: trace_dtrace,
> -                                     command: [ 'dtrace',
> '-DSTAP_SDT_V2', '-o', '@OUTPUT@', '-G', '-s', '@INPUT@' ])
> +                                     command: [ dtrace, '-DSTAP_SDT_V2',
> '-o', '@OUTPUT@', '-G', '-s', '@INPUT@' ])
>        trace_ss.add(trace_dtrace_o)
>      endif
>
> --
> 2.31.1
>
>
>

-- 
Marc-André Lureau
Re: [PATCH] meson: look up cp and dtrace with find_program()
Posted by Paolo Bonzini 2 years, 7 months ago
On 07/09/21 21:06, Marc-André Lureau wrote:
> Hi
> 
> On Tue, Sep 7, 2021 at 9:27 PM Paolo Bonzini <pbonzini@redhat.com 
> <mailto:pbonzini@redhat.com>> wrote:
> 
>     Avoid that meson prints a "Program xyz found" test once per
>     custom_target.
> 
>     Signed-off-by: Paolo Bonzini <pbonzini@redhat.com
>     <mailto:pbonzini@redhat.com>>
> 
> 
> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com 
> 
> Is there a meson bug already?

I don't think it's a bug.  It also prints the message a lot if the 
program is a Python installation however, and that is a bug that I'll 
look into later today.

Paolo