On Fri, Jun 18, 2021 at 06:09:55PM +0200, Paolo Bonzini wrote: > On 18/06/21 06:53, Gerd Hoffmann wrote: > > +def find_command(src, target, compile_commands): > > + for command in compile_commands: > > + if command['file'] != src: > > + continue > > + if target != '' and command['command'].find(target) == -1: > > + continue > > > Did you look into using extract_objects for this instead of looking for the > target (which works, but yuck :))?
ninja: error: 'libui-curses.a.p/meson-generated_.._config-host.h.o', needed by 'ui-curses.modinfo.test', missing and no known rule to make it Hmm, not sure where this comes from. meson doesn't try to link config-host.h.o into libui-curses.a, so why does extract_all_objects() return it? Test patch (incremental to this series) below. take care, Gerd >From 5453683429d7b08b959e2cd63ee00fdccfb0c7b7 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kra...@redhat.com> Date: Mon, 21 Jun 2021 14:45:14 +0200 Subject: [PATCH] [wip] extract_all_objects experiments --- meson.build | 7 +++++++ scripts/modinfo-test.sh | 8 ++++++++ 2 files changed, 15 insertions(+) create mode 100755 scripts/modinfo-test.sh diff --git a/meson.build b/meson.build index 03bacca7cddb..8e7ccccf176c 100644 --- a/meson.build +++ b/meson.build @@ -2042,6 +2042,7 @@ target_modules += { 'accel' : { 'qtest': qtest_module_ss, modinfo_collect = find_program('scripts/modinfo-collect.py') modinfo_generate = find_program('scripts/modinfo-generate.py') +modinfo_test = find_program('scripts/modinfo-test.sh') modinfo_files = [] block_mods = [] @@ -2063,6 +2064,12 @@ foreach d, list : modules input: module_ss.sources(), capture: true, command: [modinfo_collect, '@INPUT@']) + custom_target(d + '-' + m + '.modinfo.test', + output: d + '-' + m + '.modinfo.test', + input: sl.extract_all_objects(recursive: true), + capture: true, + build_by_default: true, # to be removed when added to a target + command: [modinfo_test, '@INPUT@']) endif else if d == 'block' diff --git a/scripts/modinfo-test.sh b/scripts/modinfo-test.sh new file mode 100755 index 000000000000..979c9cc9aeef --- /dev/null +++ b/scripts/modinfo-test.sh @@ -0,0 +1,8 @@ +#!/bin/sh +if test "$1" = "--target"; then + echo "# target $2" + shift;shift +fi +for item in "$@"; do + echo "# input $item" +done -- 2.31.1