Commit Graph

20 Commits

Author SHA1 Message Date
Brad King 3a666595c9 Convert CMake non-find modules to BSD License
This adds copyright/license notification blocks CMake's non-find
modules.  Most of the modules had no notices at all.  Some had notices
referring to the BSD license already.  This commit normalizes existing
notices and adds missing notices.
2009-09-28 11:46:51 -04:00
Brad King 78160cee6e Make FortranCInterface_VERIFY verbose on failure
We enable verbose build output in the try_compile of the simple project.
This makes valuable information available in the case of failure.
2009-09-01 08:52: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 14f7a043e3 Teach FortranCInterface to load outside results
We split the main detection logic into a Detect.cmake support module and
load it only when detection results are not already available.  This
allows results computed by the main project to be used in try-compile
projects without recomputing them.  The call to try_compile() need only
to pass FortranCInterface_BINARY_DIR through the CMAKE_FLAGS option.
2009-08-24 08:49:07 -04:00
Brad King f64f9940af Teach FortranCInterface to verify languages
This module requires both C and Fortran to be enabled, so error-out if
they are not.
2009-08-20 16:21:53 -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
Bill Hoffman a8b17d9e9a ENH: fix for intel module on linux 2008-10-31 07:50:28 -04:00
Bill Hoffman b7f75016a6 ENH: better output if module linkage is not found 2008-10-30 17:48:03 -04:00
Bill Hoffman 6066a3fca6 ENH: fix uppercase version so defines are not upper as well 2008-10-30 16:50:12 -04:00
Bill Hoffman c0e7bcd4ae ENH: fix check for intel windows module mangling 2008-10-29 19:49:18 -04:00
Bill Hoffman 574530c07d ENH: fix check for intel windows module mangling 2008-10-29 19:34:12 -04:00
Bill Hoffman 4dd0afd069 ENH: add check for intel windows module mangling 2008-10-29 17:40:35 -04:00
Bill Hoffman ae70a5b327 ENH: add check for intel windows module mangling 2008-10-29 17:40:05 -04:00
Bill Hoffman 5995ff36df ENH: fix upper case 2008-10-29 17:37:01 -04:00
Bill Hoffman 351ef7c187 ENH: only check for module linkage if f90 is available 2008-10-29 12:24:07 -04:00
Bill Hoffman 4cb360afd2 ENH: fix for xlf module linkage 2008-10-29 11:50:20 -04:00
Bill Hoffman 84a4222314 ENH: add test for FortranCInterface 2008-10-29 10:58:40 -04:00
Bill Hoffman 3155ff600d ENH: add support for g77 extra _ at the end of functions that have an _ in the name... 2008-10-28 19:53:54 -04:00
Bill Hoffman 2866984b4d ENH: add support for module functions 2008-10-27 21:42:41 -04:00
Bill Hoffman 3a97e4699c ENH: add fortran link discovery module 2008-10-27 15:23:14 -04:00