summaryrefslogtreecommitdiffstats
path: root/meson.build
diff options
context:
space:
mode:
authorPaolo Bonzini2020-09-23 11:26:17 +0200
committerPaolo Bonzini2020-10-06 08:34:49 +0200
commit47b30835e48d9bc061cbf0bd606a4925303971a4 (patch)
treefdbdf2e8b65fc784f3e2630eb2de7e23a807a4b5 /meson.build
parentconfigure: do not clobber environment CFLAGS/CXXFLAGS/LDFLAGS (diff)
downloadqemu-47b30835e48d9bc061cbf0bd606a4925303971a4.tar.gz
qemu-47b30835e48d9bc061cbf0bd606a4925303971a4.tar.xz
qemu-47b30835e48d9bc061cbf0bd606a4925303971a4.zip
configure: consistently pass CFLAGS/CXXFLAGS/LDFLAGS to meson
Environment variables like CFLAGS are easy to accidentally change. Meson warns if that happens, but in a project with a lot of configuration that is easy to lose. It is also surprising behavior since meson caches -D options and remembers those on reconfiguration (which we rely on, since configure options become -D options). By placing the user-provided CFLAGS, CXXFLAGS and LDFLAGS in the cross file, we at least get consistent behavior. These environment variables are still ugly and not really recommended, but there are distros that rely on them. For the gory details, refer to https://github.com/mesonbuild/meson/issues/4664. Tested-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20200923092617.1593722-5-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build14
1 files changed, 12 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index 8904f7d79b..17c89c87c6 100644
--- a/meson.build
+++ b/meson.build
@@ -1771,8 +1771,18 @@ if targetos == 'darwin'
summary_info += {'Objective-C compiler': meson.get_compiler('objc').cmd_array()[0]}
endif
summary_info += {'ARFLAGS': config_host['ARFLAGS']}
-summary_info += {'CFLAGS': '-O' + get_option('optimization')
- + (get_option('debug') ? ' -g' : '')}
+summary_info += {'CFLAGS': ' '.join(get_option('c_args')
+ + ['-O' + get_option('optimization')]
+ + (get_option('debug') ? ['-g'] : []))}
+if link_language == 'cpp'
+ summary_info += {'CXXFLAGS': ' '.join(get_option('cpp_args')
+ + ['-O' + get_option('optimization')]
+ + (get_option('debug') ? ['-g'] : []))}
+endif
+link_args = get_option(link_language + '_link_args')
+if link_args.length() > 0
+ summary_info += {'LDFLAGS': ' '.join(link_args)}
+endif
summary_info += {'QEMU_CFLAGS': config_host['QEMU_CFLAGS']}
summary_info += {'QEMU_LDFLAGS': config_host['QEMU_LDFLAGS']}
summary_info += {'make': config_host['MAKE']}