summaryrefslogtreecommitdiffstats
path: root/Source/cmQtAutoGenerators.cxx
diff options
context:
space:
mode:
authorSebastian Holtermann <sebholt@xwmw.org>2017-04-22 11:36:35 (GMT)
committerSebastian Holtermann <sebholt@xwmw.org>2017-04-22 12:01:18 (GMT)
commit65290169f277a5759226929cf457f45610f89d92 (patch)
treee68f1bcde3beddf8b599c1ae1f6332f20b15fed3 /Source/cmQtAutoGenerators.cxx
parent344a6d8448d16e2d28a318e4809ea0ff2a544c0d (diff)
downloadCMake-65290169f277a5759226929cf457f45610f89d92.zip
CMake-65290169f277a5759226929cf457f45610f89d92.tar.gz
CMake-65290169f277a5759226929cf457f45610f89d92.tar.bz2
Autogen: Add FileDiffers and FileWrite methods
Diffstat (limited to 'Source/cmQtAutoGenerators.cxx')
-rw-r--r--Source/cmQtAutoGenerators.cxx43
1 files changed, 43 insertions, 0 deletions
diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index a42db11..e907779 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -1856,6 +1856,49 @@ bool cmQtAutoGenerators::MakeParentDirectory(const char* logPrefix,
return success;
}
+bool cmQtAutoGenerators::FileDiffers(const std::string& filename,
+ const std::string& content)
+{
+ bool differs = true;
+ {
+ std::string oldContents;
+ if (ReadAll(oldContents, filename)) {
+ differs = (oldContents != content);
+ }
+ }
+ return differs;
+}
+
+bool cmQtAutoGenerators::FileWrite(const char* logPrefix,
+ const std::string& filename,
+ const std::string& content)
+{
+ std::string error;
+ // Make sure the parent directory exists
+ if (this->MakeParentDirectory(logPrefix, filename)) {
+ cmsys::ofstream outfile;
+ outfile.open(filename.c_str(), std::ios::trunc);
+ if (outfile) {
+ outfile << content;
+ // Check for write errors
+ if (!outfile.good()) {
+ error = logPrefix;
+ error += ": Error writing ";
+ error += Quoted(filename);
+ }
+ } else {
+ error = logPrefix;
+ error = ": Error opening ";
+ error += Quoted(filename);
+ }
+ }
+ if (!error.empty()) {
+ this->LogError(error);
+ return false;
+ }
+ return true;
+}
+
/**
* @brief Runs a command and returns true on success
* @return True on success