diff --git a/meson.build b/meson.build index d6401fb8e3..f9279c837d 100644 --- a/meson.build +++ b/meson.build @@ -1946,6 +1946,38 @@ if cc.get_id() == 'msvc' endif +# Compute flags that are built into Meson. We need these to +# substitute into Makefile.global and for pg_config. We only compute +# the flags for Unix-style compilers, since that's the only style that +# would use Makefile.global or pg_config. + +# We don't use get_option('warning_level') here, because the other +# warning levels are not useful with PostgreSQL source code. +common_builtin_flags = ['-Wall'] + +if get_option('debug') + common_builtin_flags += ['-g'] +endif + +optimization = get_option('optimization') +if optimization == '0' + common_builtin_flags += ['-O0'] +elif optimization == '1' + common_builtin_flags += ['-O1'] +elif optimization == '2' + common_builtin_flags += ['-O2'] +elif optimization == '3' + common_builtin_flags += ['-O3'] +elif optimization == 's' + common_builtin_flags += ['-Os'] +endif + +cflags_builtin = cc.get_supported_arguments(common_builtin_flags) +if llvm.found() + cxxflags_builtin = cpp.get_supported_arguments(common_builtin_flags) +endif + + ############################################################### # Atomics diff --git a/src/include/meson.build b/src/include/meson.build index a28f115d86..58b7a9c1e7 100644 --- a/src/include/meson.build +++ b/src/include/meson.build @@ -44,9 +44,9 @@ config_paths_data.set_quoted('MANDIR', dir_prefix / dir_man) var_cc = ' '.join(cc.cmd_array()) var_cpp = ' '.join(cc.cmd_array() + ['-E']) -var_cflags = ' '.join(cflags + cflags_warn + get_option('c_args')) +var_cflags = ' '.join(cflags + cflags_builtin + cflags_warn + get_option('c_args')) if llvm.found() - var_cxxflags = ' '.join(cxxflags + cxxflags_warn + get_option('cpp_args')) + var_cxxflags = ' '.join(cxxflags + cxxflags_builtin + cxxflags_warn + get_option('cpp_args')) else var_cxxflags = '' endif