summaryrefslogtreecommitdiffstats
path: root/Tests/Fortran
Commit message (Collapse)AuthorAgeFilesLines
* Fix and simplify Fortran test compiler compatibility checkBrad King2011-12-151-10/+2
| | | | | | | | | | | | | | | | | Since commit 38aab379 (Set CMAKE_<lang>_COMPILER_ID for VS generators, 2011-09-02) the VS IDE generators set the C and C++ compiler id to MSVC and the Fortran compiler id to Intel. This caused the Fortran test to fail compatible compiler detection because the if() test "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC" is evaluated as the "var MATCHES regex" signature which evaluates the compiler id "MSVC" as a variable which is defined to 1 which does not match "MSVC". Combine tests for non-identical but compatible compiler vendors into a single regex match whose left hand side will not be defined as a variable.
* Fortran: Add support for free- and fixed-form flagsBrad King2011-08-311-0/+2
| | | | | | | Define a "Fortran_FORMAT" target and source file property. Initialize the target property from a "CMAKE_Fortran_FORMAT" variable. Interpret values "FIXED" and "FREE" to indicate the source file format. Append corresponding flags to the compiler command line.
* Merge topic 'absoft-fortran-compiler'Brad King2011-05-241-1/+4
|\ | | | | | | | | | | | | 8bd3e51 Absoft: Enable FortranCInterface check in Fortran test d7b376b Absoft: Detect implicit link libraries on Linux and Mac ac5b999 Add Absoft Fortran compiler id and basic flags
| * Absoft: Enable FortranCInterface check in Fortran testBrad King2011-05-201-1/+4
| | | | | | | | | | Exclude module symbol mangling because Absoft mangles with ".in." so the symbols cannot be referenced from C.
* | Fix Fortran test .def file symbol manglingBrad King2011-02-233-1/+14
|/ | | | | | | | | Commit 6a61a8a5 (Honor module .def files with MinGW tools, 2011-02-21) enabled use of .def files with GNU tools on Windows. Previously the Fortran tests's world.def file was used only for the Intel Fortran Compiler on Windows and contained the symbol name mangled for that compiler. Instead choose a .def file that names the symbol with proper mangling for the compiler in use.
* Skip Fortran module mangling test on PathScaleBrad King2010-01-251-1/+1
| | | | | | We disable this test because PathScale Fortran mangles module symbols as "MYSUB.in.MYMODULE" so we cannot interface with it from C. We already did this for SunPro and MIPSpro.
* Fix escapes in Fortran depend.make entriesBrad King2010-01-042-4/+11
| | | | | | | Makefile dependencies must be escaped using cmLocalGenerator::Convert with the cmLocalGenerator::MAKEFILE option. This fixes Fortran module dependencies with spaces in the path. We test the fix by adding a space to one of the module paths in the Fortran test.
* Skip SHARED lib Fortran test with XL and old GNUBrad King2009-10-261-1/+15
| | | | | | | | | | The commit "Test all target types in Fortran" enabled a SHARED library in the Fortran test. However, we do not yet implement support for shared libraries with XL Fortran (it seems this requires using the C compiler to link). Furthermore, the old g77 2.97 from Red Hat does not support shared libs on Itanium because the g2c lib is not -fPIC. For now we just disable SHARED libs in the test for these tools.
* Fix Intel and MinGW Fortran DLL import librariesBrad King2009-10-262-1/+3
| | | | | | | | | We add Intel and MinGW Fortran linker options to create the import library portion of a DLL. This allows other binaries to link to a Fortran DLL. We also update the Fortran test to use a .def file to specify exports since there is no __declspec(dllexport) markup syntax in Fortran.
* Test all target types in FortranBrad King2009-10-234-3/+19
| | | | | This teaches the Fortran test to try all basic target types (archive, shared lib, exe) with Fortran-only sources.
* Fortran test: Match config for external projectBrad King2009-10-051-0/+3
| | | | | | | In the Fortran test we use a custom command to build another Fortran project internally. The project provides a Fortran module and library to which to link. This commit teaches the test to build the extra project using the same build configuration as the main project.
* Enable C and C++ first in Fortran testBrad King2009-09-091-1/+1
| | | | | | CMake now looks for a Fortran compiler matching any C or C++ compiler already enabled. We test this by enabling C and C++ first in the Fortran test, which is what user projects will likely do.
* Enforce FortranCInterface_VERIFY in Fortran testBrad King2009-08-241-2/+2
| | | | | This removes the QUIET option from FortranCInterface_VERIFY in the Fortran test to really test the detected interface everywhere.
* Create FortranCInterface_VERIFY functionBrad King2009-08-241-0/+2
| | | | | | | This function builds a simple test project using a combination of Fortran and C (and optionally C++) to verify that the compilers are compatible. The idea is to help projects report very early to users that the compilers specified cannot mix languages.
* Rewrite FortranCInterface moduleBrad King2009-08-052-36/+38
| | | | | | | | | | | | | | | | | | | | This is a new FortranCInterface.cmake module to replace the previous prototype. All module support files lie in a FortranCInterface directory next to it. This module uses a new approach to detect Fortran symbol mangling. We build a single test project which defines symbols in a Fortran library (one per object-file) and calls them from a Fortran executable. The executable links to a C library which defines symbols encoding all known manglings (one per object-file). The C library falls back to the Fortran library for symbols it cannot provide. Therefore the executable will always link, but prefers the C-implemented symbols when they match. These symbols store string literals of the form INFO:symbol[<name>] so we can parse them out of the executable. This module also provides a simpler interface. It always detects the mangling as soon as it is included. A single macro is provided to generate mangling macros and optionally pre-mangled symbols.
* Test C, C++, Fortran interface combinationsBrad King2009-08-046-11/+35
| | | | | | | | | Previously the Fortran test created a single executable containing C, C++, and Fortran sources. This commit divides the executable into three libraries corresponding to each language, and two executables testing Fortran/C only and Fortran/C/C++ together. The result tests more combinations of using the languages together, and that language requirements propagate through linking.
* ENH: Test Fortran and C++ in one executableBrad King2009-07-273-3/+9
| | | | | | | This extends the Fortran-to-C interface test to add a C++ source file. The executable can only link with the C++ linker and with the proper Fortran runtime libraries. These libraries should be detected by CMake automatically, so this tests verifies the detection functionality.
* ENH: Remove EXTRA_FORTRAN_C_LIBS Fortran test hackBrad King2009-07-271-5/+0
| | | | | | | This hack was created to help the Fortran test executables link to the implicit C libraries added by BullsEye. Now that implicit libraries from all languages are detected and included automatically the hack is no longer needed.
* ENH: Require language libs in Fortran/C testBrad King2009-07-271-0/+1
| | | | | | This extends the Fortran/C interface test to require that the executable link to the fortran language runtime libraries. We must verify that the proper linker is chosen.
* ENH: Test included header in Fortran preprocessingBrad King2009-02-243-5/+7
| | | | | This extends the Fortran preprocessing test to include a header file through a preprocessor directive.
* ENH: fix gcc sun fortran mixBill Hoffman2008-11-111-2/+5
|
* ENH: put a check in for the gnu sunpro caseBill Hoffman2008-11-101-0/+5
|
* ENH: make the test pass when fortran is gnu and c is clBill Hoffman2008-11-061-34/+44
|
* ENH: add a way to fix bullseye link with fortranBill Hoffman2008-11-061-0/+5
|
* ENH: only call the fortran c interface test when compilers matchBill Hoffman2008-11-051-47/+63
|
* ENH: only allow matching fortran a c compilers to be usedBill Hoffman2008-11-031-2/+11
|
* ENH: do not error when sunpro or mipspro fortran usedBill Hoffman2008-10-311-1/+1
|
* ENH: do not error when sunpro or mipspro fortran usedBill Hoffman2008-10-311-2/+13
|
* ENH: add some debug stuff for the dashboardsBill Hoffman2008-10-301-0/+28
|
* ENH: add test for FortranCInterfaceBill Hoffman2008-10-294-1/+40
|
* BUG: Fix Fortran test to use more portable comment syntax in fixed format ↵Brad King2008-03-281-3/+3
| | | | source.
* ENH: preclean some warningsKen Martin2008-03-251-0/+1
|
* ENH: Patch from Maik to add preprocessor directive handling to Fortran ↵Brad King2008-01-092-0/+58
| | | | dependency scanning. Also added -fpp flag to Intel Fortran compiler on Windows by default.
* ENH: Implemented Fortran module output directory and search path flags.Brad King2007-12-303-4/+17
|
* BUG: Disable test of fortran module dependencies except on GNU for now. A ↵Brad King2007-12-291-1/+8
| | | | module path feature is needed for Sun support because it uses -M instead of -I for the module search path.
* ENH: Add tests of Fortran module dependencies across directories and on ↵Brad King2007-12-285-0/+54
| | | | external modules. Tests based on cases provided by Maik in issue #5809.
* ENH: Added test for Fortran90 modules in subdirectories.Brad King2007-12-155-0/+12
|
* ENH: Added test for 'use' keyword in a comment. Patch from Maik Beckmann. ↵Brad King2007-10-105-0/+39
| | | | See bug#5809.
* ENH: Removed CMAKE_GENERATOR_NEW now that the old unix makefile generator is ↵Brad King2005-04-061-2/+2
| | | | never used.
* ENH: Added Fortran 90 test if the platform supports it.Brad King2005-02-154-0/+26
|
* clean up output of test and force verbose makefilesBill Hoffman2004-09-271-5/+1
|
* ENH: major changes to support addition of languages from cmake modules ↵Bill Hoffman2004-09-221-1/+1
| | | | directory.
* ENH: add more output for fortran so I can figure out what is going on with ↵Bill Hoffman2004-09-081-0/+10
| | | | other fortran compilers
* ENH: more uniform approach to enable language, one step closer to being able ↵Bill Hoffman2004-08-261-1/+1
| | | | to enable a language without modifing cmake source code
* ENH: initial fortranBill Hoffman2004-08-062-0/+8