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) 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