From 7cd539b163a58f8b594e2318bdc7e7d7b1ba6577 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 18 Jun 2015 11:33:45 -0400 Subject: [PATCH] Add support for Concurrent Fortran 77 Compiler The Concurrent Fortran compiler (ccur.com) is available on Linux and can be used much like the GNU Fortran compiler. Currently it has no preprocessor symbols to identify it so we need to detect it by matching compiler output. Suggested-by: Anthony Ette --- Help/variable/CMAKE_LANG_COMPILER_ID.rst | 1 + Modules/CMakeDetermineFortranCompiler.cmake | 9 ++++++++- Modules/Compiler/CCur-Fortran.cmake | 1 + Modules/Platform/Linux-CCur-Fortran.cmake | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 Modules/Compiler/CCur-Fortran.cmake create mode 100644 Modules/Platform/Linux-CCur-Fortran.cmake diff --git a/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_ID.rst index f554f4ec4..1c3b134d0 100644 --- a/Help/variable/CMAKE_LANG_COMPILER_ID.rst +++ b/Help/variable/CMAKE_LANG_COMPILER_ID.rst @@ -11,6 +11,7 @@ include: Absoft = Absoft Fortran (absoft.com) ADSP = Analog VisualDSP++ (analog.com) AppleClang = Apple Clang (apple.com) + CCur = Concurrent Fortran (ccur.com) Clang = LLVM Clang (clang.llvm.org) Cray = Cray Compiler (cray.com) Embarcadero, Borland = Embarcadero (embarcadero.com) diff --git a/Modules/CMakeDetermineFortranCompiler.cmake b/Modules/CMakeDetermineFortranCompiler.cmake index ca68900a5..52ec25a13 100644 --- a/Modules/CMakeDetermineFortranCompiler.cmake +++ b/Modules/CMakeDetermineFortranCompiler.cmake @@ -98,7 +98,10 @@ else() # Each entry in this list is a set of extra flags to try # adding to the compile line to see if it helps produce # a valid identification executable. - set(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS_FIRST) + set(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS_FIRST + # Get verbose output to help distinguish compilers. + "-v" + ) set(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS # Try compiling to an object file only. "-c" @@ -112,6 +115,10 @@ endif() if(NOT CMAKE_Fortran_COMPILER_ID_RUN) set(CMAKE_Fortran_COMPILER_ID_RUN 1) + # Table of per-vendor compiler output regular expressions. + list(APPEND CMAKE_Fortran_COMPILER_ID_MATCH_VENDORS CCur) + set(CMAKE_Fortran_COMPILER_ID_MATCH_VENDOR_REGEX_CCur "Concurrent Fortran [0-9]+ Compiler") + # Table of per-vendor compiler id flags with expected output. list(APPEND CMAKE_Fortran_COMPILER_ID_VENDORS Compaq) set(CMAKE_Fortran_COMPILER_ID_VENDOR_FLAGS_Compaq "-what") diff --git a/Modules/Compiler/CCur-Fortran.cmake b/Modules/Compiler/CCur-Fortran.cmake new file mode 100644 index 000000000..6ec06ae11 --- /dev/null +++ b/Modules/Compiler/CCur-Fortran.cmake @@ -0,0 +1 @@ +include(Compiler/GNU-Fortran) diff --git a/Modules/Platform/Linux-CCur-Fortran.cmake b/Modules/Platform/Linux-CCur-Fortran.cmake new file mode 100644 index 000000000..ceecc2f69 --- /dev/null +++ b/Modules/Platform/Linux-CCur-Fortran.cmake @@ -0,0 +1 @@ +include(Platform/Linux-GNU-Fortran)