qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] meson: use subprojects for bundled projects
@ 2023-05-18 12:46 Paolo Bonzini
  2023-05-18 12:46 ` [PATCH 1/2] meson: use subproject for internal libfdt Paolo Bonzini
  2023-05-18 12:46 ` [PATCH 2/2] meson: use subproject for keycodemapdb Paolo Bonzini
  0 siblings, 2 replies; 6+ messages in thread
From: Paolo Bonzini @ 2023-05-18 12:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: berrange, marcandre.lureau

QEMU bundles a copy of dtc and keycodemapdb.  They both support meson,
so run their build system via subproject() instead of hardcoding their
contents.

Paolo

Paolo Bonzini (2):
  meson: use subproject for internal libfdt
  meson: use subproject for keycodemapdb

 .gitmodules                      |  8 +++---
 configure                        |  6 ++---
 meson.build                      | 44 +++++++++++---------------------
 scripts/archive-source.sh        |  2 +-
 dtc => subprojects/dtc           |  0
 {ui => subprojects}/keycodemapdb |  0
 ui/meson.build                   |  6 +++--
 7 files changed, 27 insertions(+), 39 deletions(-)
 rename dtc => subprojects/dtc (100%)
 rename {ui => subprojects}/keycodemapdb (100%)

-- 
2.40.1



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] meson: use subproject for internal libfdt
  2023-05-18 12:46 [PATCH 0/2] meson: use subprojects for bundled projects Paolo Bonzini
@ 2023-05-18 12:46 ` Paolo Bonzini
  2023-05-18 12:46 ` [PATCH 2/2] meson: use subproject for keycodemapdb Paolo Bonzini
  1 sibling, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2023-05-18 12:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: berrange, marcandre.lureau

Recent dtc/libfdt can use both Make and meson as the build system.
By using a subproject, our own meson.build can remove the hard
coded list of source files.

In the future, it may also be possible to use wrap to download
the submodule.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 .gitmodules               |  4 ++--
 configure                 |  2 +-
 meson.build               | 44 +++++++++++++--------------------------
 scripts/archive-source.sh |  2 +-
 dtc => subprojects/dtc    |  0
 5 files changed, 19 insertions(+), 33 deletions(-)
 rename dtc => subprojects/dtc (100%)

diff --git a/.gitmodules b/.gitmodules
index 2a3a12033c4b..3ed5d073d630 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -13,8 +13,8 @@
 [submodule "roms/qemu-palcode"]
 	path = roms/qemu-palcode
 	url = https://gitlab.com/qemu-project/qemu-palcode.git
-[submodule "dtc"]
-	path = dtc
+[submodule "subprojects/dtc"]
+	path = subprojects/dtc
 	url = https://gitlab.com/qemu-project/dtc.git
 [submodule "roms/u-boot"]
 	path = roms/u-boot
diff --git a/configure b/configure
index 31a787153e38..5bbca83d9a31 100755
--- a/configure
+++ b/configure
@@ -1188,7 +1188,7 @@ fi
 case "$fdt" in
   auto | enabled | internal)
     # Simpler to always update submodule, even if not needed.
-    git_submodules="${git_submodules} dtc"
+    git_submodules="${git_submodules} subprojects/dtc"
     ;;
 esac
 
diff --git a/meson.build b/meson.build
index 41c87c441f8e..1e75afdc6844 100644
--- a/meson.build
+++ b/meson.build
@@ -3041,10 +3041,10 @@ if have_system and vfio_user_server_allowed
 endif
 
 fdt = not_found
-if have_system
-  fdt_opt = get_option('fdt')
+fdt_opt = get_option('fdt')
+if fdt_required.length() > 0 or fdt_opt == 'enabled'
+  have_internal = fs.exists(meson.current_source_dir() / 'subprojects/dtc/meson.build')
   if fdt_opt in ['enabled', 'auto', 'system']
-    have_internal = fs.exists(meson.current_source_dir() / 'dtc/libfdt/Makefile.libfdt')
     fdt = cc.find_library('fdt',
                           required: fdt_opt == 'system' or
                                     fdt_opt == 'enabled' and not have_internal)
@@ -3056,41 +3056,27 @@ if have_system
       fdt_opt = 'system'
     elif fdt_opt == 'system'
        error('system libfdt requested, but it is too old (1.5.1 or newer required)')
-    elif have_internal
-      fdt_opt = 'internal'
     else
