1/* This source file must have a .cpp extension so that all C++ compilers 2 recognize the extension without flags. Borland does not know .cxx for 3 example. */ 4#ifndef __cplusplus 5# error "An Objective-C compiler has been selected for Objective-C++." 6#endif 7 8@CMAKE_OBJCXX_COMPILER_ID_CONTENT@ 9 10/* Construct the string literal in pieces to prevent the source from 11 getting matched. Store it in a pointer rather than an array 12 because some compilers will just produce instructions to fill the 13 array rather than assigning a pointer to a static array. */ 14char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 15#ifdef SIMULATE_ID 16char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; 17#endif 18 19#ifdef __QNXNTO__ 20char const* qnxnto = "INFO" ":" "qnxnto[]"; 21#endif 22 23@CMAKE_OBJCXX_COMPILER_ID_PLATFORM_CONTENT@ 24@CMAKE_OBJCXX_COMPILER_ID_ERROR_FOR_TEST@ 25 26#if defined(_MSC_VER) && defined(_MSVC_LANG) 27#define CXX_STD _MSVC_LANG 28#else 29#define CXX_STD __cplusplus 30#endif 31 32const char* info_language_standard_default = "INFO" ":" "standard_default[" 33#if CXX_STD > 202002L 34 "23" 35#elfif CXX_STD > 201703L 36 "20" 37#elif CXX_STD >= 201703L 38 "17" 39#elif CXX_STD >= 201402L 40 "14" 41#elif CXX_STD >= 201103L 42 "11" 43#else 44 "98" 45#endif 46"]"; 47 48const char* info_language_extensions_default = "INFO" ":" "extensions_default[" 49#if (defined(__clang__) || defined(__GNUC__)) && !defined(__STRICT_ANSI__) 50 "ON" 51#else 52 "OFF" 53#endif 54"]"; 55 56/*--------------------------------------------------------------------------*/ 57 58int main(int argc, char* argv[]) 59{ 60 int require = 0; 61 require += info_compiler[argc]; 62 require += info_platform[argc]; 63#ifdef COMPILER_VERSION_MAJOR 64 require += info_version[argc]; 65#endif 66#ifdef COMPILER_VERSION_INTERNAL 67 require += info_version_internal[argc]; 68#endif 69#ifdef SIMULATE_ID 70 require += info_simulate[argc]; 71#endif 72#ifdef SIMULATE_VERSION_MAJOR 73 require += info_simulate_version[argc]; 74#endif 75 require += info_language_standard_default[argc]; 76 require += info_language_extensions_default[argc]; 77 (void)argv; 78 return require; 79} 80