Browse Source

ERR: Added automatic creation of directory for cable_config.xml file and corresponding error reporting.

Brad King 25 years ago
parent
commit
60507258c7
2 changed files with 13 additions and 2 deletions
  1. 9 2
      Source/cmCableCommand.cxx
  2. 4 0
      Source/cmCableData.cxx

+ 9 - 2
Source/cmCableCommand.cxx

@@ -64,11 +64,18 @@ void cmCableCommand::SetupCableData()
     if(m_CableData)
       { return; }
     }
-  
+
+  // We must make sure the output directory exists so that the CABLE
+  // configuration file can be opened by the cmCableData.
+  std::string pathName = m_Makefile->GetStartOutputDirectory();
+  if(!cmSystemTools::MakeDirectory(pathName.c_str()))
+    {
+    cmSystemTools::Error("Unable to make directory ", pathName.c_str());
+    }
+
   // We didn't find another cmCableCommand with a valid cmCableData.
   // We must allocate the new cmCableData ourselves, and with this
   // command as its owner.
-  std::string pathName = m_Makefile->GetStartOutputDirectory();
   pathName += "/cable_config.xml";
   m_CableData = new cmCableData(this, pathName);
 }

+ 4 - 0
Source/cmCableData.cxx

@@ -59,6 +59,10 @@ void cmCableData::OpenOutputFile(const std::string& name)
     {
     this->WriteConfigurationHeader();
     }
+  else
+    {
+    cmSystemTools::Error("Unable to open CABLE config file: ", name.c_str());
+    }
 }