CMake/Modules/CMakeCCompilerId.c

80 lines
1.9 KiB
C
Raw Normal View History

#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#ifdef __CLASSIC_C__
# define const
#endif
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
#elif defined(__WATCOMC__)
# define COMPILER_ID "Watcom"
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
#elif defined(__IBMC__)
# define COMPILER_ID "VisualAge"
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
2007-05-24 17:35:24 +04:00
/* IAR Systems compiler for embedded systems.
http://www.iar.com
Beside this id not supported yet by CMake */
#elif defined(__IAR_SYSTEMS_ICC__)
# define COMPILER_ID "IAR"
2007-05-24 17:35:24 +04:00
/* sdcc, the small devices C compiler for embedded systems,
http://sdcc.sourceforge.net
Beside this id not supported yet by CMake
Unfortunately this doesn't work because SDCC (and other embedded compilers
too) produce not binary files, but e.g. Intel hex files by default.
This also means it has a different suffix (.ihx) so the file isn't even
found. */
/*
2007-05-24 17:35:24 +04:00
#elif defined(SDCC)
# define COMPILER_ID "SDCC" */
2007-05-24 17:35:24 +04:00
#elif defined(_COMPILER_VERSION)
# define COMPILER_ID "MIPSpro"
/* This compiler is either not known or is too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__sgi)
# define COMPILER_ID "MIPSpro"
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
static char const info_compiler[] = "INFO:compiler[" COMPILER_ID "]";
/* Include the platform identification source. */
#include "CMakePlatformId.h"
/* Make sure the information strings are referenced. */
int main()
{
return (&info_compiler[0] != &info_platform[0]);
}