| #ifdef __cplusplus |
| # error "A C++ compiler has been selected for C." |
| #endif |
| |
| #if defined(__18CXX) |
| # define ID_VOID_MAIN |
| #endif |
| |
| #if defined(__INTEL_COMPILER) || defined(__ICC) |
| # define COMPILER_ID "Intel" |
| |
| #elif defined(__clang__) |
| # define COMPILER_ID "Clang" |
| |
| #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__) |
| # if defined(__COMPILER_VER__) |
| # define COMPILER_ID "zOS" |
| # elif __IBMC__ >= 800 |
| # define COMPILER_ID "XL" |
| # else |
| # define COMPILER_ID "VisualAge" |
| # endif |
| |
| #elif defined(__PGI) |
| # define COMPILER_ID "PGI" |
| |
| #elif defined(__PATHSCALE__) |
| # define COMPILER_ID "PathScale" |
| |
| #elif defined(_CRAYC) |
| # define COMPILER_ID "Cray" |
| |
| #elif defined(__TI_COMPILER_VERSION__) |
| # define COMPILER_ID "TI_DSP" |
| |
| #elif defined(__SCO_VERSION__) |
| # define COMPILER_ID "SCO" |
| |
| #elif defined(__GNUC__) |
| # define COMPILER_ID "GNU" |
| |
| #elif defined(_MSC_VER) |
| # define COMPILER_ID "MSVC" |
| |
| #elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) |
| /* Analog Devices C++ compiler for Blackfin, TigerSHARC and |
| SHARC (21000) DSPs */ |
| # define COMPILER_ID "ADSP" |
| |
| /* IAR Systems compiler for embedded systems. |
| http://www.iar.com |
| Not supported yet by CMake |
| #elif defined(__IAR_SYSTEMS_ICC__) |
| # define COMPILER_ID "IAR" */ |
| |
| /* sdcc, the small devices C compiler for embedded systems, |
| http://sdcc.sourceforge.net */ |
| #elif defined(SDCC) |
| # define COMPILER_ID "SDCC" |
| |
| #elif defined(_SGI_COMPILER_VERSION) || 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 |
| |
| /* Construct the string literal in pieces to prevent the source from |
| getting matched. Store it in a pointer rather than an array |
| because some compilers will just produce instructions to fill the |
| array rather than assigning a pointer to a static array. */ |
| char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; |
| |
| @CMAKE_C_COMPILER_ID_PLATFORM_CONTENT@ |
| |
| /*--------------------------------------------------------------------------*/ |
| |
| #ifdef ID_VOID_MAIN |
| void main() {} |
| #else |
| int main(int argc, char* argv[]) |
| { |
| int require = 0; |
| require += info_compiler[argc]; |
| require += info_platform[argc]; |
| require += info_arch[argc]; |
| (void)argv; |
| return require; |
| } |
| #endif |