meson: perform snappy test with the C++ compiler if used
Snappy is written in C++ and as such needs to link against libstdc++. When linking statically, this means that the compile test cannot succeed unless performed with a C++ compiler. Do so if link_language is set to C++; if it is C, the test will usually fail and snappy will be disabled. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
b3af7fdf9c
commit
565174d08e
@ -197,6 +197,10 @@ add_project_arguments('-iquote', '.',
|
||||
link_language = meson.get_external_property('link_language', 'cpp')
|
||||
if link_language == 'cpp'
|
||||
add_languages('cpp', required: true, native: false)
|
||||
cxx = meson.get_compiler('cpp')
|
||||
linker = cxx
|
||||
else
|
||||
linker = cc
|
||||
endif
|
||||
if host_machine.system() == 'darwin'
|
||||
add_languages('objc', required: false, native: false)
|
||||
@ -1109,7 +1113,7 @@ if not get_option('snappy').auto() or have_system
|
||||
required: get_option('snappy'),
|
||||
kwargs: static_kwargs)
|
||||
endif
|
||||
if snappy.found() and not cc.links('''
|
||||
if snappy.found() and not linker.links('''
|
||||
#include <snappy-c.h>
|
||||
int main(void) { snappy_max_compressed_length(4096); return 0; }''', dependencies: snappy)
|
||||
snappy = not_found
|
||||
|
Loading…
Reference in New Issue
Block a user