xref: /aosp_15_r20/external/libconfig/contrib/cmake/CMakeFiles/CompilerIdC/CMakeCCompilerId.c (revision 2e9d491483b805f09ea864149eadd5680efcc72a)
1*2e9d4914SAndroid Build Coastguard Worker #ifdef __cplusplus
2*2e9d4914SAndroid Build Coastguard Worker # error "A C++ compiler has been selected for C."
3*2e9d4914SAndroid Build Coastguard Worker #endif
4*2e9d4914SAndroid Build Coastguard Worker 
5*2e9d4914SAndroid Build Coastguard Worker #if defined(__18CXX)
6*2e9d4914SAndroid Build Coastguard Worker # define ID_VOID_MAIN
7*2e9d4914SAndroid Build Coastguard Worker #endif
8*2e9d4914SAndroid Build Coastguard Worker 
9*2e9d4914SAndroid Build Coastguard Worker #if defined(__INTEL_COMPILER) || defined(__ICC)
10*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "Intel"
11*2e9d4914SAndroid Build Coastguard Worker 
12*2e9d4914SAndroid Build Coastguard Worker #elif defined(__BORLANDC__)
13*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "Borland"
14*2e9d4914SAndroid Build Coastguard Worker 
15*2e9d4914SAndroid Build Coastguard Worker #elif defined(__WATCOMC__)
16*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "Watcom"
17*2e9d4914SAndroid Build Coastguard Worker 
18*2e9d4914SAndroid Build Coastguard Worker #elif defined(__SUNPRO_C)
19*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "SunPro"
20*2e9d4914SAndroid Build Coastguard Worker 
21*2e9d4914SAndroid Build Coastguard Worker #elif defined(__HP_cc)
22*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "HP"
23*2e9d4914SAndroid Build Coastguard Worker 
24*2e9d4914SAndroid Build Coastguard Worker #elif defined(__DECC)
25*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "Compaq"
26*2e9d4914SAndroid Build Coastguard Worker 
27*2e9d4914SAndroid Build Coastguard Worker #elif defined(__IBMC__)
28*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "VisualAge"
29*2e9d4914SAndroid Build Coastguard Worker 
30*2e9d4914SAndroid Build Coastguard Worker #elif defined(__PGI)
31*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "PGI"
32*2e9d4914SAndroid Build Coastguard Worker 
33*2e9d4914SAndroid Build Coastguard Worker #elif defined(__GNUC__)
34*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "GNU"
35*2e9d4914SAndroid Build Coastguard Worker 
36*2e9d4914SAndroid Build Coastguard Worker #elif defined(_MSC_VER)
37*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "MSVC"
38*2e9d4914SAndroid Build Coastguard Worker 
39*2e9d4914SAndroid Build Coastguard Worker #elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
40*2e9d4914SAndroid Build Coastguard Worker /* Analog Devices C++ compiler for Blackfin, TigerSHARC and
41*2e9d4914SAndroid Build Coastguard Worker    SHARC (21000) DSPs */
42*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "ADSP"
43*2e9d4914SAndroid Build Coastguard Worker 
44*2e9d4914SAndroid Build Coastguard Worker /* IAR Systems compiler for embedded systems.
45*2e9d4914SAndroid Build Coastguard Worker    http://www.iar.com
46*2e9d4914SAndroid Build Coastguard Worker    Not supported yet by CMake
47*2e9d4914SAndroid Build Coastguard Worker #elif defined(__IAR_SYSTEMS_ICC__)
48*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "IAR" */
49*2e9d4914SAndroid Build Coastguard Worker 
50*2e9d4914SAndroid Build Coastguard Worker /* sdcc, the small devices C compiler for embedded systems,
51*2e9d4914SAndroid Build Coastguard Worker    http://sdcc.sourceforge.net  */
52*2e9d4914SAndroid Build Coastguard Worker #elif defined(SDCC)
53*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "SDCC"
54*2e9d4914SAndroid Build Coastguard Worker 
55*2e9d4914SAndroid Build Coastguard Worker #elif defined(_COMPILER_VERSION)
56*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "MIPSpro"
57*2e9d4914SAndroid Build Coastguard Worker 
58*2e9d4914SAndroid Build Coastguard Worker /* This compiler is either not known or is too old to define an
59*2e9d4914SAndroid Build Coastguard Worker    identification macro.  Try to identify the platform and guess that
60*2e9d4914SAndroid Build Coastguard Worker    it is the native compiler.  */
61*2e9d4914SAndroid Build Coastguard Worker #elif defined(__sgi)
62*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "MIPSpro"
63*2e9d4914SAndroid Build Coastguard Worker 
64*2e9d4914SAndroid Build Coastguard Worker #elif defined(__hpux) || defined(__hpua)
65*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID "HP"
66*2e9d4914SAndroid Build Coastguard Worker 
67*2e9d4914SAndroid Build Coastguard Worker #else /* unknown compiler */
68*2e9d4914SAndroid Build Coastguard Worker # define COMPILER_ID ""
69*2e9d4914SAndroid Build Coastguard Worker 
70*2e9d4914SAndroid Build Coastguard Worker #endif
71*2e9d4914SAndroid Build Coastguard Worker 
72*2e9d4914SAndroid Build Coastguard Worker /* Construct the string literal in pieces to prevent the source from
73*2e9d4914SAndroid Build Coastguard Worker    getting matched.  Store it in a pointer rather than an array
74*2e9d4914SAndroid Build Coastguard Worker    because some compilers will just produce instructions to fill the
75*2e9d4914SAndroid Build Coastguard Worker    array rather than assigning a pointer to a static array.  */
76*2e9d4914SAndroid Build Coastguard Worker char* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
77*2e9d4914SAndroid Build Coastguard Worker 
78*2e9d4914SAndroid Build Coastguard Worker /* Identify known platforms by name.  */
79*2e9d4914SAndroid Build Coastguard Worker #if defined(__linux) || defined(__linux__) || defined(linux)
80*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "Linux"
81*2e9d4914SAndroid Build Coastguard Worker 
82*2e9d4914SAndroid Build Coastguard Worker #elif defined(__CYGWIN__)
83*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "Cygwin"
84*2e9d4914SAndroid Build Coastguard Worker 
85*2e9d4914SAndroid Build Coastguard Worker #elif defined(__MINGW32__)
86*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "MinGW"
87*2e9d4914SAndroid Build Coastguard Worker 
88*2e9d4914SAndroid Build Coastguard Worker #elif defined(__APPLE__)
89*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "Darwin"
90*2e9d4914SAndroid Build Coastguard Worker 
91*2e9d4914SAndroid Build Coastguard Worker #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
92*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "Windows"
93*2e9d4914SAndroid Build Coastguard Worker 
94*2e9d4914SAndroid Build Coastguard Worker #elif defined(__FreeBSD__) || defined(__FreeBSD)
95*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "FreeBSD"
96*2e9d4914SAndroid Build Coastguard Worker 
97*2e9d4914SAndroid Build Coastguard Worker #elif defined(__NetBSD__) || defined(__NetBSD)
98*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "NetBSD"
99*2e9d4914SAndroid Build Coastguard Worker 
100*2e9d4914SAndroid Build Coastguard Worker #elif defined(__OpenBSD__) || defined(__OPENBSD)
101*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "OpenBSD"
102*2e9d4914SAndroid Build Coastguard Worker 
103*2e9d4914SAndroid Build Coastguard Worker #elif defined(__sun) || defined(sun)
104*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "SunOS"
105*2e9d4914SAndroid Build Coastguard Worker 
106*2e9d4914SAndroid Build Coastguard Worker #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
107*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "AIX"
108*2e9d4914SAndroid Build Coastguard Worker 
109*2e9d4914SAndroid Build Coastguard Worker #elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
110*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "IRIX"
111*2e9d4914SAndroid Build Coastguard Worker 
112*2e9d4914SAndroid Build Coastguard Worker #elif defined(__hpux) || defined(__hpux__)
113*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "HP-UX"
114*2e9d4914SAndroid Build Coastguard Worker 
115*2e9d4914SAndroid Build Coastguard Worker #elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU)
116*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "Haiku"
117*2e9d4914SAndroid Build Coastguard Worker /* Haiku also defines __BEOS__ so we must
118*2e9d4914SAndroid Build Coastguard Worker    put it prior to the check for __BEOS__
119*2e9d4914SAndroid Build Coastguard Worker */
120*2e9d4914SAndroid Build Coastguard Worker 
121*2e9d4914SAndroid Build Coastguard Worker #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
122*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "BeOS"
123*2e9d4914SAndroid Build Coastguard Worker 
124*2e9d4914SAndroid Build Coastguard Worker #elif defined(__QNX__) || defined(__QNXNTO__)
125*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "QNX"
126*2e9d4914SAndroid Build Coastguard Worker 
127*2e9d4914SAndroid Build Coastguard Worker #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
128*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "Tru64"
129*2e9d4914SAndroid Build Coastguard Worker 
130*2e9d4914SAndroid Build Coastguard Worker #elif defined(__riscos) || defined(__riscos__)
131*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "RISCos"
132*2e9d4914SAndroid Build Coastguard Worker 
133*2e9d4914SAndroid Build Coastguard Worker #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
134*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "SINIX"
135*2e9d4914SAndroid Build Coastguard Worker 
136*2e9d4914SAndroid Build Coastguard Worker #elif defined(__UNIX_SV__)
137*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "UNIX_SV"
138*2e9d4914SAndroid Build Coastguard Worker 
139*2e9d4914SAndroid Build Coastguard Worker #elif defined(__bsdos__)
140*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "BSDOS"
141*2e9d4914SAndroid Build Coastguard Worker 
142*2e9d4914SAndroid Build Coastguard Worker #elif defined(_MPRAS) || defined(MPRAS)
143*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "MP-RAS"
144*2e9d4914SAndroid Build Coastguard Worker 
145*2e9d4914SAndroid Build Coastguard Worker #elif defined(__osf) || defined(__osf__)
146*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "OSF1"
147*2e9d4914SAndroid Build Coastguard Worker 
148*2e9d4914SAndroid Build Coastguard Worker #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
149*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "SCO_SV"
150*2e9d4914SAndroid Build Coastguard Worker 
151*2e9d4914SAndroid Build Coastguard Worker #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
152*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "ULTRIX"
153*2e9d4914SAndroid Build Coastguard Worker 
154*2e9d4914SAndroid Build Coastguard Worker #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
155*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID "Xenix"
156*2e9d4914SAndroid Build Coastguard Worker 
157*2e9d4914SAndroid Build Coastguard Worker #else /* unknown platform */
158*2e9d4914SAndroid Build Coastguard Worker # define PLATFORM_ID ""
159*2e9d4914SAndroid Build Coastguard Worker 
160*2e9d4914SAndroid Build Coastguard Worker #endif
161*2e9d4914SAndroid Build Coastguard Worker 
162*2e9d4914SAndroid Build Coastguard Worker /* Construct the string literal in pieces to prevent the source from
163*2e9d4914SAndroid Build Coastguard Worker    getting matched.  Store it in a pointer rather than an array
164*2e9d4914SAndroid Build Coastguard Worker    because some compilers will just produce instructions to fill the
165*2e9d4914SAndroid Build Coastguard Worker    array rather than assigning a pointer to a static array.  */
166*2e9d4914SAndroid Build Coastguard Worker char* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
167*2e9d4914SAndroid Build Coastguard Worker 
168*2e9d4914SAndroid Build Coastguard Worker 
169*2e9d4914SAndroid Build Coastguard Worker /*--------------------------------------------------------------------------*/
170*2e9d4914SAndroid Build Coastguard Worker 
171*2e9d4914SAndroid Build Coastguard Worker #ifdef ID_VOID_MAIN
main()172*2e9d4914SAndroid Build Coastguard Worker void main() {}
173*2e9d4914SAndroid Build Coastguard Worker #else
main(int argc,char * argv[])174*2e9d4914SAndroid Build Coastguard Worker int main(int argc, char* argv[])
175*2e9d4914SAndroid Build Coastguard Worker {
176*2e9d4914SAndroid Build Coastguard Worker   int require = 0;
177*2e9d4914SAndroid Build Coastguard Worker   require += info_compiler[argc];
178*2e9d4914SAndroid Build Coastguard Worker   require += info_platform[argc];
179*2e9d4914SAndroid Build Coastguard Worker   (void)argv;
180*2e9d4914SAndroid Build Coastguard Worker   return require;
181*2e9d4914SAndroid Build Coastguard Worker }
182*2e9d4914SAndroid Build Coastguard Worker #endif
183