Commit Graph

38 Commits

Author SHA1 Message Date
Brad King 7b10ec686f Skip SHARED lib Fortran test with XL and old GNU
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.
2009-10-26 11:32:19 -04:00
Brad King 707d05e936 Fix Intel and MinGW Fortran DLL import libraries
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.
2009-10-26 11:07:27 -04:00
Brad King eb3d02e351 Test all target types in Fortran
This teaches the Fortran test to try all basic target types (archive,
shared lib, exe) with Fortran-only sources.
2009-10-23 08:24:51 -04:00
Brad King d4342e8ae7 Fortran test: Match config for external project
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.
2009-10-05 16:51:11 -04:00
Brad King 14b12d0355 Enable C and C++ first in Fortran test
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.
2009-09-09 16:39:53 -04:00
Brad King 6e7020b452 Enforce FortranCInterface_VERIFY in Fortran test
This removes the QUIET option from FortranCInterface_VERIFY in the
Fortran test to really test the detected interface everywhere.
2009-08-24 13:07:43 -04:00
Brad King a9be85da2e Create FortranCInterface_VERIFY function
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.
2009-08-24 08:49:35 -04:00
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 38d1ff59da ENH: Require language libs in Fortran/C test
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.
2009-07-27 11:56:09 -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
Brad King 71d292d087 BUG: Fix Fortran test to use more portable comment syntax in fixed format source. 2008-03-28 14:04:52 -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