
Adds `Fortran_COMPILER_ID` and `Fortran_COMPILER_VERSION` generator expression support to match equivalent `C_COMPILER_ID`, `CXX_COMPILER_ID`, `C_COMPILER_VERSION`, and `CXX_COMPILER_VERSION` support. This is very helpful in the case where the C/C++ compiler suite is a different type of compiler from the platform Fortran compiler and projects use generator expressions to assign compiler flags and definitions. (e.g. `GNU` C/C++ and `SunPro` Fortran on Linux)
64 lines
1.3 KiB
C++
64 lines
1.3 KiB
C++
#ifndef TEST_DEFINE
|
|
# error Expected definition TEST_DEFINE
|
|
#endif
|
|
|
|
#ifndef NEEDS_ESCAPE
|
|
# error Expected definition NEEDS_ESCAPE
|
|
#endif
|
|
|
|
#ifdef DO_GNU_TESTS
|
|
# ifndef TEST_DEFINE_GNU
|
|
# error Expected definition TEST_DEFINE_GNU
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef NO_DEF_TESTS
|
|
# ifndef DEF_A
|
|
# error Expected definition DEF_A
|
|
# endif
|
|
|
|
# ifndef DEF_B
|
|
# error Expected definition DEF_B
|
|
# endif
|
|
|
|
# ifndef DEF_C
|
|
# error Expected definition DEF_C
|
|
# endif
|
|
|
|
# ifndef DEF_D
|
|
# error Expected definition DEF_D
|
|
# endif
|
|
|
|
# ifndef DEF_STR
|
|
# error Expected definition DEF_STR
|
|
# endif
|
|
#endif
|
|
|
|
#include <string.h>
|
|
|
|
int main()
|
|
{
|
|
return (strcmp(NEEDS_ESCAPE, "E$CAPE") == 0
|
|
#ifdef TEST_OCTOTHORPE
|
|
&& strcmp(TEST_OCTOTHORPE, "#") == 0
|
|
#endif
|
|
#ifndef NO_DEF_TESTS
|
|
&& strcmp(DEF_STR, "string with spaces") == 0
|
|
#endif
|
|
&&
|
|
strcmp(EXPECTED_C_COMPILER_VERSION, TEST_C_COMPILER_VERSION) == 0 &&
|
|
strcmp(EXPECTED_CXX_COMPILER_VERSION, TEST_CXX_COMPILER_VERSION) == 0
|
|
#ifdef TEST_FORTRAN
|
|
&& strcmp(EXPECTED_Fortran_COMPILER_VERSION,
|
|
TEST_Fortran_COMPILER_VERSION) == 0
|
|
#endif
|
|
&& TEST_C_COMPILER_VERSION_EQUALITY == 1 &&
|
|
TEST_CXX_COMPILER_VERSION_EQUALITY == 1
|
|
#ifdef TEST_FORTRAN
|
|
&& TEST_Fortran_COMPILER_VERSION_EQUALITY == 1
|
|
#endif
|
|
)
|
|
? 0
|
|
: 1;
|
|
}
|