On Sat, Oct 3, 2020 at 3:50 PM Paolo Bonzini <pbonz...@redhat.com> wrote: > > On 03/10/20 09:24, 罗勇刚(Yonggang Luo) wrote: > > > > > > On Fri, Oct 2, 2020 at 9:11 PM Peter Maydell <peter.mayd...@linaro.org > > <mailto:peter.mayd...@linaro.org>> wrote: > >> > >> On Fri, 2 Oct 2020 at 14:05, Paolo Bonzini <pbonz...@redhat.com > > <mailto:pbonz...@redhat.com>> wrote: > >> > > >> > On 02/10/20 14:35, Peter Maydell wrote: > >> > > > >> > > It would be better to do the "see if a static library is present" > >> > > test. This isn't too hard to do in configure (compare that > >> > > six line fix to the detection of libgio). Hopefully it is > >> > > not too hard to do in meson ? > >> > > >> > Yes, something like: > >> > > >> > if enable_static > >> > skeleton = 'int main(void) { return 0; }' > >> > if not cc.links(skeleton, dependencies: libudev) > >> > if get_option('mpath').enabled() > >> > error('Cannot link with libudev') > >> > else > >> > warning('Cannot link with libudev, disabling') > >> > libudev = not_found > >> > endif > >> > endif > >> > endif > >> > endif > >> > >> This duplicates the information that the thing that depends > >> on libudev is mpath. Can we put this in a wrapper around > >> dependency() so that we could just say something like > >> libudev = compile_checked_dependency('libudev', > >> required: get_option('mpath').enabled(), > >> static: enable_static) > >> > > Hi Bonzini, > > This looks like a frequently used function, can we upstrem to meson? > > Yes, I think adding a "links" argument to dependency (similar to > find_library's has_headers argument) makes sense. That would be written > > dependency('libudev', > required: get_option('mpath').enabled(), > static: enable_static, > links: skeleton) make sense, may also need extra cflags and link flags. > > But anyway that shouldn't be a blocker for more improvements to qemu's > meson.build. Now that we have 5-10 dependencies converted we have a > clearer idea of how to abstract the tests. > > Paolo >
-- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo