* [PATCH v2 1/5] meson: pass confsuffix option
2020-08-25 17:58 [PATCH v2 0/5] meson: mingw installation fixes & nsis conversion marcandre.lureau
@ 2020-08-25 17:58 ` marcandre.lureau
2020-08-26 8:28 ` Daniel P. Berrangé
2020-08-25 17:58 ` [PATCH v2 2/5] meson: use meson datadir instead of qemu_datadir marcandre.lureau
` (3 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: marcandre.lureau @ 2020-08-25 17:58 UTC (permalink / raw)
To: qemu-devel; +Cc: sw, berrange, Marc-André Lureau, pbonzini
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The following patches will make use of it to fix installation paths.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
configure | 1 +
meson_options.txt | 1 +
2 files changed, 2 insertions(+)
diff --git a/configure b/configure
index b1e11397a8..e19e2de2f0 100755
--- a/configure
+++ b/configure
@@ -8222,6 +8222,7 @@ NINJA=$PWD/ninjatool $meson setup \
--mandir "${pre_prefix}$mandir" \
--sysconfdir "${pre_prefix}$sysconfdir" \
--localstatedir "${pre_prefix}$local_statedir" \
+ -Dconfsuffix="$confsuffix" \
-Doptimization=$(if test "$debug" = yes; then echo 0; else echo 2; fi) \
-Ddebug=$(if test "$debug_info" = yes; then echo true; else echo false; fi) \
-Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
diff --git a/meson_options.txt b/meson_options.txt
index c55f9cd94c..7bb2c0fca9 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1,4 @@
+option('confsuffix', type : 'string', value: 'qemu')
option('gettext', type : 'boolean', value : true)
option('sdl', type : 'feature', value : 'auto')
option('sdl_image', type : 'feature', value : 'auto')
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/5] meson: pass confsuffix option
2020-08-25 17:58 ` [PATCH v2 1/5] meson: pass confsuffix option marcandre.lureau
@ 2020-08-26 8:28 ` Daniel P. Berrangé
0 siblings, 0 replies; 14+ messages in thread
From: Daniel P. Berrangé @ 2020-08-26 8:28 UTC (permalink / raw)
To: marcandre.lureau; +Cc: sw, qemu-devel, pbonzini
On Tue, Aug 25, 2020 at 09:58:23PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following patches will make use of it to fix installation paths.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> configure | 1 +
> meson_options.txt | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/configure b/configure
> index b1e11397a8..e19e2de2f0 100755
> --- a/configure
> +++ b/configure
> @@ -8222,6 +8222,7 @@ NINJA=$PWD/ninjatool $meson setup \
> --mandir "${pre_prefix}$mandir" \
> --sysconfdir "${pre_prefix}$sysconfdir" \
> --localstatedir "${pre_prefix}$local_statedir" \
> + -Dconfsuffix="$confsuffix" \
> -Doptimization=$(if test "$debug" = yes; then echo 0; else echo 2; fi) \
> -Ddebug=$(if test "$debug_info" = yes; then echo true; else echo false; fi) \
> -Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
> diff --git a/meson_options.txt b/meson_options.txt
> index c55f9cd94c..7bb2c0fca9 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -1,3 +1,4 @@
> +option('confsuffix', type : 'string', value: 'qemu')
In "configure", $confsuffix defaults to "/qemu", but here is misses the
"/". Not having the "/" is better as meson will add the correct platform
specific dir separator, but it makes me think that configure needs updating
to strip a leading "/" when passing it into meson ?
> option('gettext', type : 'boolean', value : true)
> option('sdl', type : 'feature', value : 'auto')
> option('sdl_image', type : 'feature', value : 'auto')
> --
> 2.26.2
>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 2/5] meson: use meson datadir instead of qemu_datadir
2020-08-25 17:58 [PATCH v2 0/5] meson: mingw installation fixes & nsis conversion marcandre.lureau
2020-08-25 17:58 ` [PATCH v2 1/5] meson: pass confsuffix option marcandre.lureau
@ 2020-08-25 17:58 ` marcandre.lureau
2020-08-26 8:29 ` Daniel P. Berrangé
2020-08-25 17:58 ` [PATCH v2 3/5] meson: add docdir option and pass pre-prefix qemu_docdir marcandre.lureau
` (2 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: marcandre.lureau @ 2020-08-25 17:58 UTC (permalink / raw)
To: qemu-devel; +Cc: sw, berrange, Marc-André Lureau, pbonzini
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 ++-
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 +-
7 files changed, 10 insertions(+), 9 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..20f20a7bfc 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('confsuffix')
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/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
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/5] meson: use meson datadir instead of qemu_datadir
2020-08-25 17:58 ` [PATCH v2 2/5] meson: use meson datadir instead of qemu_datadir marcandre.lureau
@ 2020-08-26 8:29 ` Daniel P. Berrangé
2020-08-26 8:53 ` Marc-André Lureau
0 siblings, 1 reply; 14+ messages in thread
From: Daniel P. Berrangé @ 2020-08-26 8:29 UTC (permalink / raw)
To: marcandre.lureau; +Cc: sw, qemu-devel, pbonzini
On Tue, Aug 25, 2020 at 09:58:24PM +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 ++-
> 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 +-
> 7 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index f0fe5f8799..20f20a7bfc 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('confsuffix')
This needs to be
get_option('datadir') / get_option('confsuffix')
to add the dir separator if we're using the default meson value
for "confsuffix" which lacks a leading "/".
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/5] meson: use meson datadir instead of qemu_datadir
2020-08-26 8:29 ` Daniel P. Berrangé
@ 2020-08-26 8:53 ` Marc-André Lureau
2020-08-26 9:45 ` Paolo Bonzini
0 siblings, 1 reply; 14+ messages in thread
From: Marc-André Lureau @ 2020-08-26 8:53 UTC (permalink / raw)
To: Daniel P. Berrangé; +Cc: Stefan Weil, QEMU, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 1622 bytes --]
Hi
On Wed, Aug 26, 2020 at 12:30 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:
> On Tue, Aug 25, 2020 at 09:58:24PM +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 ++-
> > 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 +-
> > 7 files changed, 10 insertions(+), 9 deletions(-)
> >
>
> > diff --git a/meson.build b/meson.build
> > index f0fe5f8799..20f20a7bfc 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('confsuffix')
>
> This needs to be
>
> get_option('datadir') / get_option('confsuffix')
>
> to add the dir separator if we're using the default meson value
> for "confsuffix" which lacks a leading "/".
>
right, fixed
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 2493 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/5] meson: use meson datadir instead of qemu_datadir
2020-08-26 8:53 ` Marc-André Lureau
@ 2020-08-26 9:45 ` Paolo Bonzini
0 siblings, 0 replies; 14+ messages in thread
From: Paolo Bonzini @ 2020-08-26 9:45 UTC (permalink / raw)
To: Marc-André Lureau; +Cc: Stefan Weil, Daniel P. Berrangé, QEMU
[-- Attachment #1: Type: text/plain, Size: 1938 bytes --]
You'd need to check first if it works correctly if confsuffix "looks like"
an absolute path ('/qemu'). So + looks correct to me.
(Sorry for top posting).
Paolo
Il mer 26 ago 2020, 10:53 Marc-André Lureau <marcandre.lureau@gmail.com> ha
scritto:
> Hi
>
> On Wed, Aug 26, 2020 at 12:30 PM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
>
>> On Tue, Aug 25, 2020 at 09:58:24PM +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 ++-
>> > 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 +-
>> > 7 files changed, 10 insertions(+), 9 deletions(-)
>> >
>>
>> > diff --git a/meson.build b/meson.build
>> > index f0fe5f8799..20f20a7bfc 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('confsuffix')
>>
>> This needs to be
>>
>> get_option('datadir') / get_option('confsuffix')
>>
>> to add the dir separator if we're using the default meson value
>> for "confsuffix" which lacks a leading "/".
>>
>
> right, fixed
>
> --
> Marc-André Lureau
>
[-- Attachment #2: Type: text/html, Size: 3185 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 3/5] meson: add docdir option and pass pre-prefix qemu_docdir
2020-08-25 17:58 [PATCH v2 0/5] meson: mingw installation fixes & nsis conversion marcandre.lureau
2020-08-25 17:58 ` [PATCH v2 1/5] meson: pass confsuffix option marcandre.lureau
2020-08-25 17:58 ` [PATCH v2 2/5] meson: use meson datadir instead of qemu_datadir marcandre.lureau
@ 2020-08-25 17:58 ` marcandre.lureau
2020-08-26 8:32 ` Daniel P. Berrangé
2020-08-25 17:58 ` [PATCH v2 4/5] meson: use meson mandir instead of qemu_mandir marcandre.lureau
2020-08-25 17:58 ` [PATCH v2 5/5] meson: add NSIS building marcandre.lureau
4 siblings, 1 reply; 14+ messages in thread
From: marcandre.lureau @ 2020-08-25 17:58 UTC (permalink / raw)
To: qemu-devel; +Cc: sw, berrange, Marc-André Lureau, pbonzini
From: Marc-André Lureau <marcandre.lureau@redhat.com>
When cross-compiling, by default qemu_docdir is 'c:\Program Files\QEMU\'
which is not recognized as being an absolute path, and meson will end up
adding the prefix again.
Add an option to pass docdir location to meson, pre-prefixed like we do
with other directories and use that instead of config_host['qemu_docdir'].
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
configure | 1 +
docs/meson.build | 4 ++--
meson.build | 3 ++-
meson_options.txt | 1 +
4 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/configure b/configure
index e19e2de2f0..e644841299 100755
--- a/configure
+++ b/configure
@@ -8223,6 +8223,7 @@ NINJA=$PWD/ninjatool $meson setup \
--sysconfdir "${pre_prefix}$sysconfdir" \
--localstatedir "${pre_prefix}$local_statedir" \
-Dconfsuffix="$confsuffix" \
+ -Ddocdir="${pre_prefix}$qemu_docdir" \
-Doptimization=$(if test "$debug" = yes; then echo 0; else echo 2; fi) \
-Ddebug=$(if test "$debug_info" = yes; then echo true; else echo false; fi) \
-Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
diff --git a/docs/meson.build b/docs/meson.build
index 8b059a8e39..e27f4632dc 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -10,7 +10,7 @@ if build_docs
configure_file(output: 'index.html',
input: files('index.html.in'),
configuration: {'VERSION': meson.project_version()},
- install_dir: config_host['qemu_docdir'])
+ install_dir: get_option('docdir'))
manuals = [ 'devel', 'interop', 'tools', 'specs', 'system', 'user' ]
man_pages = {
'interop' : {
@@ -48,7 +48,7 @@ if build_docs
input_dir, output_dir])
sphinxdocs += this_manual
if build_docs and manual != 'devel'
- install_subdir(output_dir, install_dir: config_host['qemu_docdir'])
+ install_subdir(output_dir, install_dir: get_option('docdir'))
endif
these_man_pages = []
diff --git a/meson.build b/meson.build
index 20f20a7bfc..33281cecc3 100644
--- a/meson.build
+++ b/meson.build
@@ -1170,7 +1170,7 @@ if build_docs
input: input,
output: output,
install: true,
- install_dir: config_host['qemu_docdir'] / 'interop',
+ install_dir: get_option('docdir') / 'interop',
command: cmd + args)
endforeach
alias_target(ext, t)
@@ -1233,6 +1233,7 @@ if targetos != 'windows'
else
summary_info += {'local state directory': 'queried at runtime'}
endif
+summary_info += {'Doc directory': get_option('docdir')}
summary_info += {'Build directory': meson.current_build_dir()}
summary_info += {'Source path': meson.current_source_dir()}
summary_info += {'GIT binary': config_host['GIT']}
diff --git a/meson_options.txt b/meson_options.txt
index 7bb2c0fca9..fb9312fddd 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,5 @@
option('confsuffix', type : 'string', value: 'qemu')
+option('docdir', type : 'string', value : 'doc/qemu')
option('gettext', type : 'boolean', value : true)
option('sdl', type : 'feature', value : 'auto')
option('sdl_image', type : 'feature', value : 'auto')
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/5] meson: add docdir option and pass pre-prefix qemu_docdir
2020-08-25 17:58 ` [PATCH v2 3/5] meson: add docdir option and pass pre-prefix qemu_docdir marcandre.lureau
@ 2020-08-26 8:32 ` Daniel P. Berrangé
2020-08-26 8:38 ` Marc-André Lureau
0 siblings, 1 reply; 14+ messages in thread
From: Daniel P. Berrangé @ 2020-08-26 8:32 UTC (permalink / raw)
To: marcandre.lureau; +Cc: sw, qemu-devel, pbonzini
On Tue, Aug 25, 2020 at 09:58:25PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> When cross-compiling, by default qemu_docdir is 'c:\Program Files\QEMU\'
> which is not recognized as being an absolute path, and meson will end up
> adding the prefix again.
>
> Add an option to pass docdir location to meson, pre-prefixed like we do
> with other directories and use that instead of config_host['qemu_docdir'].
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> configure | 1 +
> docs/meson.build | 4 ++--
> meson.build | 3 ++-
> meson_options.txt | 1 +
> 4 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/configure b/configure
> index e19e2de2f0..e644841299 100755
> --- a/configure
> +++ b/configure
> @@ -8223,6 +8223,7 @@ NINJA=$PWD/ninjatool $meson setup \
> --sysconfdir "${pre_prefix}$sysconfdir" \
> --localstatedir "${pre_prefix}$local_statedir" \
> -Dconfsuffix="$confsuffix" \
> + -Ddocdir="${pre_prefix}$qemu_docdir" \
This is passing an absolute path.....
> diff --git a/meson_options.txt b/meson_options.txt
> index 7bb2c0fca9..fb9312fddd 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -1,4 +1,5 @@
> option('confsuffix', type : 'string', value: 'qemu')
> +option('docdir', type : 'string', value : 'doc/qemu')
...but this default is a relative dir, presumably relative to
datadir. The code expects an absolute dir.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/5] meson: add docdir option and pass pre-prefix qemu_docdir
2020-08-26 8:32 ` Daniel P. Berrangé
@ 2020-08-26 8:38 ` Marc-André Lureau
0 siblings, 0 replies; 14+ messages in thread
From: Marc-André Lureau @ 2020-08-26 8:38 UTC (permalink / raw)
To: Daniel P. Berrangé; +Cc: Stefan Weil, QEMU, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 2169 bytes --]
Hi
On Wed, Aug 26, 2020 at 12:32 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:
> On Tue, Aug 25, 2020 at 09:58:25PM +0400, marcandre.lureau@redhat.com
> wrote:
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > When cross-compiling, by default qemu_docdir is 'c:\Program Files\QEMU\'
> > which is not recognized as being an absolute path, and meson will end up
> > adding the prefix again.
> >
> > Add an option to pass docdir location to meson, pre-prefixed like we do
> > with other directories and use that instead of
> config_host['qemu_docdir'].
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> > configure | 1 +
> > docs/meson.build | 4 ++--
> > meson.build | 3 ++-
> > meson_options.txt | 1 +
> > 4 files changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/configure b/configure
> > index e19e2de2f0..e644841299 100755
> > --- a/configure
> > +++ b/configure
> > @@ -8223,6 +8223,7 @@ NINJA=$PWD/ninjatool $meson setup \
> > --sysconfdir "${pre_prefix}$sysconfdir" \
> > --localstatedir "${pre_prefix}$local_statedir" \
> > -Dconfsuffix="$confsuffix" \
> > + -Ddocdir="${pre_prefix}$qemu_docdir" \
>
> This is passing an absolute path.....
>
>
> > diff --git a/meson_options.txt b/meson_options.txt
> > index 7bb2c0fca9..fb9312fddd 100644
> > --- a/meson_options.txt
> > +++ b/meson_options.txt
> > @@ -1,4 +1,5 @@
> > option('confsuffix', type : 'string', value: 'qemu')
> > +option('docdir', type : 'string', value : 'doc/qemu')
>
> ...but this default is a relative dir, presumably relative to
> datadir. The code expects an absolute dir.
>
Meson accepts both absolute and relative path for installation location. If
it's relative, it will be under the $prefix directory.
>
> Regards,
> Daniel
> --
> |: https://berrange.com -o-
> https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org -o-
> https://fstop138.berrange.com :|
> |: https://entangle-photo.org -o-
> https://www.instagram.com/dberrange :|
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 3755 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 4/5] meson: use meson mandir instead of qemu_mandir
2020-08-25 17:58 [PATCH v2 0/5] meson: mingw installation fixes & nsis conversion marcandre.lureau
` (2 preceding siblings ...)
2020-08-25 17:58 ` [PATCH v2 3/5] meson: add docdir option and pass pre-prefix qemu_docdir marcandre.lureau
@ 2020-08-25 17:58 ` marcandre.lureau
2020-08-26 8:33 ` Daniel P. Berrangé
2020-08-25 17:58 ` [PATCH v2 5/5] meson: add NSIS building marcandre.lureau
4 siblings, 1 reply; 14+ messages in thread
From: marcandre.lureau @ 2020-08-25 17:58 UTC (permalink / raw)
To: qemu-devel; +Cc: sw, berrange, Marc-André Lureau, pbonzini
From: Marc-André Lureau <marcandre.lureau@redhat.com>
When cross-compiling, by default qemu_mandir is 'c:\Program
Files\QEMU', which is not recognized as being an absolute path, and
meson will end up adding the prefix again.
Use the pre-prefixed meson mandir option instead.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 33281cecc3..0720a7d684 100644
--- a/meson.build
+++ b/meson.build
@@ -1210,7 +1210,7 @@ if build_docs
output: man,
capture: true,
install: true,
- install_dir: config_host['mandir'] / 'man7',
+ install_dir: get_option('mandir') / 'man7',
command: [pod2man, '--utf8', '--section=7', '--center=" "',
'--release=" "', '@INPUT@'])
endforeach
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 4/5] meson: use meson mandir instead of qemu_mandir
2020-08-25 17:58 ` [PATCH v2 4/5] meson: use meson mandir instead of qemu_mandir marcandre.lureau
@ 2020-08-26 8:33 ` Daniel P. Berrangé
0 siblings, 0 replies; 14+ messages in thread
From: Daniel P. Berrangé @ 2020-08-26 8:33 UTC (permalink / raw)
To: marcandre.lureau; +Cc: sw, qemu-devel, pbonzini
On Tue, Aug 25, 2020 at 09:58:26PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> When cross-compiling, by default qemu_mandir is 'c:\Program
> Files\QEMU', which is not recognized as being an absolute path, and
> meson will end up adding the prefix again.
>
> Use the pre-prefixed meson mandir option instead.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 5/5] meson: add NSIS building
2020-08-25 17:58 [PATCH v2 0/5] meson: mingw installation fixes & nsis conversion marcandre.lureau
` (3 preceding siblings ...)
2020-08-25 17:58 ` [PATCH v2 4/5] meson: use meson mandir instead of qemu_mandir marcandre.lureau
@ 2020-08-25 17:58 ` marcandre.lureau
2020-08-26 8:40 ` Daniel P. Berrangé
4 siblings, 1 reply; 14+ messages in thread
From: marcandre.lureau @ 2020-08-25 17:58 UTC (permalink / raw)
To: qemu-devel; +Cc: sw, berrange, Marc-André Lureau, pbonzini
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
Makefile | 56 -----------------------------------
meson.build | 25 ++++++++++++++++
scripts/nsis.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 103 insertions(+), 56 deletions(-)
create mode 100644 scripts/nsis.py
diff --git a/Makefile b/Makefile
index 81794d5c34..3ebd6929b4 100644
--- a/Makefile
+++ b/Makefile
@@ -294,62 +294,6 @@ endif
"$(DESTDIR)$(qemu_desktopdir)/qemu.desktop"
$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/keymaps"
-ifdef CONFIG_WIN32
-
-INSTALLER = qemu-setup-$(VERSION)$(EXESUF)
-
-nsisflags = -V2 -NOCD
-
-ifneq ($(wildcard $(SRC_PATH)/dll),)
-ifeq ($(ARCH),x86_64)
-# 64 bit executables
-DLL_PATH = $(SRC_PATH)/dll/w64
-nsisflags += -DW64
-else
-# 32 bit executables
-DLL_PATH = $(SRC_PATH)/dll/w32
-endif
-endif
-
-.PHONY: installer
-installer: $(INSTALLER)
-
-INSTDIR=/tmp/qemu-nsis
-
-$(INSTALLER): $(SRC_PATH)/qemu.nsi
- $(MAKE) install DESTDIR=${INSTDIR}
-ifdef SIGNCODE
- (cd ${INSTDIR}/${bindir}; \
- for i in *.exe; do \
- $(SIGNCODE) $${i}; \
- done \
- )
-endif # SIGNCODE
- (cd ${INSTDIR}/${bindir}; \
- for i in qemu-system-*.exe; do \
- arch=$${i%.exe}; \
- arch=$${arch#qemu-system-}; \
- echo Section \"$$arch\" Section_$$arch; \
- echo SetOutPath \"\$$INSTDIR\"; \
- echo File \"\$${BINDIR}\\$$i\"; \
- echo SectionEnd; \
- done \
- ) >${INSTDIR}/${bindir}/system-emulations.nsh
- makensis $(nsisflags) \
- $(if $(BUILD_DOCS),-DCONFIG_DOCUMENTATION="y") \
- $(if $(CONFIG_GTK),-DCONFIG_GTK="y") \
- -DBINDIR="${INSTDIR}/${bindir}" \
- $(if $(DLL_PATH),-DDLLDIR="$(DLL_PATH)") \
- -DSRCDIR="$(SRC_PATH)" \
- -DOUTFILE="$(INSTALLER)" \
- -DDISPLAYVERSION="$(VERSION)" \
- $(SRC_PATH)/qemu.nsi
- rm -r ${INSTDIR}
-ifdef SIGNCODE
- $(SIGNCODE) $(INSTALLER)
-endif # SIGNCODE
-endif # CONFIG_WIN
-
# Add a dependency on the generated files, so that they are always
# rebuilt before other object files
ifneq ($(wildcard config-host.mak),)
diff --git a/meson.build b/meson.build
index 0720a7d684..bc2bea23b2 100644
--- a/meson.build
+++ b/meson.build
@@ -1217,6 +1217,31 @@ if build_docs
endif
endif
+if host_machine.system() == 'windows'
+ nsis_cmd = [
+ find_program('scripts/nsis.py'),
+ '@OUTPUT@',
+ get_option('prefix'),
+ meson.current_source_dir(),
+ host_machine.cpu_family(),
+ '--',
+ '-DDISPLAYVERSION=' + meson.project_version(),
+ ]
+ if build_docs
+ nsis_cmd += '-DCONFIG_DOCUMENTATION=y'
+ endif
+ if 'CONFIG_GTK' in config_host
+ nsis_cmd += '-DCONFIG_GTK=y'
+ endif
+
+ nsis = custom_target('nsis',
+ output: 'qemu-setup-' + meson.project_version() + '.exe',
+ input: files('qemu.nsi'),
+ build_always_stale: true,
+ command: nsis_cmd + ['@INPUT@'])
+ alias_target('installer', nsis)
+endif
+
summary_info = {}
summary_info += {'Install prefix': config_host['prefix']}
summary_info += {'BIOS directory': config_host['qemu_datadir']}
diff --git a/scripts/nsis.py b/scripts/nsis.py
new file mode 100644
index 0000000000..e1c409344e
--- /dev/null
+++ b/scripts/nsis.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2020 Red Hat, Inc.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import argparse
+import glob
+import os
+import shutil
+import subprocess
+import tempfile
+
+
+def signcode(path):
+ cmd = os.environ.get("SIGNCODE")
+ if not cmd:
+ return
+ subprocess.run([cmd, path])
+
+
+def main():
+ parser = argparse.ArgumentParser(description="QEMU NSIS build helper.")
+ parser.add_argument("outfile")
+ parser.add_argument("prefix")
+ parser.add_argument("srcdir")
+ parser.add_argument("cpu")
+ parser.add_argument("nsisargs", nargs="*")
+ args = parser.parse_args()
+
+ destdir = tempfile.mkdtemp()
+ try:
+ subprocess.run(["make", "install", "DESTDIR=" + destdir + os.path.sep])
+ with open(
+ os.path.join(destdir + args.prefix, "system-emulations.nsh"), "w"
+ ) as nsh:
+ for exe in glob.glob(
+ os.path.join(destdir + args.prefix, "qemu-system-*.exe")
+ ):
+ exe = os.path.basename(exe)
+ arch = exe[12:-4]
+ nsh.write(
+ """
+ Section "{0}" Section_{0}
+ SetOutPath "$INSTDIR"
+ File "${{BINDIR}}\\{1}"
+ SectionEnd
+ """.format(
+ arch, exe
+ )
+ )
+
+ for exe in glob.glob(os.path.join(destdir + args.prefix, "*.exe")):
+ signcode(exe)
+
+ makensis = [
+ "makensis",
+ "-V2",
+ "-NOCD",
+ "-DSRCDIR=" + args.srcdir,
+ "-DBINDIR=" + destdir + args.prefix,
+ ]
+ dlldir = "w32"
+ if args.cpu == "x86_64":
+ dlldir = "w64"
+ makensis += ["-DW64"]
+ if os.path.exists(os.path.join(args.srcdir, "dll")):
+ makensis += "-DDLLDIR={0}/dll/{1}".format(args.srcdir, dlldir)
+
+ makensis += ["-DOUTFILE=" + args.outfile] + args.nsisargs
+ subprocess.run(makensis)
+ signcode(args.outfile)
+ finally:
+ shutil.rmtree(destdir)
+
+
+if __name__ == "__main__":
+ main()
--
2.26.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 5/5] meson: add NSIS building
2020-08-25 17:58 ` [PATCH v2 5/5] meson: add NSIS building marcandre.lureau
@ 2020-08-26 8:40 ` Daniel P. Berrangé
0 siblings, 0 replies; 14+ messages in thread
From: Daniel P. Berrangé @ 2020-08-26 8:40 UTC (permalink / raw)
To: marcandre.lureau; +Cc: sw, qemu-devel, pbonzini
On Tue, Aug 25, 2020 at 09:58:27PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> Makefile | 56 -----------------------------------
> meson.build | 25 ++++++++++++++++
> scripts/nsis.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 103 insertions(+), 56 deletions(-)
> create mode 100644 scripts/nsis.py
> diff --git a/scripts/nsis.py b/scripts/nsis.py
> new file mode 100644
> index 0000000000..e1c409344e
> --- /dev/null
> +++ b/scripts/nsis.py
> @@ -0,0 +1,78 @@
> +#!/usr/bin/env python3
> +#
> +# Copyright (C) 2020 Red Hat, Inc.
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +import argparse
> +import glob
> +import os
> +import shutil
> +import subprocess
> +import tempfile
> +
> +
> +def signcode(path):
> + cmd = os.environ.get("SIGNCODE")
> + if not cmd:
> + return
> + subprocess.run([cmd, path])
I know the existing makefile used $SIGNCODE env variable, but I can't
help thinking it would be better to have it as a configure arg, and
in turn a meson arg.
None the less, it isn't worse than what already exists so
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 14+ messages in thread