-      fdt_opt = 'disabled'
+      fdt_opt = 'internal'
       fdt = not_found
     endif
   endif
-  if fdt_opt == 'internal'
-    fdt_files = files(
-      'dtc/libfdt/fdt.c',
-      'dtc/libfdt/fdt_ro.c',
-      'dtc/libfdt/fdt_wip.c',
-      'dtc/libfdt/fdt_sw.c',
-      'dtc/libfdt/fdt_rw.c',
-      'dtc/libfdt/fdt_strerror.c',
-      'dtc/libfdt/fdt_empty_tree.c',
-      'dtc/libfdt/fdt_addresses.c',
-      'dtc/libfdt/fdt_overlay.c',
-      'dtc/libfdt/fdt_check.c',
-    )
 
-    fdt_inc = include_directories('dtc/libfdt')
-    libfdt = static_library('fdt',
-                            build_by_default: false,
-                            sources: fdt_files,
-                            include_directories: fdt_inc)
-    fdt = declare_dependency(link_with: libfdt,
-                             include_directories: fdt_inc)
+  if fdt_opt == 'system'
+    # verified above
+  elif fdt_opt == 'disabled'
+    error('fdt disabled but required by targets ' + ', '.join(fdt_required))
+  elif not have_internal
+    error('libfdt source not found - please pull git submodule')
+  else
+    libfdt_proj = subproject('dtc', required: true,
+                             default_options: ['tools=false',  'yaml=disabled',
+                                               'python=disabled', 'default_library=static'])
+    fdt = libfdt_proj.get_variable('libfdt_dep')
   endif
 else
   fdt_opt = 'disabled'
 endif
-if not fdt.found() and fdt_required.length() > 0
-  error('fdt not available but required by targets ' + ', '.join(fdt_required))
-endif
 
 config_host_data.set('CONFIG_CAPSTONE', capstone.found())
 config_host_data.set('CONFIG_FDT', fdt.found())
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
index 23e042dacdb3..b15f6fe6b8fe 100755
--- a/scripts/archive-source.sh
+++ b/scripts/archive-source.sh
@@ -26,7 +26,7 @@ sub_file="${sub_tdir}/submodule.tar"
 # independent of what the developer currently has initialized
 # in their checkout, because the build environment is completely
 # different to the host OS.
-submodules="dtc meson ui/keycodemapdb"
+submodules="subprojects/dtc meson ui/keycodemapdb"
 submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
 sub_deinit=""
 
