Commit Graph

20 Commits

Author SHA1 Message Date
Brad King c6e1f46475 Fortran: Detect G95 compiler version
The __G95__ and __G95_MINOR__ preprocessor symbols encode the compiler
version as decimal digits.
2015-02-19 09:26:28 -05:00
Brad King 0033faac1d Fortran: Detect PGI compiler version
Port logic from the "Compiler/PGI-DetermineCompiler" module into
"CMakeFortranCompilerId.F.in".
2015-02-19 09:26:28 -05:00
Brad King 302d47b1fe Fortran: Detect XL and VisualAge compiler versions
Port logic from the "Compiler/XL-*-DetermineCompiler" and
"Compiler/VisualAge-*-DetermineCompiler" modules into
"CMakeFortranCompilerId.F.in".
2015-02-19 09:26:28 -05:00
Brad King 8c8b77a5de Fortran: Detect GNU compiler version
Port logic from the "Compiler/GNU-DetermineCompiler" module into
"CMakeFortranCompilerId.F.in".
2015-02-19 09:26:28 -05:00
Brad King 49562a77f7 Fortran: Detect PathScale compiler version
Port logic from the "Compiler/PathScale-DetermineCompiler" module into
"CMakeFortranCompilerId.F.in".
2015-02-19 09:26:27 -05:00
Brad King aa77b631d9 Fortran: Detect SunPro compiler version
Port logic from "Compiler/SunPro-*DetermineCompiler" modules into
"CMakeFortranCompilerId.F.in".
2015-02-19 09:26:27 -05:00
Brad King 2e09c4230f Fortran: Detect Intel compiler version
Port logic from the "Compiler/Intel-DetermineCompiler" module into
"CMakeFortranCompilerId.F.in".
2015-02-19 09:26:27 -05:00
Brad King e6ebc814df Fortran: Add infrastructure to detect compiler version (#15372)
Fortran does not offer syntax to compose a string literal at
preprocessing time from numeric compuations.  Instead encode each digit
of each component as a separate INFO string and compose them in CMake
code after extraction.  Support MAJOR, MINOR, PATCH, and TWEAK
components with up to 8 digits each.
2015-02-19 09:26:27 -05:00
Brad King d14898b6dc Intel: Fix detection of MSVC version simulated by pre-11.0 Fortran
The Intel Fortran 10 64-bit compiler incorrectly defines _MSC_VER to its
own version (1020) instead of the underlying MSVC tools version.  Since
we expect the compiler to be used only with VS >= 7 tools, assume MSVC
version 13.0 if _MSC_VER is not greater than 1300.
2013-10-18 09:55:59 -04:00
Brad King a85e17e660 Intel: When simulating MSVC, re-use Windows-MSVC (#14476)
Teach CMake(C|CXX|Fortran)CompilerId* to report the MSVC version
simulated by the Intel compiler, if any.  Refactor the Windows-Intel
platform information helper module to load Windows-MSVC instead of
duplicating the information.  Teach Windows-MSVC to understand when
it is loaded as the simulated Fortran compiler (its preprocessor is
simulated).
2013-10-18 09:55:59 -04:00
Rolf Eike Beer 3d2e6a0687 check for Haiku only with __HAIKU__ 2013-01-07 21:52:45 +01:00
Brad King ac5b999fff Add Absoft Fortran compiler id and basic flags
Identification at preprocessing time depends on definition of __ABSOFT__
to be added in service pack V11.1.2 of the compiler.
2011-05-20 08:53:36 -04:00
Brad King 58c73c43f6 Detect Fortran target architecture on Windows
Commit 4430bccc (Change the way 32/64 bit compiles are detected with
MSVC and intel, 2009-11-19) added detection of the target processor to C
and CXX language builds with MS and Intel tools.  Do the same for Intel
Fortran for Windows (ifort).  Use /machine:<arch> to link executables.
2010-12-16 09:33:06 -05:00
Brad King 53e76c8f12 Teach CMake about Cray C, C++, and Fortran compilers
The Cray Fortran compiler needs "-em" to enable module output and also
"-J." to place the .mod files in the current working directory (instead
of next to the .o file).
2010-11-12 09:12:08 -05:00
Brad King 1e9f58e605 Recognize the PathScale C/C++/Fortran compilers 2010-01-13 12:12:39 -05:00
Brad King 83816cc6ec Add support for the g95 Fortran compiler
This commit teaches CMake about the g95 compiler from

  http://www.g95.org

We use 'G95' as the compiler id string, and add some basic flags.

See issue #9241.
2009-10-23 08:25:43 -04:00
Brad King 115ecc5750 Teach compiler id about VisualAge -> XL rebranding
IBM rebranded its VisualAge compiler to XL starting at version 8.0.  We
use the compiler id "XL" for newer versions and "VisualAge" for older
versions.  We now also recognize the "z/OS" compiler, which is distinct
from XL.
2009-08-07 10:13:07 -04:00
Brad King 69e366f49b ENH: Check _SGI_COMPILER_VERSION for compiler id
Some SGI compilers define _SGI_COMPILER_VERSION in addition to the old
_COMPILER_VERSION preprocessor symbol.  It is more distinctive, so we
should check it in case the old one is ever removed.
2009-07-14 15:17:21 -04:00
Brad King eff381185a BUG: Avoid SGI preprocessor bug for Fortran Id
The SGI preprocessor /usr/lib/cpp produces bad output on this code:

  #if 1
  A
  #elif 1
  B
  #else
  C
  #endif

Both 'A' and 'C' appear in the output!  We work around the problem by
using '#elif 1' instead of '#else'.

This fixes detection of the SGI Fortran compiler id in -o32 mode.
2009-07-14 15:16:59 -04:00
Brad King ef756b96e4 ENH: Identify Fortran compilers with fixed format
This enhances the Fortran compiler id detection by using a source that
can compile either as free or fixed format.  As long as the compiler
knows it should preprocess the source file (.F) the identification can
work.  Even free-format compilers may try fixed-format parsing if the
user specifies certain flags, so we must support both.
2009-06-25 08:45:19 -04:00