diff options
author | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2015-07-16 19:53:57 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-03-23 15:18:16 (GMT) |
commit | 51465da1ec9e519c69240ebb810df3fce4c1292e (patch) | |
tree | 692cc8ffd0109905541fdf6a34848dcde33db452 /Source/CPack/IFW | |
parent | 754485afff2b0dcf6ba16af8b65d08d1fcf75702 (diff) | |
download | CMake-51465da1ec9e519c69240ebb810df3fce4c1292e.zip CMake-51465da1ec9e519c69240ebb810df3fce4c1292e.tar.gz CMake-51465da1ec9e519c69240ebb810df3fce4c1292e.tar.bz2 |
CPack/IFW: port to cmXMLWriter
Diffstat (limited to 'Source/CPack/IFW')
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWGenerator.cxx | 15 | ||||
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWGenerator.h | 5 | ||||
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWInstaller.cxx | 89 | ||||
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWInstaller.h | 4 | ||||
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWPackage.cxx | 67 | ||||
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWPackage.h | 4 |
6 files changed, 81 insertions, 103 deletions
diff --git a/Source/CPack/IFW/cmCPackIFWGenerator.cxx b/Source/CPack/IFW/cmCPackIFWGenerator.cxx index 4eb23c1..50ac971 100644 --- a/Source/CPack/IFW/cmCPackIFWGenerator.cxx +++ b/Source/CPack/IFW/cmCPackIFWGenerator.cxx @@ -27,7 +27,7 @@ #include <cmSystemTools.h> #include <cmMakefile.h> #include <cmGeneratedFileStream.h> -#include <cmXMLSafe.h> +#include <cmXMLWriter.h> #include <cmVersionConfig.h> #include <cmTimestamp.h> @@ -611,18 +611,19 @@ cmCPackIFWPackage* cmCPackIFWGenerator::GetComponentPackage( } //---------------------------------------------------------------------------- -void cmCPackIFWGenerator::WriteGeneratedByToStrim(cmGeneratedFileStream &xout) +void cmCPackIFWGenerator::WriteGeneratedByToStrim(cmXMLWriter &xout) { - xout << "<!-- Generated by CPack " << CMake_VERSION << " IFW generator " + std::stringstream comment; + comment << "Generated by CPack " << CMake_VERSION << " IFW generator " << "for QtIFW "; if(IsVersionLess("2.0")) { - xout << "less 2.0"; + comment << "less 2.0"; } else { - xout << FrameworkVersion; + comment << FrameworkVersion; } - xout << " tools at " << cmTimestamp().CurrentTime("", true) << " -->" - << std::endl; + comment << " tools at " << cmTimestamp().CurrentTime("", true); + xout.Comment(comment.str().c_str()); } diff --git a/Source/CPack/IFW/cmCPackIFWGenerator.h b/Source/CPack/IFW/cmCPackIFWGenerator.h index 3246861..5770451 100644 --- a/Source/CPack/IFW/cmCPackIFWGenerator.h +++ b/Source/CPack/IFW/cmCPackIFWGenerator.h @@ -13,12 +13,13 @@ #ifndef cmCPackIFWGenerator_h #define cmCPackIFWGenerator_h -#include <cmGeneratedFileStream.h> #include <CPack/cmCPackGenerator.h> #include "cmCPackIFWPackage.h" #include "cmCPackIFWInstaller.h" +class cmXMLWriter; + /** \class cmCPackIFWGenerator * \brief A generator for Qt Installer Framework tools * @@ -121,7 +122,7 @@ protected: // Methods cmCPackIFWPackage* GetGroupPackage(cmCPackComponentGroup *group) const; cmCPackIFWPackage* GetComponentPackage(cmCPackComponent *component) const; - void WriteGeneratedByToStrim(cmGeneratedFileStream& xout); + void WriteGeneratedByToStrim(cmXMLWriter& xout); protected: // Data diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.cxx b/Source/CPack/IFW/cmCPackIFWInstaller.cxx index 8c77a2c..224d606 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.cxx +++ b/Source/CPack/IFW/cmCPackIFWInstaller.cxx @@ -17,7 +17,7 @@ #include <CPack/cmCPackLog.h> #include <cmGeneratedFileStream.h> -#include <cmXMLSafe.h> +#include <cmXMLWriter.h> #ifdef cmCPackLogger # undef cmCPackLogger @@ -334,30 +334,27 @@ void cmCPackIFWInstaller::GenerateInstallerFile() } // Output stream - cmGeneratedFileStream xout((Directory + "/config/config.xml").data()); + cmGeneratedFileStream fout((Directory + "/config/config.xml").data()); + cmXMLWriter xout(fout); - xout << "<?xml version=\"1.0\"?>" << std::endl; + xout.StartDocument(); WriteGeneratedByToStrim(xout); - xout << "<Installer>" << std::endl; + xout.StartElement("Installer"); - xout << " <Name>" << cmXMLSafe(Name).str() << "</Name>" << std::endl; - - xout << " <Version>" << Version << "</Version>" << std::endl; - - xout << " <Title>" << cmXMLSafe(Title).str() << "</Title>" - << std::endl; + xout.Element("Name", Name); + xout.Element("Version", Version); + xout.Element("Title", Title); if(!Publisher.empty()) { - xout << " <Publisher>" << cmXMLSafe(Publisher).str() - << "</Publisher>" << std::endl; + xout.Element("Publisher", Publisher); } if(!ProductUrl.empty()) { - xout << " <ProductUrl>" << ProductUrl << "</ProductUrl>" << std::endl; + xout.Element("ProductUrl", ProductUrl); } // ApplicationIcon @@ -369,8 +366,7 @@ void cmCPackIFWInstaller::GenerateInstallerFile() name = cmSystemTools::GetFilenameWithoutExtension(name); cmsys::SystemTools::CopyFileIfDifferent( InstallerApplicationIcon.data(), path.data()); - xout << " <InstallerApplicationIcon>" << name - << "</InstallerApplicationIcon>" << std::endl; + xout.Element("InstallerApplicationIcon", name); } // WindowIcon @@ -380,8 +376,7 @@ void cmCPackIFWInstaller::GenerateInstallerFile() std::string path = Directory + "/config/" + name; cmsys::SystemTools::CopyFileIfDifferent( InstallerWindowIcon.data(), path.data()); - xout << " <InstallerWindowIcon>" << name - << "</InstallerWindowIcon>" << std::endl; + xout.Element("InstallerWindowIcon", name); } // Logo @@ -390,104 +385,91 @@ void cmCPackIFWInstaller::GenerateInstallerFile() std::string name = cmSystemTools::GetFilenameName(Logo); std::string path = Directory + "/config/" + name; cmsys::SystemTools::CopyFileIfDifferent(Logo.data(), path.data()); - xout << " <Logo>" << name << "</Logo>" << std::endl; + xout.Element("Logo", name); } // Start menu if(!IsVersionLess("2.0")) { - xout << " <StartMenuDir>" << StartMenuDir - << "</StartMenuDir>" << std::endl; + xout.Element("StartMenuDir", StartMenuDir); } // Target dir if(!TargetDir.empty()) { - xout << " <TargetDir>" << TargetDir << "</TargetDir>" << std::endl; + xout.Element("TargetDir", TargetDir); } // Admin target dir if(!AdminTargetDir.empty()) { - xout << " <AdminTargetDir>" << AdminTargetDir - << "</AdminTargetDir>" << std::endl; + xout.Element("AdminTargetDir", AdminTargetDir); } // Remote repositories if (!Repositories.empty()) { - xout << " <RemoteRepositories>" << std::endl; + xout.StartElement("RemoteRepositories"); for(std::vector<RepositoryStruct>::iterator rit = Repositories.begin(); rit != Repositories.end(); ++rit) { - xout << " <Repository>" << std::endl; + xout.StartElement("Repository"); // Url - xout << " <Url>" << rit->Url - << "</Url>" << std::endl; + xout.Element("Url", rit->Url); // Enabled if(!rit->Enabled.empty()) { - xout << " <Enabled>" << rit->Enabled - << "</Enabled>" << std::endl; + xout.Element("Enabled", rit->Enabled); } // Username if(!rit->Username.empty()) { - xout << " <Username>" << rit->Username - << "</Username>" << std::endl; + xout.Element("Username", rit->Username); } // Password if(!rit->Password.empty()) { - xout << " <Password>" << rit->Password - << "</Password>" << std::endl; + xout.Element("Password", rit->Password); } // DisplayName if(!rit->DisplayName.empty()) { - xout << " <DisplayName>" << rit->DisplayName - << "</DisplayName>" << std::endl; + xout.Element("DisplayName", rit->DisplayName); } - xout << " </Repository>" << std::endl; + xout.EndElement(); } - xout << " </RemoteRepositories>" << std::endl; + xout.EndElement(); } // Maintenance tool if(!IsVersionLess("2.0") && !MaintenanceToolName.empty()) { - xout << " <MaintenanceToolName>" << MaintenanceToolName - << "</MaintenanceToolName>" << std::endl; + xout.Element("MaintenanceToolName", MaintenanceToolName); } // Maintenance tool ini file if(!IsVersionLess("2.0") && !MaintenanceToolIniFile.empty()) { - xout << " <MaintenanceToolIniFile>" << MaintenanceToolIniFile - << "</MaintenanceToolIniFile>" << std::endl; + xout.Element("MaintenanceToolIniFile", MaintenanceToolIniFile); } // Different allows if(IsVersionLess("2.0")) { // CPack IFW default policy - xout << " <!-- CPack IFW default policy for QtIFW less 2.0 -->" - << std::endl; - xout << " <AllowNonAsciiCharacters>true</AllowNonAsciiCharacters>" - << std::endl; - xout << " <AllowSpaceInPath>true</AllowSpaceInPath>" << std::endl; + xout.Comment("CPack IFW default policy for QtIFW less 2.0"); + xout.Element("AllowNonAsciiCharacters", "true"); + xout.Element("AllowSpaceInPath", "true"); } else { if(!AllowNonAsciiCharacters.empty()) { - xout << " <AllowNonAsciiCharacters>" << AllowNonAsciiCharacters - << "</AllowNonAsciiCharacters>" << std::endl; + xout.Element("AllowNonAsciiCharacters", AllowNonAsciiCharacters); } if(!AllowSpaceInPath.empty()) { - xout << " <AllowAllowSpaceInPath>" << AllowSpaceInPath - << "</AllowSpaceInPath>" << std::endl; + xout.Element("AllowSpaceInPath", AllowSpaceInPath); } } @@ -497,10 +479,11 @@ void cmCPackIFWInstaller::GenerateInstallerFile() std::string name = cmSystemTools::GetFilenameName(ControlScript); std::string path = Directory + "/config/" + name; cmsys::SystemTools::CopyFileIfDifferent(ControlScript.data(), path.data()); - xout << " <ControlScript>" << name << "</ControlScript>" << std::endl; + xout.Element("ControlScript", name); } - xout << "</Installer>" << std::endl; + xout.EndElement(); + xout.EndDocument(); } //---------------------------------------------------------------------------- @@ -535,7 +518,7 @@ void cmCPackIFWInstaller::GeneratePackageFiles() } } -void cmCPackIFWInstaller::WriteGeneratedByToStrim(cmGeneratedFileStream &xout) +void cmCPackIFWInstaller::WriteGeneratedByToStrim(cmXMLWriter &xout) { if(Generator) Generator->WriteGeneratedByToStrim(xout); } diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.h b/Source/CPack/IFW/cmCPackIFWInstaller.h index 4cba5b2..04050c0 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.h +++ b/Source/CPack/IFW/cmCPackIFWInstaller.h @@ -13,11 +13,11 @@ #ifndef cmCPackIFWInstaller_h #define cmCPackIFWInstaller_h -#include <cmGeneratedFileStream.h> #include <cmStandardIncludes.h> class cmCPackIFWPackage; class cmCPackIFWGenerator; +class cmXMLWriter; /** \class cmCPackIFWInstaller * \brief A binary installer to be created CPack IFW generator @@ -115,7 +115,7 @@ public: // Internal implementation std::string Directory; protected: - void WriteGeneratedByToStrim(cmGeneratedFileStream& xout); + void WriteGeneratedByToStrim(cmXMLWriter& xout); }; #endif // cmCPackIFWInstaller_h diff --git a/Source/CPack/IFW/cmCPackIFWPackage.cxx b/Source/CPack/IFW/cmCPackIFWPackage.cxx index 5474ad1b..b71c7e3 100644 --- a/Source/CPack/IFW/cmCPackIFWPackage.cxx +++ b/Source/CPack/IFW/cmCPackIFWPackage.cxx @@ -18,6 +18,7 @@ #include <cmGeneratedFileStream.h> #include <cmTimestamp.h> +#include <cmXMLWriter.h> //----------------------------------------------------------------- Logger --- #ifdef cmCPackLogger @@ -447,35 +448,28 @@ void cmCPackIFWPackage::GeneratePackageFile() } // Output stream - cmGeneratedFileStream xout((Directory + "/meta/package.xml").data()); + cmGeneratedFileStream fout((Directory + "/meta/package.xml").data()); + cmXMLWriter xout(fout); - xout << "<?xml version=\"1.0\"?>" << std::endl; + xout.StartDocument(); WriteGeneratedByToStrim(xout); - xout << "<Package>" << std::endl; + xout.StartElement("Package"); - xout << " <DisplayName>" << DisplayName - << "</DisplayName>" << std::endl; + xout.Element("DisplayName", DisplayName); + xout.Element("Description", Description); + xout.Element("Name", Name); + xout.Element("Version", Version); - xout << " <Description>" << Description - << "</Description>" << std::endl; - - xout << " <Name>" << Name << "</Name>" << std::endl; - - xout << " <Version>" << Version - << "</Version>" << std::endl; - - xout << " <ReleaseDate>"; - if(ReleaseDate.empty()) + if (!ReleaseDate.empty()) { - xout << cmTimestamp().CurrentTime("%Y-%m-%d", true); + xout.Element("ReleaseDate", ReleaseDate); } else { - xout << ReleaseDate; + xout.Element("ReleaseDate", cmTimestamp().CurrentTime("%Y-%m-%d", true)); } - xout << "</ReleaseDate>" << std::endl; // Script (copy to meta dir) if(!Script.empty()) @@ -483,7 +477,7 @@ void cmCPackIFWPackage::GeneratePackageFile() std::string name = cmSystemTools::GetFilenameName(Script); std::string path = Directory + "/meta/" + name; cmsys::SystemTools::CopyFileIfDifferent(Script.data(), path.data()); - xout << " <Script>" << name << "</Script>" << std::endl; + xout.Element("Script", name); } // Dependencies @@ -501,16 +495,16 @@ void cmCPackIFWPackage::GeneratePackageFile() // Write dependencies if (!compDepSet.empty()) { - xout << " <Dependencies>"; + std::stringstream dependencies; std::set<DependenceStruct>::iterator it = compDepSet.begin(); - xout << it->NameWithCompare(); + dependencies << it->NameWithCompare(); ++it; while(it != compDepSet.end()) { - xout << "," << it->NameWithCompare(); + dependencies << "," << it->NameWithCompare(); ++it; } - xout << "</Dependencies>" << std::endl; + xout.Element("Dependencies", dependencies.str()); } // Licenses (copy to meta dir) @@ -524,43 +518,42 @@ void cmCPackIFWPackage::GeneratePackageFile() } if(!licenses.empty()) { - xout << " <Licenses>" << std::endl; + xout.StartElement("Licenses"); for(size_t i = 0; i < licenses.size(); i += 2) { - xout << " <License " - << "name=\"" << licenses[i] << "\" " - << "file=\"" << licenses[i + 1] << "\" " - << "/>" <<std::endl; + xout.StartElement("License"); + xout.Attribute("name", licenses[i]); + xout.Attribute("file", licenses[i + 1]); + xout.EndElement(); } - xout << " </Licenses>" << std::endl; + xout.EndElement(); } if (!ForcedInstallation.empty()) { - xout << " <ForcedInstallation>" << ForcedInstallation - << "</ForcedInstallation>" << std::endl; + xout.Element("ForcedInstallation", ForcedInstallation); } if (!Virtual.empty()) { - xout << " <Virtual>" << Virtual << "</Virtual>" << std::endl; + xout.Element("Virtual", Virtual); } else if (!Default.empty()) { - xout << " <Default>" << Default << "</Default>" << std::endl; + xout.Element("Default", Default); } // Priority if(!SortingPriority.empty()) { - xout << " <SortingPriority>" << SortingPriority - << "</SortingPriority>" << std::endl; + xout.Element("SortingPriority", SortingPriority); } - xout << "</Package>" << std::endl; + xout.EndElement(); + xout.EndDocument(); } -void cmCPackIFWPackage::WriteGeneratedByToStrim(cmGeneratedFileStream &xout) +void cmCPackIFWPackage::WriteGeneratedByToStrim(cmXMLWriter &xout) { if(Generator) Generator->WriteGeneratedByToStrim(xout); } diff --git a/Source/CPack/IFW/cmCPackIFWPackage.h b/Source/CPack/IFW/cmCPackIFWPackage.h index d2f7927..e647c16 100644 --- a/Source/CPack/IFW/cmCPackIFWPackage.h +++ b/Source/CPack/IFW/cmCPackIFWPackage.h @@ -14,12 +14,12 @@ #define cmCPackIFWPackage_h #include <cmStandardIncludes.h> -#include <cmGeneratedFileStream.h> class cmCPackComponent; class cmCPackComponentGroup; class cmCPackIFWInstaller; class cmCPackIFWGenerator; +class cmXMLWriter; /** \class cmCPackIFWPackage * \brief A single component to be installed by CPack IFW generator @@ -135,7 +135,7 @@ public: // Internal implementation std::string Directory; protected: - void WriteGeneratedByToStrim(cmGeneratedFileStream& xout); + void WriteGeneratedByToStrim(cmXMLWriter& xout); }; #endif // cmCPackIFWPackage_h |