From 565174d08ed34a849f8420f0d9c97d08be3835aa Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 4 Nov 2021 14:35:14 +0100 Subject: [PATCH] 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 --- meson.build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 47df10afc2..6bfed294d0 100644 --- a/meson.build +++ b/meson.build @@ -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 int main(void) { snappy_max_compressed_length(4096); return 0; }''', dependencies: snappy) snappy = not_found