diff options
Diffstat (limited to 'src/engine/SCons/Tool/link.py')
-rw-r--r-- | src/engine/SCons/Tool/link.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/engine/SCons/Tool/link.py b/src/engine/SCons/Tool/link.py index b60aa87..866df08 100644 --- a/src/engine/SCons/Tool/link.py +++ b/src/engine/SCons/Tool/link.py @@ -36,11 +36,21 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import SCons.Defaults import SCons.Tool import SCons.Util +import SCons.Errors + +from SCons.Tool.FortranCommon import isfortran cplusplus = __import__('c++', globals(), locals(), []) def smart_link(source, target, env, for_signature): - if cplusplus.iscplusplus(source): + has_cplusplus = cplusplus.iscplusplus(source) + has_fortran = isfortran(env, source) + if has_cplusplus and has_fortran: + raise SCons.Errors.InternalError( + "Sorry, scons cannot yet link c++ and fortran code together.") + elif has_fortran: + return '$FORTRAN' + elif has_cplusplus: return '$CXX' return '$CC' |