CMakeCXXCompilerId.cpp COMPILER_ID "" PLATFORM_ID "" char * char* info_compiler info_compiler "INFO" ":" "compiler[" COMPILER_ID "]" char * char* info_platform info_platform "INFO" ":" "platform[" PLATFORM_ID "]" int int main () main /*Thissourcefilemusthavea.cppextensionsothatallC++compilers recognizetheextensionwithoutflags.Borlanddoesnotknow.cxxfor example.*/ #ifndef__cplusplus #error"ACcompilerhasbeenselectedforC++." #endif /*Providemain()sotheprogramcanlink.*/ intmain(){return0;} #ifdefined(__COMO__) #defineCOMPILER_ID"Comeau" #elifdefined(__INTEL_COMPILER)||defined(__ICC) #defineCOMPILER_ID"Intel" #elifdefined(__BORLANDC__) #defineCOMPILER_ID"Borland" #elifdefined(__WATCOMC__) #defineCOMPILER_ID"Watcom" #elifdefined(__SUNPRO_CC) #defineCOMPILER_ID"SunPro" #elifdefined(__HP_aCC) #defineCOMPILER_ID"HP" #elifdefined(__DECCXX) #defineCOMPILER_ID"Compaq" #elifdefined(__IBMCPP__) #defineCOMPILER_ID"VisualAge" #elifdefined(__PGI) #defineCOMPILER_ID"PGI" #elifdefined(__GNUC__) #defineCOMPILER_ID"GNU" #elifdefined(_MSC_VER) #defineCOMPILER_ID"MSVC" #elifdefined(__ADSPBLACKFIN__)||defined(__ADSPTS__)||defined(__ADSP21000__) /*AnalogDevicesC++compilerforBlackfin,TigerSHARCand SHARC(21000)DSPs*/ #defineCOMPILER_ID"ADSP" #elifdefined(_COMPILER_VERSION) #defineCOMPILER_ID"MIPSpro" /*Thiscompileriseithernotknownoristoooldtodefinean identificationmacro.Trytoidentifytheplatformandguessthat itisthenativecompiler.*/ #elifdefined(__sgi) #defineCOMPILER_ID"MIPSpro" #elifdefined(__hpux)||defined(__hpua) #defineCOMPILER_ID"HP" #else/*unknowncompiler*/ #defineCOMPILER_ID"" #endif /*Constructthestringliteralinpiecestopreventthesourcefrom gettingmatched.Storeitinapointerratherthananarray becausesomecompilerswilljustproduceinstructionstofillthe arrayratherthanassigningapointertoastaticarray.*/ char*info_compiler="INFO"":""compiler["COMPILER_ID"]"; /*Identifyknownplatformsbyname.*/ #ifdefined(__linux)||defined(__linux__)||defined(linux) #definePLATFORM_ID"Linux" #elifdefined(__CYGWIN__) #definePLATFORM_ID"Cygwin" #elifdefined(__MINGW32__) #definePLATFORM_ID"MinGW" #elifdefined(__APPLE__) #definePLATFORM_ID"Darwin" #elifdefined(_WIN32)||defined(__WIN32__)||defined(WIN32) #definePLATFORM_ID"Windows" #elifdefined(__FreeBSD__)||defined(__FreeBSD) #definePLATFORM_ID"FreeBSD" #elifdefined(__NetBSD__)||defined(__NetBSD) #definePLATFORM_ID"NetBSD" #elifdefined(__OpenBSD__)||defined(__OPENBSD) #definePLATFORM_ID"OpenBSD" #elifdefined(__sun)||defined(sun) #definePLATFORM_ID"SunOS" #elifdefined(_AIX)||defined(__AIX)||defined(__AIX__)||defined(__aix)||defined(__aix__) #definePLATFORM_ID"AIX" #elifdefined(__sgi)||defined(__sgi__)||defined(_SGI) #definePLATFORM_ID"IRIX" #elifdefined(__hpux)||defined(__hpux__) #definePLATFORM_ID"HP-UX" #elifdefined(__BeOS)||defined(__BEOS__)||defined(_BEOS) #definePLATFORM_ID"BeOS" #elifdefined(__QNX__)||defined(__QNXNTO__) #definePLATFORM_ID"QNX" #elifdefined(__tru64)||defined(_tru64)||defined(__TRU64__) #definePLATFORM_ID"Tru64" #elifdefined(__riscos)||defined(__riscos__) #definePLATFORM_ID"RISCos" #elifdefined(__sinix)||defined(__sinix__)||defined(__SINIX__) #definePLATFORM_ID"SINIX" #elifdefined(__UNIX_SV__) #definePLATFORM_ID"UNIX_SV" #elifdefined(__bsdos__) #definePLATFORM_ID"BSDOS" #elifdefined(_MPRAS)||defined(MPRAS) #definePLATFORM_ID"MP-RAS" #elifdefined(__osf)||defined(__osf__) #definePLATFORM_ID"OSF1" #elifdefined(_SCO_SV)||defined(SCO_SV)||defined(sco_sv) #definePLATFORM_ID"SCO_SV" #elifdefined(__ultrix)||defined(__ultrix__)||defined(_ULTRIX) #definePLATFORM_ID"ULTRIX" #elifdefined(__XENIX__)||defined(_XENIX)||defined(XENIX) #definePLATFORM_ID"Xenix" #else/*unknownplatform*/ #definePLATFORM_ID"" #endif /*Constructthestringliteralinpiecestopreventthesourcefrom gettingmatched.Storeitinapointerratherthananarray becausesomecompilerswilljustproduceinstructionstofillthe arrayratherthanassigningapointertoastaticarray.*/ char*info_platform="INFO"":""platform["PLATFORM_ID"]";