diff --git a/dtc b/subprojects/dtc
similarity index 100%
rename from dtc
rename to subprojects/dtc
-- 
2.40.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] meson: use subproject for keycodemapdb
  2023-05-18 12:46 [PATCH 0/2] meson: use subprojects for bundled projects Paolo Bonzini
  2023-05-18 12:46 ` [PATCH 1/2] meson: use subproject for internal libfdt Paolo Bonzini
@ 2023-05-18 12:46 ` Paolo Bonzini
  2023-05-18 12:55   ` Daniel P. Berrangé
  1 sibling, 1 reply; 6+ messages in thread
From: Paolo Bonzini @ 2023-05-18 12:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: berrange, marcandre.lureau

By using a subproject, our own meson.build can use variables from
the subproject instead of hard-coded paths.  In the future, it may
also be possible to use wrap to download the submodule.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 .gitmodules                      | 4 ++--
 configure                        | 4 ++--
 scripts/archive-source.sh        | 2 +-
 {ui => subprojects}/keycodemapdb | 0
 ui/meson.build                   | 6 ++++--
 5 files changed, 9 insertions(+), 7 deletions(-)
 rename {ui => subprojects}/keycodemapdb (100%)

diff --git a/.gitmodules b/.gitmodules
index 3ed5d073d630..f8b2ddf3877c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -25,8 +25,8 @@
 [submodule "roms/QemuMacDrivers"]
 	path = roms/QemuMacDrivers
 	url = https://gitlab.com/qemu-project/QemuMacDrivers.git
-[submodule "ui/keycodemapdb"]
-	path = ui/keycodemapdb
+[submodule "subprojects/keycodemapdb"]
+	path = subprojects/keycodemapdb
 	url = https://gitlab.com/qemu-project/keycodemapdb.git
 [submodule "roms/seabios-hppa"]
 	path = roms/seabios-hppa
diff --git a/configure b/configure
index 5bbca83d9a31..2b6995e16756 100755
--- a/configure
+++ b/configure
@@ -254,7 +254,7 @@ else
     git_submodules_action="ignore"
 fi
 
-git_submodules="ui/keycodemapdb"
+git_submodules="subprojects/keycodemapdb"
 git="git"
 debug_tcg="no"
 docs="auto"
@@ -806,7 +806,7 @@ case $git_submodules_action in
         fi
     ;;
     ignore)
-        if ! test -f "$source_path/ui/keycodemapdb/README"
+        if ! test -f "$source_path/subprojects/keycodemapdb/README"
         then
             echo
             echo "ERROR: missing GIT submodules"
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
index b15f6fe6b8fe..a0a3153faa99 100755
--- a/scripts/archive-source.sh
+++ b/scripts/archive-source.sh
@@ -26,7 +26,7 @@ sub_file="${sub_tdir}/submodule.tar"
 # independent of what the developer currently has initialized
 # in their checkout, because the build environment is completely
 # different to the host OS.
-submodules="subprojects/dtc meson ui/keycodemapdb"
+submodules="subprojects/dtc meson subprojects/keycodemapdb"
 submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
 sub_deinit=""
 
diff --git a/ui/keycodemapdb b/subprojects/keycodemapdb
similarity index 100%
rename from ui/keycodemapdb
rename to subprojects/keycodemapdb
diff --git a/ui/meson.build b/ui/meson.build
index 330369707dd7..e24d52b89941 100644
--- a/ui/meson.build
+++ b/ui/meson.build
@@ -162,13 +162,15 @@ keymaps = [
 ]
 
 if have_system or xkbcommon.found()
+  keycodemapdb_proj = subproject('keycodemapdb', required: true)
+  keymap_gen = find_program('keymap-gen', required: true)
   foreach e : keymaps
     output = 'input-keymap-@0@-to-@1@.c.inc'.format(e[0], e[1])
     genh += custom_target(output,
                   output: output,
                   capture: true,
-                  input: files('keycodemapdb/data/keymaps.csv'),
-                  command: [python, files('keycodemapdb/tools/keymap-gen'),
+                  input: keycodemapdb_proj.get_variable('keymaps_csv'),
+                  command: [python, keycodemapdb_proj.get_variable('keymap_gen'),
                             'code-map',
                             '--lang', 'glib2',
                             '--varname', 'qemu_input_map_@0@_to_@1@'.format(e[0], e[1]),
-- 
2.40.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] meson: use subproject for keycodemapdb
  2023-05-18 12:46 ` [PATCH 2/2] meson: use subproject for keycodemapdb Paolo Bonzini
@ 2023-05-18 12:55   ` Daniel P. Berrangé
  2023-05-18 13:00     ` Paolo Bonzini
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel P. Berrangé @ 2023-05-18 12:55 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel, marcandre.lureau

