Browse Source

*** empty log message ***

David Rose 25 years ago
parent
commit
711bc10e32
2 changed files with 18 additions and 1 deletions
  1. 1 0
      ppremake/ppDependableFile.cxx
  2. 17 1
      ppremake/ppMain.cxx

+ 1 - 0
ppremake/ppDependableFile.cxx

@@ -239,6 +239,7 @@ get_dependency(int n) {
 void PPDependableFile::
 get_complete_dependencies(vector<PPDependableFile *> &files) {
   set<PPDependableFile *> files_set;
+  get_complete_dependencies(files_set);
 
   copy(files_set.begin(), files_set.end(), back_inserter(files));
   sort(files.begin(), files.end(), SortDependableFilesByName());

+ 17 - 1
ppremake/ppMain.cxx

@@ -172,6 +172,14 @@ process_all() {
 ////////////////////////////////////////////////////////////////////
 bool PPMain::
 process(const string &dirname) {
+  string cache_filename = _def_scope->expand_variable("DEPENDENCY_CACHE_FILENAME");
+
+  if (cache_filename.empty()) {
+    cerr << "Warning: no definition given for $[DEPENDENCY_CACHE_FILENAME].\n";
+  } else {
+    _tree.read_file_dependencies(cache_filename);
+  }
+
   PPDirectory *dir = _tree.find_dirname(dirname);
   if (dir == (PPDirectory *)NULL) {
     cerr << "Unknown directory: " << dirname << "\n";
@@ -183,7 +191,15 @@ process(const string &dirname) {
     return false;
   }
 
-  return p_process(dir);
+  if (!p_process(dir)) {
+    return false;
+  }
+
+  if (!cache_filename.empty()) {
+    _tree.update_file_dependencies(cache_filename);
+  }
+
+  return true;
 }
 
 ////////////////////////////////////////////////////////////////////