The VMS posix path emulation does not handle multiple '.' characters in file names in all cases. This avoids adding extra '.'s to file and directory names for target directories and generated files.
@@ -150,7 +150,11 @@ void cmGeneratedFileStreamBase::Open(const char* name)
// Create the name of the temporary file.
this->TempName = name;
+#if defined(__VMS)
+ this->TempName += "_tmp";
+#else
this->TempName += ".tmp";
+#endif
// Make sure the temporary file that will be used is not present.
cmSystemTools::RemoveFile(this->TempName.c_str());
@@ -2158,7 +2158,11 @@ cmLocalUnixMakefileGenerator3
{
std::string dir = cmake::GetCMakeFilesDirectoryPostSlash();
dir += target.GetName();
+ dir += "_dir";
dir += ".dir";
return dir;
}
@@ -930,7 +930,11 @@ std::string cmTarget::GetSupportDirectory() const
dir += cmake::GetCMakeFilesDirectory();
dir += "/";
dir += this->Name;