On Thu, May 18, 2023 at 02:46:45PM +0200, Paolo Bonzini wrote:
> By using a subproject, our own meson.build can use variables from
> the subproject instead of hard-coded paths.  In the future, it may
> also be possible to use wrap to download the submodule.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  .gitmodules                      | 4 ++--
>  configure                        | 4 ++--
>  scripts/archive-source.sh        | 2 +-
>  {ui => subprojects}/keycodemapdb | 0
>  ui/meson.build                   | 6 ++++--
>  5 files changed, 9 insertions(+), 7 deletions(-)
>  rename {ui => subprojects}/keycodemapdb (100%)
> 
> diff --git a/.gitmodules b/.gitmodules
> index 3ed5d073d630..f8b2ddf3877c 100644
> --- a/.gitmodules
> +++ b/.gitmodules
> @@ -25,8 +25,8 @@
>  [submodule "roms/QemuMacDrivers"]
>  	path = roms/QemuMacDrivers
>  	url = https://gitlab.com/qemu-project/QemuMacDrivers.git
> -[submodule "ui/keycodemapdb"]
> -	path = ui/keycodemapdb
> +[submodule "subprojects/keycodemapdb"]
> +	path = subprojects/keycodemapdb
>  	url = https://gitlab.com/qemu-project/keycodemapdb.git
>  [submodule "roms/seabios-hppa"]
>  	path = roms/seabios-hppa
> diff --git a/configure b/configure
> index 5bbca83d9a31..2b6995e16756 100755
> --- a/configure
> +++ b/configure
> @@ -254,7 +254,7 @@ else
>      git_submodules_action="ignore"
>  fi
>  
> -git_submodules="ui/keycodemapdb"
> +git_submodules="subprojects/keycodemapdb"
>  git="git"
>  debug_tcg="no"
>  docs="auto"
> @@ -806,7 +806,7 @@ case $git_submodules_action in
>          fi
>      ;;
>      ignore)
> -        if ! test -f "$source_path/ui/keycodemapdb/README"
> +        if ! test -f "$source_path/subprojects/keycodemapdb/README"
>          then
>              echo
>              echo "ERROR: missing GIT submodules"
> diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
> index b15f6fe6b8fe..a0a3153faa99 100755
> --- a/scripts/archive-source.sh
> +++ b/scripts/archive-source.sh
> @@ -26,7 +26,7 @@ sub_file="${sub_tdir}/submodule.tar"
>  # independent of what the developer currently has initialized
>  # in their checkout, because the build environment is completely
>  # different to the host OS.
> -submodules="subprojects/dtc meson ui/keycodemapdb"
> +submodules="subprojects/dtc meson subprojects/keycodemapdb"
>  submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
>  sub_deinit=""
>  
> diff --git a/ui/keycodemapdb b/subprojects/keycodemapdb
> similarity index 100%
> rename from ui/keycodemapdb
> rename to subprojects/keycodemapdb
> diff --git a/ui/meson.build b/ui/meson.build
> index 330369707dd7..e24d52b89941 100644
> --- a/ui/meson.build
> +++ b/ui/meson.build
> @@ -162,13 +162,15 @@ keymaps = [
>  ]
>  
>  if have_system or xkbcommon.found()
> +  keycodemapdb_proj = subproject('keycodemapdb', required: true)
> +  keymap_gen = find_program('keymap-gen', required: true)

This variable isn't used, is it ?

