mirror of
https://github.com/reactos/CMake.git
synced 2024-11-29 14:30:27 +00:00
115ecc5750
IBM rebranded its VisualAge compiler to XL starting at version 8.0. We use the compiler id "XL" for newer versions and "VisualAge" for older versions. We now also recognize the "z/OS" compiler, which is distinct from XL.
87 lines
2.2 KiB
C++
87 lines
2.2 KiB
C++
/* This source file must have a .cpp extension so that all C++ compilers
|
|
recognize the extension without flags. Borland does not know .cxx for
|
|
example. */
|
|
#ifndef __cplusplus
|
|
# error "A C compiler has been selected for C++."
|
|
#endif
|
|
|
|
#if defined(__COMO__)
|
|
# define COMPILER_ID "Comeau"
|
|
|
|
#elif 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_CC)
|
|
# define COMPILER_ID "SunPro"
|
|
|
|
#elif defined(__HP_aCC)
|
|
# define COMPILER_ID "HP"
|
|
|
|
#elif defined(__DECCXX)
|
|
# define COMPILER_ID "Compaq"
|
|
|
|
#elif defined(__IBMCPP__)
|
|
# if defined(__COMPILER_VER__)
|
|
# define COMPILER_ID "zOS"
|
|
# elif __IBMCPP__ >= 800
|
|
# define COMPILER_ID "XL"
|
|
# else
|
|
# define COMPILER_ID "VisualAge"
|
|
# endif
|
|
|
|
#elif defined(__PGI)
|
|
# define COMPILER_ID "PGI"
|
|
|
|
#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"
|
|
|
|
#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* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
|
|
|
@CMAKE_CXX_COMPILER_ID_PLATFORM_CONTENT@
|
|
|
|
/*--------------------------------------------------------------------------*/
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
int require = 0;
|
|
require += info_compiler[argc];
|
|
require += info_platform[argc];
|
|
(void)argv;
|
|
return require;
|
|
}
|