diff options
author | Brad King <brad.king@kitware.com> | 2008-02-25 14:23:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-02-25 14:23:14 (GMT) |
commit | 9211b0d23482c0fee8dc64171cf3524feb1ae446 (patch) | |
tree | 4b65eec4b9abab6658d2f35437d9021f8508c941 /Modules/CMakeCXXCompilerId.cpp.in | |
parent | 88bd02a5d1553d31e0d4d8ee6eef599c27abddf2 (diff) | |
download | CMake-9211b0d23482c0fee8dc64171cf3524feb1ae446.zip CMake-9211b0d23482c0fee8dc64171cf3524feb1ae446.tar.gz CMake-9211b0d23482c0fee8dc64171cf3524feb1ae446.tar.bz2 |
ENH: Improvied compiler identification robustness
- Write a single source file into the compiler id directory
- This avoid requiring the compiler to behave correctly with
respect to include rules and the current working directory
- Helps to identify cross-compiling toolchains with unusual
default behavior
Diffstat (limited to 'Modules/CMakeCXXCompilerId.cpp.in')
-rw-r--r-- | Modules/CMakeCXXCompilerId.cpp.in | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in new file mode 100644 index 0000000..7bdb5e0 --- /dev/null +++ b/Modules/CMakeCXXCompilerId.cpp.in @@ -0,0 +1,68 @@ +/* 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 + +/* Provide main() so the program can link. */ +int main() { return 0; } + +#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__) +# define COMPILER_ID "VisualAge" + +#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(_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 + +char info_compiler[] = "INFO:compiler[" COMPILER_ID "]"; + +@CMAKE_CXX_COMPILER_ID_PLATFORM_CONTENT@ |