summaryrefslogtreecommitdiffstats
path: root/Source/cmWriteFileCommand.cxx
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2006-03-22 19:40:36 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2006-03-22 19:40:36 (GMT)
commitee1975570e60e472e467733a840c30c583fb95cc (patch)
tree1f066070f5314a7f4cc9d1e7977d1b464ad4b999 /Source/cmWriteFileCommand.cxx
parent10efe3b079caf5237e01d31b09f7947c77c7458f (diff)
downloadCMake-ee1975570e60e472e467733a840c30c583fb95cc.zip
CMake-ee1975570e60e472e467733a840c30c583fb95cc.tar.gz
CMake-ee1975570e60e472e467733a840c30c583fb95cc.tar.bz2
ENH: Allow blocking of writing into the source tree
Diffstat (limited to 'Source/cmWriteFileCommand.cxx')
-rw-r--r--Source/cmWriteFileCommand.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/cmWriteFileCommand.cxx b/Source/cmWriteFileCommand.cxx
index 6cbde0a..8798abb 100644
--- a/Source/cmWriteFileCommand.cxx
+++ b/Source/cmWriteFileCommand.cxx
@@ -45,6 +45,16 @@ bool cmWriteFileCommand::InitialPass(std::vector<std::string> const& args)
message += *i;
}
}
+
+ if ( !this->Makefile->CanIWriteThisFile(fileName.c_str()) )
+ {
+ std::string e = "attempted to write a file: " + fileName
+ + " into a source directory.";
+ this->SetError(e.c_str());
+ cmSystemTools::SetFatalErrorOccured();
+ return false;
+ }
+
std::string dir = cmSystemTools::GetFilenamePath(fileName);
cmSystemTools::MakeDirectory(dir.c_str());