Просмотр исходного кода

Subdirs reports an error if the subdirectory does not exists

Andy Cedilnik 23 лет назад
Родитель
Сommit
e3e9fb633a
1 измененных файлов с 15 добавлено и 2 удалено
  1. 15 2
      Source/cmSubdirCommand.cxx

+ 15 - 2
Source/cmSubdirCommand.cxx

@@ -26,12 +26,25 @@ bool cmSubdirCommand::InitialPass(std::vector<std::string> const& argsIn)
     }
   std::vector<std::string> args;
   cmSystemTools::ExpandListArguments(argsIn, args);
+  bool res = true;
 
   for(std::vector<std::string>::const_iterator i = args.begin();
       i != args.end(); ++i)
     {
-    m_Makefile->AddSubDirectory(i->c_str());
+    std::string directory = std::string(m_Makefile->GetCurrentDirectory()) + 
+      "/" + i->c_str();
+    if ( cmSystemTools::FileIsDirectory(directory.c_str()) )
+      {
+      m_Makefile->AddSubDirectory(i->c_str());
+      }
+    else
+      {
+      std::string error = "Incorrect SUBDIRS command. Directory: ";
+      error += directory + " does not exists.";
+      this->SetError(error.c_str());   
+      res = false;
+      }
     }
-  return true;
+  return res;
 }