1
2export void ispcCompilerId() {
3
4// Identify the compiler
5#if defined(ISPC)
6  print("INFO:compiler[Intel]");
7#endif
8
9// Identify the platform
10#if defined(__linux) || defined(__linux__) || defined(linux)
11  print("INFO:platform[Linux]");
12#elif defined(__CYGWIN__)
13  print("INFO:platform[Cygwin]");
14#elif defined(__MINGW32__)
15  print("INFO:platform[MinGW]");
16#elif defined(__APPLE__)
17  print("INFO:platform[Darwin]");
18#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
19  print("INFO:platform[Windows]");
20#elif defined(__FreeBSD__) || defined(__FreeBSD)
21  print("INFO:platform[FreeBSD]");
22#elif defined(__NetBSD__) || defined(__NetBSD)
23  print("INFO:platform[NetBSD]");
24#elif defined(__OpenBSD__) || defined(__OPENBSD)
25  print("INFO:platform[OpenBSD]");
26#elif defined(__sun) || defined(sun)
27  print("INFO:platform[SunOS]");
28#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
29  print("INFO:platform[AIX]");
30#elif defined(__hpux) || defined(__hpux__)
31  print("INFO:platform[HP-UX]");
32#elif defined(__HAIKU__)
33  print("INFO:platform[Haiku]");
34#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
35  print("INFO:platform[BeOS]");
36#elif defined(__QNX__) || defined(__QNXNTO__)
37  print("INFO:platform[QNX]");
38#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
39  print("INFO:platform[Tru64]");
40#elif defined(__riscos) || defined(__riscos__)
41  print("INFO:platform[RISCos]");
42#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
43  print("INFO:platform[SINIX]");
44#elif defined(__UNIX_SV__)
45  print("INFO:platform[UNIX_SV]");
46#elif defined(__bsdos__)
47  print("INFO:platform[BSDOS]");
48#elif defined(_MPRAS) || defined(MPRAS)
49  print("INFO:platform[MP-RAS]");
50#elif defined(__osf) || defined(__osf__)
51  print("INFO:platform[OSF1]");
52#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
53  print("INFO:platform[SCO_SV]");
54#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
55  print("INFO:platform[ULTRIX]");
56#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
57  print("INFO:platform[Xenix]");
58#else
59  print("INFO:platform[]");
60#endif
61
62}
63