Skip to content
  • Brad King's avatar
    Rewrite FortranCInterface module · 80f0201b
    Brad King authored
    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.
    80f0201b