-// check if to use precompiled headers
-#if (defined(__BORLANDC__) || defined(_MSC_VER) || defined(__WATCOMC__) || defined(__GNUWIN32__)) && defined(__WXMSW__)
-#if !NOPCH
-#define WX_PRECOMP
-#endif
+// compiler detection; includes setup.h
+#include "wx/defs.h"
+
+// check if to use precompiled headers: do it for most Windows compilers unless
+// explicitly disabled by defining NOPCH
+#if ((defined(__BORLANDC__) || defined(__VISUALC__) || defined(__DIGITALMARS__) || defined(__WATCOMC__)) && defined(__WXMSW__)) || defined(__VISAGECPP__) || defined(__MWERKS__)
+ #if !defined(NOPCH)
+ #define WX_PRECOMP
+ #endif