This is confusing and makes it more difficult to test for the "real" MSVC,
test for __INTELC__ explicitly wherever needed instead.
Also document __INTELC__ in our list of compilers.
Closes #15359.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74888
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
@itemdef{__EVC4__, Embedded Visual C++ 4 (can be only used for building wxWinCE)}
@itemdef{__GNUG__, Gnu C++ on any platform, see also wxCHECK_GCC_VERSION}
@itemdef{__GNUWIN32__, Gnu-Win32 compiler, see also wxCHECK_W32API_VERSION}
+@itemdef{__INTELC__, Intel C++ compiler}
@itemdef{__MINGW32__, Either MinGW32 or MinGW-w64 in either 32 or 64 bits}
@itemdef{__MINGW32_TOOLCHAIN, MinGW32 only (32 bits only right now)}
@itemdef{__MINGW64__, MinGW-w64 in 64 bit builds}
/* -------------------------------------------------------------------------- */
/* VC++ and BC++ starting with 5.2 have TCHAR support */
-#ifdef __VISUALC__
+#if defined(__VISUALC__) || (defined(__WINDOWS__) && defined(__INTELC__))
#define wxHAVE_TCHAR_SUPPORT
#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x520)
#define wxHAVE_TCHAR_SUPPORT
Compiler detection and related helpers.
*/
-/*
- Notice that Intel compiler can be used as Microsoft Visual C++ add-on and
- so we should define both __INTELC__ and __VISUALC__ for it.
- */
#ifdef __INTEL_COMPILER
# define __INTELC__
-#endif
-
-#if defined(_MSC_VER)
+#elif defined(_MSC_VER)
/*
define another standard symbol for Microsoft Visual C++: the standard
one (_MSC_VER) is also defined by some other compilers.
#endif
#endif
-#if defined(__VISUALC__) && !defined(__WXWINCE__)
+#if (defined(__VISUALC__) && !defined(__WXWINCE__)) || (defined(__WINDOWS__) && defined (__INTELC__))
typedef _off_t off_t;
#elif defined(__SYMANTEC__)
typedef long off_t;
#define wxStructStat struct _stat
#elif (defined(__WINDOWS__) || defined(__OS2__)) && \
( \
- defined(__VISUALC__) || \
+ (defined(__VISUALC__) || (defined(__WINDOWS__) && defined (__INTELC__))) || \
defined(__MINGW64__) || \
(defined(__MINGW32__) && !defined(__WINE__) && \
wxCHECK_W32API_VERSION(0, 5)) || \
#undef wxHAS_HUGE_STDIO_FILES
// detect compilers which have support for huge files
- #if defined(__VISUALC__)
+ #if (defined(__VISUALC__) || (defined(__WINDOWS__) && defined (__INTELC__)))
#define wxHAS_HUGE_FILES 1
#elif defined(__MINGW32__) || defined(__MINGW64__)
- #define wxHAS_HUGE_FILES 1
+ #define wxHAS_HUGE_FILES 1f
#elif defined(_LARGE_FILES)
#define wxHAS_HUGE_FILES 1
#endif
#define wxSeek lseek
#define wxFsync fsync
#define wxEof eof
-
#define wxCRT_MkDir mkdir
#define wxCRT_RmDir rmdir
#ifndef __WX_SETUP_H__
// For non-configure builds assume vsscanf is available, if not Visual C or DMC
-#if !defined (__VISUALC__) && !defined (__DMC__)
+#if !defined (__VISUALC__) && !(defined(__WINDOWS__) && defined(__INTELC__)) && !defined (__DMC__)
#define HAVE_VSSCANF 1
#endif
#endif
/* Almost all compilers have strdup(), but VC++ and MinGW call it _strdup().
And it's not available in MinGW strict ANSI mode nor under Windows CE. */
-#if (defined(__VISUALC__) && __VISUALC__ >= 1400)
+#if (defined(__VISUALC__) && __VISUALC__ >= 1400) || (defined(__VISUAC__) && defined (__INTELC__))
#define wxCRT_StrdupA _strdup
#elif defined(__MINGW32__)
#ifndef __WX_STRICT_ANSI_GCC__
bool wxRemoveFile(const wxString& file)
{
#if defined(__VISUALC__) \
+ || (defined(__WINDOWS__) && defined(__INTELC__)) \
|| defined(__BORLANDC__) \
|| defined(__WATCOMC__) \
|| defined(__DMC__) \