diff --git a/dtool/pptempl/Global.gmsvc.pp b/dtool/pptempl/Global.gmsvc.pp index 29b3a06d88..dd1216127d 100644 --- a/dtool/pptempl/Global.gmsvc.pp +++ b/dtool/pptempl/Global.gmsvc.pp @@ -61,6 +61,7 @@ #defer CFLAGS_SHARED #defer OPTFLAGS /O2 /Ob1 /Ogity /G6 +//#defer OPTFLAGS /O2 /G6 (this is actually equivalent to above) #defer CDEFINES_OPT1 _DEBUG #defer CDEFINES_OPT2 _DEBUG @@ -96,7 +97,13 @@ #defer interrogate_ipath $[decygwin %,-I"%",$[target_ipath]] #defer interrogate_spath $[decygwin %,-S"%",$[install_parser_inc_dir]] -#defer extra_cflags /W3 /EHsc /Zm250 /DWIN32_VC /DWIN32 +#if $[TEST_INLINING] +#define WARNING_LEVEL_FLAG /W4 /DTEST_INLINING +#else +#define WARNING_LEVEL_FLAG /W3 +#endif + +#defer extra_cflags /EHsc /Zm250 /DWIN32_VC /DWIN32 $[WARNING_LEVEL_FLAG] #defer COMPILE_C cl /nologo /c /Fo"$[osfilename $[target]]" $[decygwin %,/I"%",$[ipath]] $[flags] $[extra_cflags] $[source] #defer COMPILE_C++ $[COMPILE_C] diff --git a/dtool/pptempl/Global.msvc.pp b/dtool/pptempl/Global.msvc.pp index cb05af6e13..f2cc3d08ad 100644 --- a/dtool/pptempl/Global.msvc.pp +++ b/dtool/pptempl/Global.msvc.pp @@ -104,7 +104,13 @@ #defer interrogate_ipath $[decygwin %,-I"%",$[target_ipath]] #defer interrogate_spath $[decygwin %,-S"%",$[install_parser_inc_dir]] -#defer extra_cflags /W3 /EHsc /Zm250 /DWIN32_VC /DWIN32 +#if $[TEST_INLINING] +#define WARNING_LEVEL_FLAG /W4 /DTEST_INLINING +#else +#define WARNING_LEVEL_FLAG /W3 +#endif + +#defer extra_cflags /EHsc /Zm250 /DWIN32_VC /DWIN32 $[WARNING_LEVEL_FLAG] #defer COMPILE_C cl /nologo /c /Fo"$[osfilename $[target]]" $[decygwin %,/I"%",$[ipath]] $[flags] $[extra_cflags] $[source] #defer COMPILE_C++ $[COMPILE_C] diff --git a/dtool/src/dtoolbase/dtoolbase_cc.h b/dtool/src/dtoolbase/dtoolbase_cc.h index 8d9b21083a..6e4e14d56b 100644 --- a/dtool/src/dtoolbase/dtoolbase_cc.h +++ b/dtool/src/dtoolbase/dtoolbase_cc.h @@ -51,10 +51,15 @@ using namespace std; using namespace std; #endif -#define INLINE inline #define TYPENAME typename #if defined(WIN32_VC) && !defined(LINK_ALL_STATIC) + +#ifdef TEST_INLINING +#define INLINE __forceinline +#else +#define INLINE inline +#endif // This macro must be used to export an instantiated template class // from a DLL. If the template class name itself contains commas, it // may be necessary to first define a macro for the class name, to @@ -63,6 +68,7 @@ using namespace std; exptp template class expcl classname; #else #define EXPORT_TEMPLATE_CLASS(expcl, exptp, classname) +#define INLINE inline #endif // We define the macro PUBLISHED to mark C++ methods that are to be