diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 9ea72a4bb..982b9649f 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -55,6 +55,11 @@ SET(SRCS cmDepends.cxx cmDependsC.h cmDependsC.cxx + cmDependsFortran.h + cmDependsFortran.cxx + cmDependsFortranLexer.c + cmDependsFortranParser.h + cmDependsFortranParser.c ) diff --git a/Source/cmLocalUnixMakefileGenerator2.cxx b/Source/cmLocalUnixMakefileGenerator2.cxx index 23a2e2708..cfd61bfb7 100644 --- a/Source/cmLocalUnixMakefileGenerator2.cxx +++ b/Source/cmLocalUnixMakefileGenerator2.cxx @@ -17,12 +17,18 @@ #include "cmLocalUnixMakefileGenerator2.h" #include "cmDepends.h" -#include "cmDependsC.h" #include "cmGeneratedFileStream.h" #include "cmGlobalGenerator.h" #include "cmMakefile.h" #include "cmSourceFile.h" +// Include dependency scanners for supported languages. Only the +// C/C++ scanner is needed for bootstrapping CMake. +#include "cmDependsC.h" +#ifdef CMAKE_BUILD_WITH_CMAKE +# include "cmDependsFortran.h" +#endif + #include // auto_ptr #include @@ -2696,6 +2702,12 @@ cmLocalUnixMakefileGenerator2::GetDependsChecker(const std::string& lang, { return new cmDependsC(dir, objFile); } +#ifdef CMAKE_BUILD_WITH_CMAKE + else if(lang == "Fortran") + { + return new cmDependsFortran(dir, objFile); + } +#endif return 0; } @@ -2735,6 +2747,14 @@ cmLocalUnixMakefileGenerator2 scanner.Write(); return true; } +#ifdef CMAKE_BUILD_WITH_CMAKE + else if(lang == "Fortran") + { + cmDependsFortran scanner(".", objFile, srcFile, includes); + scanner.Write(); + return true; + } +#endif return false; }