Browse Source

Merge topic 'fix_vs10_custom_command_rulefiles'

9d406cd Fix for bug #11927, external project git clone step always runs vs10.
Brad King 14 years ago
parent
commit
45adc8e8c1
1 changed files with 11 additions and 0 deletions
  1. 11 0
      Source/cmVisualStudio10TargetGenerator.cxx

+ 11 - 0
Source/cmVisualStudio10TargetGenerator.cxx

@@ -351,6 +351,9 @@ cmVisualStudio10TargetGenerator::WriteCustomRule(cmSourceFile* source,
     {
     if(!cmSystemTools::FileExists(sourcePath.c_str()))
       {
+      // Make sure the path exists for the file
+      std::string path = cmSystemTools::GetFilenamePath(sourcePath);
+      cmSystemTools::MakeDirectory(path.c_str());
       std::ofstream fout(sourcePath.c_str());
       if(fout)
         {
@@ -358,6 +361,14 @@ cmVisualStudio10TargetGenerator::WriteCustomRule(cmSourceFile* source,
         fout.flush();
         fout.close();
         }
+      else
+        {
+        std::string error = "Could not create file: [";
+        error +=  sourcePath;
+        error += "]  ";
+        cmSystemTools::Error
+          (error.c_str(), cmSystemTools::GetLastSystemError().c_str());
+        }
       }
     }
   cmLocalVisualStudio7Generator* lg = this->LocalGenerator;