From e3e9fb633a3c8df6a34d2e0f6ee9262e3594a690 Mon Sep 17 00:00:00 2001
From: Andy Cedilnik <andy.cedilnik@kitware.com>
Date: Thu, 24 Oct 2002 10:58:25 -0400
Subject: [PATCH] Subdirs reports an error if the subdirectory does not exists

---
 Source/cmSubdirCommand.cxx | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/Source/cmSubdirCommand.cxx b/Source/cmSubdirCommand.cxx
index 7651c2a91a..10bb916085 100644
--- a/Source/cmSubdirCommand.cxx
+++ b/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;
 }
 
-- 
GitLab