Commit Graph

29 Commits

Author SHA1 Message Date
Brad King 80f0201b37 Rewrite FortranCInterface module
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.
2009-08-05 13:40:29 -04:00
Brad King f3cd1e06f5 Test C, C++, Fortran interface combinations
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.
2009-08-04 14:06:45 -04:00
Brad King 2b849a77a6 ENH: Test Fortran and C++ in one executable
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.
2009-07-27 12:43:42 -04:00
Brad King 1c98cdf224 ENH: Remove EXTRA_FORTRAN_C_LIBS Fortran test hack
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.
2009-07-27 12:43:27 -04:00
Brad King ff32962a68 ENH: Test included header in Fortran preprocessing
This extends the Fortran preprocessing test to include a header file
through a preprocessor directive.
2009-02-24 14:32:31 -05:00
Bill Hoffman 9e773f5376 ENH: fix gcc sun fortran mix 2008-11-11 14:03:14 -05:00
Bill Hoffman 9377e7122c ENH: put a check in for the gnu sunpro case 2008-11-10 10:53:36 -05:00
Bill Hoffman 49f393074c ENH: make the test pass when fortran is gnu and c is cl 2008-11-06 17:33:42 -05:00
Bill Hoffman 86b123ba27 ENH: add a way to fix bullseye link with fortran 2008-11-06 09:41:08 -05:00
Bill Hoffman 020f5ae82e ENH: only call the fortran c interface test when compilers match 2008-11-05 10:20:51 -05:00
Bill Hoffman a1f1e50143 ENH: only allow matching fortran a c compilers to be used 2008-11-03 12:15:59 -05:00
Bill Hoffman a996c16bba ENH: do not error when sunpro or mipspro fortran used 2008-10-31 16:10:34 -04:00
Bill Hoffman cecc2ab290 ENH: do not error when sunpro or mipspro fortran used 2008-10-31 16:08:56 -04:00
Bill Hoffman a07ab25e14 ENH: add some debug stuff for the dashboards 2008-10-30 17:32:40 -04:00
Bill Hoffman 84a4222314 ENH: add test for FortranCInterface 2008-10-29 10:58:40 -04:00
Ken Martin ce8810c4e7 ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
Brad King b761da39c1 ENH: Patch from Maik to add preprocessor directive handling to Fortran dependency scanning. Also added -fpp flag to Intel Fortran compiler on Windows by default. 2008-01-09 10:30:11 -05:00
Brad King b2e8c07af8 ENH: Implemented Fortran module output directory and search path flags. 2007-12-30 16:11:38 -05:00
Brad King 2da186266e BUG: Disable test of fortran module dependencies except on GNU for now. A module path feature is needed for Sun support because it uses -M instead of -I for the module search path. 2007-12-28 22:53:34 -05:00
Brad King f4fb1a4f91 ENH: Add tests of Fortran module dependencies across directories and on external modules. Tests based on cases provided by Maik in issue #5809. 2007-12-28 11:50:29 -05:00
Brad King f860026155 ENH: Added test for Fortran90 modules in subdirectories. 2007-12-15 15:36:14 -05:00
Brad King aa9ba5c3ef ENH: Added test for 'use' keyword in a comment. Patch from Maik Beckmann. See bug#5809. 2007-10-10 09:09:09 -04:00
Brad King 1c4337d778 ENH: Removed CMAKE_GENERATOR_NEW now that the old unix makefile generator is never used. 2005-04-06 15:06:08 -04:00
Brad King eb9164bf0e ENH: Added Fortran 90 test if the platform supports it. 2005-02-15 09:01:14 -05:00
Bill Hoffman 80050d9541 clean up output of test and force verbose makefiles 2004-09-27 13:03:36 -04:00
Bill Hoffman 692ba48c4e ENH: major changes to support addition of languages from cmake modules directory. 2004-09-22 14:42:05 -04:00
Bill Hoffman fca0ce545d ENH: add more output for fortran so I can figure out what is going on with other fortran compilers 2004-09-08 17:53:52 -04:00
Bill Hoffman 66a08c10e5 ENH: more uniform approach to enable language, one step closer to being able to enable a language without modifing cmake source code 2004-08-26 14:55:55 -04:00
Bill Hoffman 26a6b4bc01 ENH: initial fortran 2004-08-06 15:05:00 -04:00