diff options
author | Brad King <brad.king@kitware.com> | 2005-02-04 15:06:25 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2005-02-04 15:06:25 (GMT) |
commit | 92458a17ad4f1b3a0edda8f4a4b2e057284a9549 (patch) | |
tree | 82379068663d11513f67b160314a8fe0743df38d /Modules/CMakeTestFortranCompiler.cmake | |
parent | 92f89b533fbd9b0b6e59bbe0694c85f194e7f083 (diff) | |
download | CMake-92458a17ad4f1b3a0edda8f4a4b2e057284a9549.zip CMake-92458a17ad4f1b3a0edda8f4a4b2e057284a9549.tar.gz CMake-92458a17ad4f1b3a0edda8f4a4b2e057284a9549.tar.bz2 |
ENH: Added test for Fortran90 support.
Diffstat (limited to 'Modules/CMakeTestFortranCompiler.cmake')
-rw-r--r-- | Modules/CMakeTestFortranCompiler.cmake | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/Modules/CMakeTestFortranCompiler.cmake b/Modules/CMakeTestFortranCompiler.cmake index e805d62..49c6664 100644 --- a/Modules/CMakeTestFortranCompiler.cmake +++ b/Modules/CMakeTestFortranCompiler.cmake @@ -13,6 +13,7 @@ IF(NOT CMAKE_Fortran_COMPILER_WORKS) TRY_COMPILE(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/CMakeTmp/testFortranCompiler.f OUTPUT_VARIABLE OUTPUT) + SET(FORTRAN_TEST_WAS_RUN 1) ENDIF(NOT CMAKE_Fortran_COMPILER_WORKS) IF(NOT CMAKE_Fortran_COMPILER_WORKS) @@ -25,8 +26,40 @@ IF(NOT CMAKE_Fortran_COMPILER_WORKS) "with the following output:\n ${OUTPUT}\n\n" "CMake will not be able to correctly generate this project.") ELSE(NOT CMAKE_Fortran_COMPILER_WORKS) - MESSAGE(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER} -- works") - FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeOutput.log - "Determining if the Fortran compiler works passed with " - "the following output:\n${OUTPUT}\n\n") + IF(FORTRAN_TEST_WAS_RUN) + MESSAGE(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER} -- works") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeOutput.log + "Determining if the Fortran compiler works passed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF(FORTRAN_TEST_WAS_RUN) + SET(CMAKE_Fortran_COMPILER_WORKS 1 CACHE INTERNAL "") ENDIF(NOT CMAKE_Fortran_COMPILER_WORKS) + +IF(CMAKE_Fortran_COMPILER_WORKS) + # Test for Fortran 90 support by using an f90-specific construct. + IF(DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90) + ELSE(DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90) + MESSAGE(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90") + FILE(WRITE ${CMAKE_BINARY_DIR}/CMakeTmp/testFortranCompilerF90.f90 " + PROGRAM TESTFortran90 + stop = 1 ; do while ( stop .eq. 0 ) ; end do + END PROGRAM TESTFortran90 + ") + TRY_COMPILE(CMAKE_Fortran_COMPILER_SUPPORTS_F90 ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/CMakeTmp/testFortranCompilerF90.f90 + OUTPUT_VARIABLE OUTPUT) + IF(CMAKE_Fortran_COMPILER_SUPPORTS_F90) + MESSAGE(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90 -- yes") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeOutput.log + "Determining if the Fortran compiler supports Fortran 90 passed with " + "the following output:\n${OUTPUT}\n\n") + SET(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1 CACHE INTERNAL "") + ELSE(CMAKE_Fortran_COMPILER_SUPPORTS_F90) + MESSAGE(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90 -- no") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log + "Determining if the Fortran compiler supports Fortran 90 failed with " + "the following output:\n${OUTPUT}\n\n") + SET(CMAKE_Fortran_COMPILER_SUPPORTS_F90 0 CACHE INTERNAL "") + ENDIF(CMAKE_Fortran_COMPILER_SUPPORTS_F90) + ENDIF(DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90) +ENDIF(CMAKE_Fortran_COMPILER_WORKS) |