mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-29 02:19:18 -05:00
ENH: Allow blocking of writing into the source tree
This commit is contained in:
@@ -102,6 +102,13 @@ bool cmFileCommand::HandleWriteCommand(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());
|
||||
|
||||
@@ -279,6 +286,14 @@ bool cmFileCommand::HandleMakeDirectoryCommand(
|
||||
expr += "/" + *i;
|
||||
cdir = &expr;
|
||||
}
|
||||
if ( !this->Makefile->CanIWriteThisFile(cdir->c_str()) )
|
||||
{
|
||||
std::string e = "attempted to create a directory: " + *cdir
|
||||
+ " into a source directory.";
|
||||
this->SetError(e.c_str());
|
||||
cmSystemTools::SetFatalErrorOccured();
|
||||
return false;
|
||||
}
|
||||
if ( !cmSystemTools::MakeDirectory(cdir->c_str()) )
|
||||
{
|
||||
std::string error = "problem creating directory: " + *cdir;
|
||||
|
||||
Reference in New Issue
Block a user