diff --git a/glib/makefile.msc.in b/glib/makefile.msc.in index b89edf932..cbd36be37 100644 --- a/glib/makefile.msc.in +++ b/glib/makefile.msc.in @@ -7,7 +7,7 @@ TOP = ..\.. ################################################################ -INCLUDES = -I . -I .. +INCLUDES = -FImsvc_recommended_pragmas.h -I . -I .. DEFINES = -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=\"GLib\" -DG_ENABLE_DEBUG DEPCFLAGS = -Zm400 $(INTL_CFLAGS) $(LIBICONV_CFLAGS) $(DIRENT_CFLAGS) diff --git a/glibconfig.h.win32.in b/glibconfig.h.win32.in index 69c2ab7a2..676b99b94 100644 --- a/glibconfig.h.win32.in +++ b/glibconfig.h.win32.in @@ -9,33 +9,6 @@ #include -#ifdef _MSC_VER -/* Make MSVC more pedantic, this is a recommended pragma list - * from _Win32_Programming_ by Rector and Newcomer. - */ -#pragma warning(error:4002) -#pragma warning(error:4003) -#pragma warning(1:4010) -#pragma warning(error:4013) -#pragma warning(1:4016) -#pragma warning(error:4020) -#pragma warning(error:4021) -#pragma warning(error:4027) -#pragma warning(error:4029) -#pragma warning(error:4033) -#pragma warning(error:4035) -#pragma warning(error:4045) -#pragma warning(error:4047) -#pragma warning(error:4049) -#pragma warning(error:4053) -#pragma warning(error:4071) -#pragma warning(disable:4101) -#pragma warning(error:4150) - -#pragma warning(disable:4244) /* No possible loss of data warnings */ -#pragma warning(disable:4305) /* No truncation from int to char warnings */ -#endif /* _MSC_VER */ - #include #include diff --git a/gmodule/makefile.msc.in b/gmodule/makefile.msc.in index 3d80647ad..58524a4b6 100644 --- a/gmodule/makefile.msc.in +++ b/gmodule/makefile.msc.in @@ -7,7 +7,7 @@ TOP = ..\.. ################################################################ -INCLUDES = -I .. -I . -I ..\glib +INCLUDES = -FImsvc_recommended_pragmas.h -I .. -I . -I ..\glib DEFINES = -DHAVE_CONFIG_H -DG_LOG_DOMAIN=\"GModule\" all : \ diff --git a/gthread/makefile.msc.in b/gthread/makefile.msc.in index 2d100072c..f3c691b43 100644 --- a/gthread/makefile.msc.in +++ b/gthread/makefile.msc.in @@ -9,7 +9,7 @@ TOP = ..\.. ################################################################ -INCLUDES = -I .. -I . -I ..\glib +INCLUDES = -FImsvc_recommended_pragmas.h -I .. -I . -I ..\glib DEFINES = -DHAVE_CONFIG_H -DG_LOG_DOMAIN=\"GThread\" all : \ libgthread-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll diff --git a/msvc_recommended_pragmas.h b/msvc_recommended_pragmas.h new file mode 100644 index 000000000..ee34eef4d --- /dev/null +++ b/msvc_recommended_pragmas.h @@ -0,0 +1,28 @@ +#ifndef _MSC_VER +#pragma error "This header is for Microsoft VC only." +#endif /* _MSC_VER */ + +/* Make MSVC more pedantic, this is a recommended pragma list + * from _Win32_Programming_ by Rector and Newcomer. + */ +#pragma warning(error:4002) /* too many actual parameters for macro */ +#pragma warning(error:4003) /* not enough actual parameters for macro */ +#pragma warning(1:4010) /* single-line comment contains line-continuation character */ +#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */ +#pragma warning(1:4016) /* no function return type; using int as default */ +#pragma warning(error:4020) /* too many actual parameters */ +#pragma warning(error:4021) /* too few actual parameters */ +#pragma warning(error:4027) /* function declared without formal parameter list */ +#pragma warning(error:4029) /* declared formal parameter list different from definition */ +#pragma warning(error:4033) /* 'function' must return a value */ +#pragma warning(error:4035) /* 'function' : no return value */ +#pragma warning(error:4045) /* array bounds overflow */ +#pragma warning(error:4047) /* different levels of indirection */ +#pragma warning(error:4049) /* terminating line number emission */ +#pragma warning(error:4053) /* An expression of type void was used as an operand */ +#pragma warning(error:4071) /* no function prototype given */ +#pragma warning(disable:4101) /* unreferenced local variable */ +#pragma warning(error:4150) + +#pragma warning(disable:4244) /* No possible loss of data warnings */ +#pragma warning(disable:4305) /* No truncation from int to char warnings */ diff --git a/tests/makefile.msc.in b/tests/makefile.msc.in index 872d09344..eaed071c8 100644 --- a/tests/makefile.msc.in +++ b/tests/makefile.msc.in @@ -7,7 +7,7 @@ TOP = ..\.. ################################################################ -INCLUDES = -I .. -I ..\glib -I ..\gmodule +INCLUDES = -FImsvc_recommended_pragmas.h -I .. -I ..\glib -I ..\gmodule DEFINES = -DHAVE_CONFIG_H NONAUTOMATIC_TESTS = \