qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 5/8] meson: use meson datadir instead of qemu_datadir


From: Marc-André Lureau
Subject: Re: [PATCH v3 5/8] meson: use meson datadir instead of qemu_datadir
Date: Wed, 9 Sep 2020 17:17:57 +0400

Hi

On Wed, Sep 9, 2020 at 4:46 PM Miroslav Rezanina <mrezanin@redhat.com> wrote:
>
> On Wed, Sep 09, 2020 at 02:13:25PM +0400, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Sep 9, 2020 at 1:51 PM Miroslav Rezanina <mrezanin@redhat.com> 
> > wrote:
> > >
> > > On Wed, Aug 26, 2020 at 03:04:16PM +0400, marcandre.lureau@redhat.com 
> > > wrote:
> > > > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > >
> > > > When cross-compiling, by default qemu_datadir is 'c:\Program
> > > > Files\QEMU', which is not recognized as being an absolute path, and
> > > > meson will end up adding the prefix again.
> > > >
> > > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > > > ---
> > > >  contrib/vhost-user-gpu/meson.build | 2 +-
> > > >  meson.build                        | 3 ++-
> > > >  meson_options.txt                  | 2 +-
> > > >  pc-bios/descriptors/meson.build    | 2 +-
> > > >  pc-bios/keymaps/meson.build        | 6 +++---
> > > >  pc-bios/meson.build                | 2 +-
> > > >  tools/virtiofsd/meson.build        | 2 +-
> > > >  trace/meson.build                  | 2 +-
> > > >  8 files changed, 11 insertions(+), 10 deletions(-)
> > > >
> > > > diff --git a/contrib/vhost-user-gpu/meson.build 
> > > > b/contrib/vhost-user-gpu/meson.build
> > > > index 6c1459f54a..8df4c13bc5 100644
> > > > --- a/contrib/vhost-user-gpu/meson.build
> > > > +++ b/contrib/vhost-user-gpu/meson.build
> > > > @@ -9,5 +9,5 @@ if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in 
> > > > config_host \
> > > >    configure_file(input: '50-qemu-gpu.json.in',
> > > >                   output: '50-qemu-gpu.json',
> > > >                   configuration: config_host,
> > > > -                 install_dir: config_host['qemu_datadir'] / 
> > > > 'vhost-user')
> > > > +                 install_dir: qemu_datadir / 'vhost-user')
> > > >  endif
> > > > diff --git a/meson.build b/meson.build
> > > > index f0fe5f8799..9f0d7d3830 100644
> > > > --- a/meson.build
> > > > +++ b/meson.build
> > > > @@ -17,6 +17,7 @@ config_all_disas = 
> > > > keyval.load(meson.current_build_dir() / 'config-all-disas.mak
> > > >  enable_modules = 'CONFIG_MODULES' in config_host
> > > >  enable_static = 'CONFIG_STATIC' in config_host
> > > >  build_docs = 'BUILD_DOCS' in config_host
> > > > +qemu_datadir = get_option('datadir') / get_option('qemu_suffix')
> > > >  config_host_data = configuration_data()
> > > >  genh = []
> > > >
> > > > @@ -1039,7 +1040,7 @@ foreach target : target_dirs
> > > >                        output: exe_name + stp['ext'],
> > > >                        capture: true,
> > > >                        install: stp['install'],
> > > > -                      install_dir: config_host['qemu_datadir'] / 
> > > > '../systemtap/tapset',
> > > > +                      install_dir: qemu_datadir / 
> > > > '../systemtap/tapset',
> > > >                        command: [
> > > >                          tracetool, '--group=all', '--format=' + 
> > > > stp['fmt'],
> > > >                          '--binary=' + stp['bin'],
> > > > diff --git a/meson_options.txt b/meson_options.txt
> > > > index 1ef822bab3..9e8db82995 100644
> > > > --- a/meson_options.txt
> > > > +++ b/meson_options.txt
> > > > @@ -1,4 +1,4 @@
> > > > -option('qemu_suffix', type : 'string', value: '/qemu',
> > > > +option('qemu_suffix', type : 'string', value: 'qemu',
> > > >         description: 'Suffix for QEMU data/modules/config directories 
> > > > (can be empty)')
> > > >  option('gettext', type : 'boolean', value : true)
> > > >  option('sdl', type : 'feature', value : 'auto')
> > > > diff --git a/pc-bios/descriptors/meson.build 
> > > > b/pc-bios/descriptors/meson.build
> > > > index 7c715bace8..3798d32372 100644
> > > > --- a/pc-bios/descriptors/meson.build
> > > > +++ b/pc-bios/descriptors/meson.build
> > > > @@ -10,5 +10,5 @@ foreach f: [
> > > >                   output: f,
> > > >                   configuration: {'DATADIR': 
> > > > config_host['qemu_datadir']},
> > > >                   install: install_blobs,
> > > > -                 install_dir: config_host['qemu_datadir'] / 'firmware')
> > > > +                 install_dir: qemu_datadir / 'firmware')
> > > >  endforeach
> > > > diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
> > > > index b737c82230..bbac83ece3 100644
> > > > --- a/pc-bios/keymaps/meson.build
> > > > +++ b/pc-bios/keymaps/meson.build
> > > > @@ -44,13 +44,13 @@ foreach km, args: keymaps
> > > >                       build_by_default: true,
> > > >                       output: km,
> > > >                       command: [native_qemu_keymap, '-f', '@OUTPUT@', 
> > > > args.split()],
> > > > -                     install_dir: config_host['qemu_datadir'] / 
> > > > 'keymaps')
> > > > +                     install_dir: qemu_datadir / 'keymaps')
> > > >  endforeach
> > > >  if t.length() > 0
> > > >    alias_target('update-keymaps', t)
> > > >  else
> > > >    # install from the source tree
> > > > -  install_data(keymaps.keys(), install_dir: 
> > > > config_host['qemu_datadir'] / 'keymaps')
> > > > +  install_data(keymaps.keys(), install_dir: qemu_datadir / 'keymaps')
> > > >  endif
> > > >
> > > > -install_data(['sl', 'sv'], install_dir: config_host['qemu_datadir'] / 
> > > > 'keymaps')
> > > > +install_data(['sl', 'sv'], install_dir: qemu_datadir / 'keymaps')
> > > > diff --git a/pc-bios/meson.build b/pc-bios/meson.build
> > > > index b6389f5148..c11e52ba26 100644
> > > > --- a/pc-bios/meson.build
> > > > +++ b/pc-bios/meson.build
> > > > @@ -19,7 +19,7 @@ if 'DECOMPRESS_EDK2_BLOBS' in config_host
> > > >                    input: '@0@.bz2'.format(f),
> > > >                    capture: true,
> > > >                    install: install_blobs,
> > > > -                  install_dir: config_host['qemu_datadir'],
> > > > +                  install_dir: qemu_datadir,
> > > >                    command: [ bzip2, '-dc', '@INPUT0@' ])
> > > >    endforeach
> > > >  endif
> > > > diff --git a/tools/virtiofsd/meson.build b/tools/virtiofsd/meson.build
> > > > index d1e23c5760..50022ed89e 100644
> > > > --- a/tools/virtiofsd/meson.build
> > > > +++ b/tools/virtiofsd/meson.build
> > > > @@ -16,4 +16,4 @@ executable('virtiofsd', files(
> > > >  configure_file(input: '50-qemu-virtiofsd.json.in',
> > > >                 output: '50-qemu-virtiofsd.json',
> > > >                 configuration: config_host,
> > > > -               install_dir: config_host['qemu_datadir'] / 'vhost-user')
> > > > +               install_dir: qemu_datadir / 'vhost-user')
> > > > diff --git a/trace/meson.build b/trace/meson.build
> > > > index 56e870848e..5f0bf11cb5 100644
> > > > --- a/trace/meson.build
> > > > +++ b/trace/meson.build
> > > > @@ -55,7 +55,7 @@ trace_events_all = custom_target('trace-events-all',
> > > >                                   command: [ 'cat', '@INPUT@' ],
> > > >                                   capture: true,
> > > >                                   install: true,
> > > > -                                 install_dir: 
> > > > config_host['qemu_datadir'])
> > > > +                                 install_dir: qemu_datadir)
> > > >
> > > >  foreach d : [
> > > >    ['generated-tcg-tracers.h', 'tcg-h'],
> > > > --
> > > > 2.26.2
> > > >
> > > >
> > >
> > > Is there any change in configuration/build needed as this change cause 
> > > that
> > > meson use /qemu instead of $datadir/qemu_suffix in our build?
> >
> > Afaik, the install location shouldn't be changed after this. Do you
> > see a breaking change? Could you give some details?
> >
>
> After chat with Marc, we were able to identify the problem. I properly changed
> --with-confsuffix to --with-suffix but pass wrong value in there as we used to
> pass /qemu-kvm (so I use --with-suffix=/qemu-kvm). This was breaking the meson
> handling. After update to -with-suffix=qemu build pass successfully.

I think this is due to meson peculiar / operator.

'a' / 'b' = 'a/b'

but

'a' / '/b' = '/b'

I propose to silently remove the leading '/' in --with-suffix
argument, or warn/error about its presence.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]