build: Force-include msvc_recommended_pragmas.h on Visual Studio

By doing so, we essentially cover the various compiler flags that we
want to use for non-Visual Studio builds to check for warnings that
might cause real concern.

This also skips the checks for the various GCC-isque CFlag checks that
are scattered in the various build files on Visual Studio builds, since
they are essentially meaningless on Visual Studio builds.
This commit is contained in:
Chun-wei Fan 2019-04-30 16:07:39 +08:00
parent 6747ec55dd
commit 1a19f05a0e
2 changed files with 50 additions and 31 deletions

View File

@ -29,6 +29,9 @@ cmph_deps = [
cc.find_library('m', required: false), cc.find_library('m', required: false),
] ]
custom_c_args = []
if cc.get_id() != 'msvc'
custom_c_args = cc.get_supported_arguments([ custom_c_args = cc.get_supported_arguments([
'-Wno-implicit-fallthrough', '-Wno-implicit-fallthrough',
'-Wno-old-style-definition', '-Wno-old-style-definition',
@ -40,6 +43,8 @@ custom_c_args = cc.get_supported_arguments([
'-Wno-unused-function', '-Wno-unused-function',
'-Wno-return-type', '-Wno-return-type',
]) ])
endif
cmph = static_library('cmph', cmph = static_library('cmph',
sources: cmph_sources, sources: cmph_sources,
c_args: gi_hidden_visibility_cflags + custom_c_args, c_args: gi_hidden_visibility_cflags + custom_c_args,
@ -51,10 +56,13 @@ cmph_dep = declare_dependency(
include_directories: include_directories('.'), include_directories: include_directories('.'),
) )
if cc.get_id() != 'msvc'
custom_c_args = cc.get_supported_arguments([ custom_c_args = cc.get_supported_arguments([
'-Wno-old-style-definition', '-Wno-old-style-definition',
'-Wno-type-limits', '-Wno-type-limits',
]) ])
endif
cmph_test = executable('cmph-bdz-test', '../cmph-bdz-test.c', cmph_test = executable('cmph-bdz-test', '../cmph-bdz-test.c',
dependencies: [ dependencies: [
cmph_dep, cmph_dep,

View File

@ -1,9 +1,14 @@
subdir('cmph') subdir('cmph')
custom_c_args = []
if cc.get_id() != 'msvc'
custom_c_args = cc.get_supported_arguments([ custom_c_args = cc.get_supported_arguments([
'-Wno-old-style-definition', '-Wno-old-style-definition',
'-Wno-cast-align', '-Wno-cast-align',
]) ])
endif
girepo_gthash_lib = static_library('girepository-gthash', girepo_gthash_lib = static_library('girepository-gthash',
sources: 'gthash.c', sources: 'gthash.c',
include_directories : configinc, include_directories : configinc,
@ -21,11 +26,14 @@ girepo_gthash_dep = declare_dependency(
include_directories: include_directories('.'), include_directories: include_directories('.'),
) )
if cc.get_id() != 'msvc'
custom_c_args = cc.get_supported_arguments([ custom_c_args = cc.get_supported_arguments([
'-Wno-unused-parameter', '-Wno-unused-parameter',
'-Wno-duplicated-branches', '-Wno-duplicated-branches',
'-Wno-cast-align', '-Wno-cast-align',
]) ])
endif
girepo_internals_lib = static_library('girepository-internals', girepo_internals_lib = static_library('girepository-internals',
sources: [ sources: [
'girmodule.c', 'girmodule.c',
@ -145,6 +153,7 @@ girepo_gir_sources = files(
install_headers(girepo_headers, subdir: 'gobject-introspection-1.0') install_headers(girepo_headers, subdir: 'gobject-introspection-1.0')
if cc.get_id() != 'msvc'
custom_c_args = cc.get_supported_arguments([ custom_c_args = cc.get_supported_arguments([
'-Wno-unused-parameter', '-Wno-unused-parameter',
'-Wno-duplicated-branches', '-Wno-duplicated-branches',
@ -152,6 +161,8 @@ custom_c_args = cc.get_supported_arguments([
'-Wno-cast-align', '-Wno-cast-align',
'-Wno-missing-field-initializers', '-Wno-missing-field-initializers',
]) ])
endif
girepo_lib = shared_library('girepository-1.0', girepo_lib = shared_library('girepository-1.0',
sources: girepo_sources, sources: girepo_sources,
include_directories : configinc, include_directories : configinc,