summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2022-05-23 18:56:50 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2022-05-23 18:56:50 +0800
commit063a96f64843de2106ad3bc62c243f5ced86674e (patch)
tree1775aec55aed4537934f11313dbdc3af03a9f4f4
parentfb8038cf5684cad822cac1d5ad653789df5f90f9 (diff)
downloadsigc++-063a96f64843de2106ad3bc62c243f5ced86674e.tar.gz
Meson: Compensate for the lack of msvc_recommended_pragmas.h
libsigc++ does not depend on GLib, so msvc_recommended_pragmas.h may not be available. If it isn't, disable warning C4244 to compensate for it.
-rw-r--r--meson.build11
1 files changed, 10 insertions, 1 deletions
diff --git a/meson.build b/meson.build
index 96088c8..755d08b 100644
--- a/meson.build
+++ b/meson.build
@@ -184,7 +184,16 @@ add_project_arguments(warning_flags, language: 'cpp')
# MSVC: Ignore warnings that aren't really harmful, but make those
# that should not be overlooked stand out.
if is_msvc
- foreach wd : ['/FImsvc_recommended_pragmas.h', '/EHsc', '/wd4267']
+ # Turn off harmless warnings but make potentially dangerous ones glaring,
+ # distributed with GLib, if available
+ use_recommended_pragmas = cpp_compiler.get_supported_arguments('/FImsvc_recommended_pragmas.h')
+ if use_recommended_pragmas.length() > 0
+ add_project_arguments(use_recommended_pragmas, language: 'cpp')
+ else
+ disabled_warning = cpp_compiler.get_supported_arguments(['/wd4244'])
+ add_project_arguments(disabled_warning, language: 'cpp')
+ endif
+ foreach wd : ['/EHsc', '/wd4267']
disabled_warning = cpp_compiler.get_supported_arguments(wd)
add_project_arguments(disabled_warning, language: 'cpp')
endforeach