|
|
@@ -36,7 +36,7 @@ cmGeneratorExpressionEvaluationFile::cmGeneratorExpressionEvaluationFile(
|
|
|
//----------------------------------------------------------------------------
|
|
|
void cmGeneratorExpressionEvaluationFile::Generate(const std::string& config,
|
|
|
cmCompiledGeneratorExpression* inputExpression,
|
|
|
- std::map<std::string, std::string> &outputFiles)
|
|
|
+ std::map<std::string, std::string> &outputFiles, mode_t perm)
|
|
|
{
|
|
|
std::string rawCondition = this->Condition->GetInput();
|
|
|
if (!rawCondition.empty())
|
|
|
@@ -83,11 +83,16 @@ void cmGeneratorExpressionEvaluationFile::Generate(const std::string& config,
|
|
|
cmGeneratedFileStream fout(outputFileName.c_str());
|
|
|
fout.SetCopyIfDifferent(true);
|
|
|
fout << outputContent;
|
|
|
+ if (fout.Close() && perm)
|
|
|
+ {
|
|
|
+ cmSystemTools::SetPermissions(outputFileName.c_str(), perm);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
void cmGeneratorExpressionEvaluationFile::Generate()
|
|
|
{
|
|
|
+ mode_t perm = 0;
|
|
|
std::string inputContent;
|
|
|
if (this->InputIsContent)
|
|
|
{
|
|
|
@@ -95,6 +100,7 @@ void cmGeneratorExpressionEvaluationFile::Generate()
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ cmSystemTools::GetPermissions(this->Input.c_str(), perm);
|
|
|
cmsys::ifstream fin(this->Input.c_str());
|
|
|
if(!fin)
|
|
|
{
|
|
|
@@ -131,7 +137,7 @@ void cmGeneratorExpressionEvaluationFile::Generate()
|
|
|
for(std::vector<std::string>::const_iterator li = allConfigs.begin();
|
|
|
li != allConfigs.end(); ++li)
|
|
|
{
|
|
|
- this->Generate(*li, inputExpression.get(), outputFiles);
|
|
|
+ this->Generate(*li, inputExpression.get(), outputFiles, perm);
|
|
|
if(cmSystemTools::GetFatalErrorOccured())
|
|
|
{
|
|
|
return;
|