瀏覽代碼

ENH: Added hook into Fortran dependency scanner.

Brad King 21 年之前
父節點
當前提交
a81a8263a5
共有 2 個文件被更改,包括 26 次插入1 次删除
  1. 5 0
      Source/CMakeLists.txt
  2. 21 1
      Source/cmLocalUnixMakefileGenerator2.cxx

+ 5 - 0
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
   )
 
 

+ 21 - 1
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 <memory> // auto_ptr
 #include <queue>
 
@@ -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;
 }