summaryrefslogtreecommitdiffstats
path: root/Source/cmQtAutoGenerators.cxx
diff options
context:
space:
mode:
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