summaryrefslogtreecommitdiff
path: root/Source/cmGeneratedFileStream.cxx
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2007-11-16 07:01:58 -0500
committerDavid Cole <david.cole@kitware.com>2007-11-16 07:01:58 -0500
commit867de7fc670ffd67c9cb8dcffae42f87de7023ed (patch)
treefebaeb64e474158b5289f31853b20cdcb396fe43 /Source/cmGeneratedFileStream.cxx
parent0a001f1567dff13bb3441728b313b9fa7b2b1b11 (diff)
downloadcmake-867de7fc670ffd67c9cb8dcffae42f87de7023ed.tar.gz
ENH: Add ability to call Visual Studio macros from CMake. Add a CMake Visual Studio macro to reload a solution file automatically if CMake makes changes to .sln files or .vcproj files. Add code to call the macro automatically for any running Visual Studio instances with the .sln file open at the end of the Visual Studio Generate call. Only call the macro if some .sln or .vcproj file changed during Generate. Also, add handling for REG_EXPAND_SZ type to SystemTools::ReadRegistryValue - returned string has environment variable references expanded.
Diffstat (limited to 'Source/cmGeneratedFileStream.cxx')
-rw-r--r--Source/cmGeneratedFileStream.cxx14
1 files changed, 9 insertions, 5 deletions
diff --git a/Source/cmGeneratedFileStream.cxx b/Source/cmGeneratedFileStream.cxx
index 660d9d5ef7..1bd8669d26 100644
--- a/Source/cmGeneratedFileStream.cxx
+++ b/Source/cmGeneratedFileStream.cxx
@@ -90,7 +90,7 @@ cmGeneratedFileStream::Open(const char* name, bool quiet, bool binaryFlag)
}
//----------------------------------------------------------------------------
-cmGeneratedFileStream&
+bool
cmGeneratedFileStream::Close()
{
// Save whether the temporary output file is valid before closing.
@@ -100,9 +100,7 @@ cmGeneratedFileStream::Close()
this->Stream::close();
// Remove the temporary file (possibly by renaming to the real file).
- this->cmGeneratedFileStreamBase::Close();
-
- return *this;
+ return this->cmGeneratedFileStreamBase::Close();
}
//----------------------------------------------------------------------------
@@ -170,8 +168,10 @@ void cmGeneratedFileStreamBase::Open(const char* name)
}
//----------------------------------------------------------------------------
-void cmGeneratedFileStreamBase::Close()
+bool cmGeneratedFileStreamBase::Close()
{
+ bool replaced = false;
+
std::string resname = this->Name;
if ( this->Compress && this->CompressExtraExtension )
{
@@ -200,12 +200,16 @@ void cmGeneratedFileStreamBase::Close()
{
this->RenameFile(this->TempName.c_str(), resname.c_str());
}
+
+ replaced = true;
}
// Else, the destination was not replaced.
//
// Always delete the temporary file. We never want it to stay around.
cmSystemTools::RemoveFile(this->TempName.c_str());
+
+ return replaced;
}
//----------------------------------------------------------------------------