>    foreach e : keymaps
>      output = 'input-keymap-@0@-to-@1@.c.inc'.format(e[0], e[1])
>      genh += custom_target(output,
>                    output: output,
>                    capture: true,
> -                  input: files('keycodemapdb/data/keymaps.csv'),
> -                  command: [python, files('keycodemapdb/tools/keymap-gen'),
> +                  input: keycodemapdb_proj.get_variable('keymaps_csv'),
> +                  command: [python, keycodemapdb_proj.get_variable('keymap_gen'),
>                              'code-map',
>                              '--lang', 'glib2',
>                              '--varname', 'qemu_input_map_@0@_to_@1@'.format(e[0], e[1]),


With 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] 6+ messages in thread

* Re: [PATCH 2/2] meson: use subproject for keycodemapdb
  2023-05-18 12:55   ` Daniel P. Berrangé
@ 2023-05-18 13:00     ` Paolo Bonzini
  2023-05-18 14:01       ` Daniel P. Berrangé
  0 siblings, 1 reply; 6+ messages in thread
From: Paolo Bonzini @ 2023-05-18 13:00 UTC (permalink / raw)
  To: Daniel P. Berrangé; +Cc: qemu-devel, marcandre.lureau

On 5/18/23 14:55, Daniel P. Berrangé wrote:
> On Thu, May 18, 2023 at 02:46:45PM +0200, Paolo Bonzini wrote:
>> By using a subproject, our own meson.build can use variables from
>> the subproject instead of hard-coded paths.  In the future, it may
>> also be possible to use wrap to download the submodule.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>>   .gitmodules                      | 4 ++--
>>   configure                        | 4 ++--
>>   scripts/archive-source.sh        | 2 +-
>>   {ui => subprojects}/keycodemapdb | 0
>>   ui/meson.build                   | 6 ++++--
>>   5 files changed, 9 insertions(+), 7 deletions(-)
>>   rename {ui => subprojects}/keycodemapdb (100%)
>>
>> diff --git a/.gitmodules b/.gitmodules
>> index 3ed5d073d630..f8b2ddf3877c 100644
>> --- a/.gitmodules
>> +++ b/.gitmodules
>> @@ -25,8 +25,8 @@
>>   [submodule "roms/QemuMacDrivers"]
>>   	path = roms/QemuMacDrivers
>>   	url = https://gitlab.com/qemu-project/QemuMacDrivers.git
>> -[submodule "ui/keycodemapdb"]
>> -	path = ui/keycodemapdb
>> +[submodule "subprojects/keycodemapdb"]
>> +	path = subprojects/keycodemapdb
>>   	url = https://gitlab.com/qemu-project/keycodemapdb.git
>>   [submodule "roms/seabios-hppa"]
>>   	path = roms/seabios-hppa
>> diff --git a/configure b/configure
>> index 5bbca83d9a31..2b6995e16756 100755
>> --- a/configure
>> +++ b/configure
>> @@ -254,7 +254,7 @@ else
>>       git_submodules_action="ignore"
>>   fi
>>   
>> -git_submodules="ui/keycodemapdb"
>> +git_submodules="subprojects/keycodemapdb"
>>   git="git"
>>   debug_tcg="no"
>>   docs="auto"
>> @@ -806,7 +806,7 @@ case $git_submodules_action in
>>           fi
>>       ;;
>>       ignore)
>> -        if ! test -f "$source_path/ui/keycodemapdb/README"
>> +        if ! test -f "$source_path/subprojects/keycodemapdb/README"
>>           then
>>               echo
>>               echo "ERROR: missing GIT submodules"
>> diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
>> index b15f6fe6b8fe..a0a3153faa99 100755
>> --- a/scripts/archive-source.sh
>> +++ b/scripts/archive-source.sh
>> @@ -26,7 +26,7 @@ sub_file="${sub_tdir}/submodule.tar"
>>   # independent of what the developer currently has initialized
>>   # in their checkout, because the build environment is completely
>>   # different to the host OS.
>> -submodules="subprojects/dtc meson ui/keycodemapdb"
>> +submodules="subprojects/dtc meson subprojects/keycodemapdb"
>>   submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
>>   sub_deinit=""
>>   
>> diff --git a/ui/keycodemapdb b/subprojects/keycodemapdb
>> similarity index 100%
>> rename from ui/keycodemapdb
>> rename to subprojects/keycodemapdb
>> diff --git a/ui/meson.build b/ui/meson.build
>> index 330369707dd7..e24d52b89941 100644
>> --- a/ui/meson.build
>> +++ b/ui/meson.build
>> @@ -162,13 +162,15 @@ keymaps = [
>>   ]
>>   
>>   if have_system or xkbcommon.found()
>> +  keycodemapdb_proj = subproject('keycodemapdb', required: true)
>> +  keymap_gen = find_program('keymap-gen', required: true)
> 
> This variable isn't used, is it ?

Hmm, no it isn't.  Do you prefer the code below and removing the 
assignment, or

     command: [python, keymap_gen.full_path(),

?  find_program is nicer, but you have to peek with 
keycodemap_proj.get_variable() anyway to reach the CSV file, so...

Paolo

>>     foreach e : keymaps
>>       output = 'input-keymap-@0@-to-@1@.c.inc'.format(e[0], e[1])
>>       genh += custom_target(output,
>>                     output: output,
>>                     capture: true,
>> -                  input: files('keycodemapdb/data/keymaps.csv'),
>> -                  command: [python, files('keycodemapdb/tools/keymap-gen'),
>> +                  input: keycodemapdb_proj.get_variable('keymaps_csv'),
>> +                  command: [python, keycodemapdb_proj.get_variable('keymap_gen'),
>>                               'code-map',
>>                               '--lang', 'glib2',
>>                               '--varname', 'qemu_input_map_@0@_to_@1@'.format(e[0], e[1]),
> 
> 
> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] meson: use subproject for keycodemapdb
  2023-05-18 13:00     ` Paolo Bonzini
@ 2023-05-18 14:01       ` Daniel P. Berrangé
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel P. Berrangé @ 2023-05-18 14:01 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel, marcandre.lureau

On Thu, May 18, 2023 at 03:00:44PM +0200, Paolo Bonzini wrote:
> On 5/18/23 14:55, Daniel P. Berrangé wrote:
> > On Thu, May 18, 2023 at 02:46:45PM +0200, Paolo Bonzini wrote:
> > > By using a subproject, our own meson.build can use variables from
> > > the subproject instead of hard-coded paths.  In the future, it may
> > > also be possible to use wrap to download the submodule.
> > > 
> > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > > ---
> > >   .gitmodules                      | 4 ++--
> > >   configure                        | 4 ++--
> > >   scripts/archive-source.sh        | 2 +-
> > >   {ui => subprojects}/keycodemapdb | 0
> > >   ui/meson.build                   | 6 ++++--
> > >   5 files changed, 9 insertions(+), 7 deletions(-)
> > >   rename {ui => subprojects}/keycodemapdb (100%)
> > > 
> > > diff --git a/.gitmodules b/.gitmodules
> > > index 3ed5d073d630..f8b2ddf3877c 100644
> > > --- a/.gitmodules
> > > +++ b/.gitmodules
> > > @@ -25,8 +25,8 @@
> > >   [submodule "roms/QemuMacDrivers"]
> > >   	path = roms/QemuMacDrivers
> > >   	url = https://gitlab.com/qemu-project/QemuMacDrivers.git
> > > -[submodule "ui/keycodemapdb"]
> > > -	path = ui/keycodemapdb
> > > +[submodule "subprojects/keycodemapdb"]
> > > +	path = subprojects/keycodemapdb
> > >   	url = https://gitlab.com/qemu-project/keycodemapdb.git
> > >   [submodule "roms/seabios-hppa"]
> > >   	path = roms/seabios-hppa
> > > diff --git a/configure b/configure
> > > index 5bbca83d9a31..2b6995e16756 100755
> > > --- a/configure
> > > +++ b/configure
> > > @@ -254,7 +254,7 @@ else
> > >       git_submodules_action="ignore"
> > >   fi
> > > -git_submodules="ui/keycodemapdb"
> > > +git_submodules="subprojects/keycodemapdb"
> > >   git="git"
> > >   debug_tcg="no"
> > >   docs="auto"
> > > @@ -806,7 +806,7 @@ case $git_submodules_action in
> > >           fi
> > >       ;;
> > >       ignore)
> > > -        if ! test -f "$source_path/ui/keycodemapdb/README"
> > > +        if ! test -f "$source_path/subprojects/keycodemapdb/README"
> > >           then
> > >               echo
> > >               echo "ERROR: missing GIT submodules"
> > > diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
> > > index b15f6fe6b8fe..a0a3153faa99 100755
> > > --- a/scripts/archive-source.sh
> > > +++ b/scripts/archive-source.sh
> > > @@ -26,7 +26,7 @@ sub_file="${sub_tdir}/submodule.tar"
> > >   # independent of what the developer currently has initialized
> > >   # in their checkout, because the build environment is completely
> > >   # different to the host OS.
> > > -submodules="subprojects/dtc meson ui/keycodemapdb"
> > > +submodules="subprojects/dtc meson subprojects/keycodemapdb"
> > >   submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
> > >   sub_deinit=""
> > > diff --git a/ui/keycodemapdb b/subprojects/keycodemapdb
> > > similarity index 100%
> > > rename from ui/keycodemapdb
> > > rename to subprojects/keycodemapdb
> > > diff --git a/ui/meson.build b/ui/meson.build
> > > index 330369707dd7..e24d52b89941 100644
> > > --- a/ui/meson.build
> > > +++ b/ui/meson.build
> > > @@ -162,13 +162,15 @@ keymaps = [
> > >   ]
> > >   if have_system or xkbcommon.found()
> > > +  keycodemapdb_proj = subproject('keycodemapdb', required: true)
> > > +  keymap_gen = find_program('keymap-gen', required: true)
> > 
> > This variable isn't used, is it ?
> 
> Hmm, no it isn't.  Do you prefer the code below and removing the assignment,
> or
> 
>     command: [python, keymap_gen.full_path(),
> 
> ?  find_program is nicer, but you have to peek with
> keycodemap_proj.get_variable() anyway to reach the CSV file, so...

I'm pretty ambivalent. If there's no functional reason to use
find_program, I guest we might as well stick with get_variable for
parity with the CSV file


With 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] 6+ messages in thread

end of thread, other threads:[~2023-05-18 14:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-18 12:46 [PATCH 0/2] meson: use subprojects for bundled projects Paolo Bonzini
2023-05-18 12:46 ` [PATCH 1/2] meson: use subproject for internal libfdt Paolo Bonzini
2023-05-18 12:46 ` [PATCH 2/2] meson: use subproject for keycodemapdb Paolo Bonzini
2023-05-18 12:55   ` Daniel P. Berrangé
2023-05-18 13:00     ` Paolo Bonzini
2023-05-18 14:01       ` Daniel P. Berrangé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).