| set(src "@CMAKE_CURRENT_SOURCE_DIR@/FortranC") |
| set(bld "@CMAKE_CURRENT_BINARY_DIR@/FortranC/Flags") |
| |
| # Create wrapper scripts for the compilers that check for expected |
| # flags, remove them, and invoke the real compiler. |
| set(ID "CC") |
| set(COMMAND "@CMAKE_C_COMPILER@") |
| configure_file("${src}/test_opt.sh.in" "${bld}/cc.sh" @ONLY) |
| set(ID "FC") |
| set(COMMAND "@CMAKE_Fortran_COMPILER@") |
| configure_file("${src}/test_opt.sh.in" "${bld}/fc.sh" @ONLY) |
| set(ID) |
| set(COMMAND) |
| |
| execute_process( |
| WORKING_DIRECTORY "${bld}" |
| COMMAND ${CMAKE_COMMAND} "${src}" -G "@CMAKE_GENERATOR@" |
| -A "@CMAKE_GENERATOR_PLATFORM@" |
| -T "@CMAKE_GENERATOR_TOOLSET@" |
| "-DFortranC_TEST_FLAGS=1" |
| "-DCMAKE_C_COMPILER=${bld}/cc.sh" |
| "-DCMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@" |
| "-DCMAKE_Fortran_COMPILER=${bld}/fc.sh" |
| "-DCMAKE_Fortran_FLAGS:STRING=@CMAKE_Fortran_FLAGS@" |
| RESULT_VARIABLE result |
| ) |
| |
| if(NOT "${result}" STREQUAL "0") |
| message(FATAL_ERROR "Configuration failed: ${result}") |
| endif() |