mirror of
https://github.com/reactos/CMake.git
synced 2024-12-05 10:16:50 +00:00
9d285600d4
This will allow sharing of the logic of the order to test compilers in and the preprocessor macros used to do that and to determine the version components.
45 lines
1.3 KiB
C++
45 lines
1.3 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
|
|
|
|
@CMAKE_CXX_COMPILER_ID_CONTENT@
|
|
|
|
/* 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 const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
|
#ifdef SIMULATE_ID
|
|
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|
#endif
|
|
|
|
#ifdef __QNXNTO__
|
|
char const* qnxnto = "INFO" ":" "qnxnto";
|
|
#endif
|
|
|
|
@CMAKE_CXX_COMPILER_ID_PLATFORM_CONTENT@
|
|
@CMAKE_CXX_COMPILER_ID_ERROR_FOR_TEST@
|
|
|
|
/*--------------------------------------------------------------------------*/
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
int require = 0;
|
|
require += info_compiler[argc];
|
|
require += info_platform[argc];
|
|
#ifdef COMPILER_VERSION_MAJOR
|
|
require += info_version[argc];
|
|
#endif
|
|
#ifdef SIMULATE_ID
|
|
require += info_simulate[argc];
|
|
#endif
|
|
#ifdef SIMULATE_VERSION_MAJOR
|
|
require += info_simulate_version[argc];
|
|
#endif
|
|
(void)argv;
|
|
return require;
|
|
}
|