diff --git a/meson.build b/meson.build index 48fd6bb13..a2b5f0a66 100644 --- a/meson.build +++ b/meson.build @@ -90,15 +90,20 @@ if cc.get_id() != 'msvc' conf.set('WARN_UNUSED_RESULT', warn_unused_result) endif -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' # Basic usage in the cairo type system that causes spammy and useless warnings add_project_arguments('/wd4244', '/wd4146', # Don't warn about double -> float truncation '/wd4305', # Don't warn about _cairo_status -> _cairo_int_status conversion '/wd5286', + # Turn " undefined, assuming extern returning int" to an error + '/we4013', language : ['c', 'cpp']) - add_project_arguments('-D_CRT_SECURE_NO_WARNINGS', language : ['c', 'cpp']) + add_project_arguments(['-D_CRT_SECURE_NO_WARNINGS', + '-D_CRT_NONSTDC_NO_WARNINGS', + '-D_USE_MATH_DEFINES', + ], language : ['c', 'cpp']) endif add_project_arguments('-D_GNU_SOURCE', language: ['c', 'cpp']) diff --git a/perf/micro/pythagoras-tree.c b/perf/micro/pythagoras-tree.c index 9d3ca1155..6581e4ed6 100644 --- a/perf/micro/pythagoras-tree.c +++ b/perf/micro/pythagoras-tree.c @@ -24,7 +24,7 @@ */ #include "cairo-perf.h" -#define _USE_MATH_DEFINES /* for M_SQRT2 on win32 */ + #include static void diff --git a/src/cairo-compiler-private.h b/src/cairo-compiler-private.h index 1aaced394..90fd28019 100644 --- a/src/cairo-compiler-private.h +++ b/src/cairo-compiler-private.h @@ -154,20 +154,11 @@ #endif #if (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER) -#define access _access #ifndef R_OK #define R_OK 4 #endif -#define fdopen _fdopen -#define hypot _hypot #define pclose _pclose #define popen _popen -#define strdup _strdup -#define unlink _unlink -#if defined (_MSC_VER) && _MSC_VER < 1900 - #define vsnprintf _vsnprintf - #define snprintf _snprintf -#endif #endif #if defined(_MSC_VER) && defined(_M_IX86) diff --git a/src/cairoint.h b/src/cairoint.h index b18a579be..fa8f5d395 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -55,9 +55,6 @@ #include #include -#ifdef _MSC_VER -#define _USE_MATH_DEFINES -#endif #include #include #include diff --git a/test/any2ppm.c b/test/any2ppm.c index f601ec835..c0efdede1 100644 --- a/test/any2ppm.c +++ b/test/any2ppm.c @@ -87,6 +87,10 @@ #include #endif +#ifdef _WIN32 +#include +#endif + #if HAVE_UNISTD_H && HAVE_SIGNAL_H && HAVE_SYS_STAT_H && HAVE_SYS_SOCKET_H && (HAVE_POLL_H || HAVE_SYS_POLL_H) && HAVE_SYS_UN_H #include #include diff --git a/test/cairo-test.c b/test/cairo-test.c index 49dfadb15..f6e25647c 100644 --- a/test/cairo-test.c +++ b/test/cairo-test.c @@ -67,9 +67,9 @@ #ifdef _MSC_VER #include #include +#include #define F_OK 0 #define HAVE_MKDIR 1 -#define mkdir _mkdir #endif #ifndef FALSE diff --git a/test/cairo-test.h b/test/cairo-test.h index b70654654..0a36cd7a3 100644 --- a/test/cairo-test.h +++ b/test/cairo-test.h @@ -55,13 +55,7 @@ typedef unsigned __int64 uint64_t; #endif #ifdef _MSC_VER -#define _USE_MATH_DEFINES - #include -#if _MSC_VER <= 1600 -#define isnan(x) _isnan(x) -#endif - #endif #if HAVE_FENV_H diff --git a/test/pdf-tagged-text.c b/test/pdf-tagged-text.c index 094b1c8b0..5e58d2b71 100644 --- a/test/pdf-tagged-text.c +++ b/test/pdf-tagged-text.c @@ -41,6 +41,13 @@ #include #endif +#ifdef _WIN32 +#include +#include +#include +#include +#endif + #include #if CAIRO_HAS_PDF_SURFACE diff --git a/util/cairo-script/cairo-script-operators.c b/util/cairo-script/cairo-script-operators.c index b3b03457f..87bfa6b4a 100644 --- a/util/cairo-script/cairo-script-operators.c +++ b/util/cairo-script/cairo-script-operators.c @@ -46,11 +46,6 @@ #include /* mkstemp */ #include -#ifdef _MSC_VER -#define _USE_MATH_DEFINES /* for M_LN2, M_PI and M_SQRT2 on win32 */ -#define snprintf _snprintf -#endif - #include #include /* INT_MAX */ #include