1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

cmGeneratedFileStream: Optionally use custom temporary file extension

This commit is contained in:
Brad King
2020-07-07 13:26:14 -04:00
parent 26c1271159
commit 0d3a034725
2 changed files with 21 additions and 2 deletions

View File

@@ -122,10 +122,15 @@ void cmGeneratedFileStreamBase::Open(std::string const& name)
// Create the name of the temporary file.
this->TempName = name;
#if defined(__VMS)
this->TempName += "_tmp";
this->TempName += "_";
#else
this->TempName += ".tmp";
this->TempName += ".";
#endif
if (!this->TempExt.empty()) {
this->TempName += this->TempExt;
} else {
this->TempName += "tmp";
}
// Make sure the temporary file that will be used is not present.
cmSystemTools::RemoveFile(this->TempName);
@@ -216,3 +221,8 @@ void cmGeneratedFileStream::SetName(const std::string& fname)
{
this->Name = fname;
}
void cmGeneratedFileStream::SetTempExt(std::string const& ext)
{
this->TempExt = ext;
}

View File

@@ -43,6 +43,9 @@ protected:
// The name of the final destination file for the output.
std::string Name;
// The extension of the temporary file.
std::string TempExt;
// The name of the temporary file.
std::string TempName;
@@ -138,6 +141,12 @@ public:
* the output file to be changed during the use of cmGeneratedFileStream.
*/
void SetName(const std::string& fname);
/**
* Set set a custom temporary file extension used with 'Open'.
* This does not work if the file was opened by the constructor.
*/
void SetTempExt(std::string const& ext);
};
#endif