From 15ff3c2d82f2660dd16bac73afa294596d38a70d Mon Sep 17 00:00:00 2001 From: EndrII Date: Thu, 2 Jul 2020 16:10:11 +0300 Subject: [PATCH] added option 'allPlatforms' --- Deploy/deploycore.cpp | 4 +++- Deploy/extracter.cpp | 31 ++++++++++++++++++++++--------- Deploy/extracter.h | 4 ++++ Deploy/pluginsparser.cpp | 5 ++--- Deploy/pluginsparser.h | 4 ++-- 5 files changed, 33 insertions(+), 15 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index dd91315..304ecbf 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -190,7 +190,8 @@ void DeployCore::help() { {"qif", "Create the QIF installer for deployement programm"}, {"qifFromSystem", "force use system binarycreator tool of qif from path or qt"}, {"deploySystem", "Deploys all libraries (do not work in snap )"}, - {"deploySystem-with-libc", "deploy all libs libs (only linux) (do not work in snap )"}, + {"deploySystem-with-libc", "deploy all libs (only linux) (do not work in snap )"}, + {"allPlatforms", "deploy all platforms plugins (big size)."}, } }, @@ -300,6 +301,7 @@ QStringList DeployCore::helpKeys() { "qifStyle", "qifBanner", "qifLogo", + "allPlatforms" }; } diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 42b56f1..a8285c2 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -158,6 +158,24 @@ void Extracter::clear() { } } +void Extracter::extractPlatforms(const PluginsParser& pluginsParser, + const QString& package) { + + auto cnf = DeployCore::_config; + QStringList plugins; + auto distro = cnf->getDistroFromPackage(package); + + pluginsParser.scanPlatforms(cnf->getPlatform(), plugins); + auto targetPath = cnf->getTargetDir() + "/" + package + + "/" + distro.getPluginsOutDir() + "/platforms"; + + for (const auto& plugin :plugins) { + _fileManager->copyFile(plugin, targetPath); + + extractPluginLib(plugin, package); + } +} + void Extracter::extractPlugins() { auto cnf = DeployCore::_config; PluginsParser pluginsParser; @@ -169,16 +187,11 @@ void Extracter::extractPlugins() { pluginsParser.scan(cnf->qtDir.getPlugins(), plugins, _packageDependencyes[i.key()].qtModules()); copyPlugins(plugins, i.key()); - pluginsParser.scanPlatforms(cnf->getPlatform(), plugins); - auto targetPath = cnf->getTargetDir() + "/" + i.key() + - "/" + distro.getPluginsOutDir() + "/platforms"; - - for (const auto& plugin :plugins) { - _fileManager->copyFile(plugin, targetPath); - - extractPluginLib(plugin, i.key()); + if (QuasarAppUtils::Params::isEndable("allPlatforms")) { + copyPlugin("platforms", i.key()); + } else { + extractPlatforms(pluginsParser, i.key()); } - } } diff --git a/Deploy/extracter.h b/Deploy/extracter.h index 052895d..860e392 100644 --- a/Deploy/extracter.h +++ b/Deploy/extracter.h @@ -18,6 +18,7 @@ class ConfigParser; class MetaFileManager; +class PluginsParser; class DEPLOYSHARED_EXPORT Extracter { private: @@ -66,6 +67,9 @@ class DEPLOYSHARED_EXPORT Extracter { bool isWebEngine(const QString& package) const; void extractPluginLib(const QString &item, const QString &package); + void extractPlatforms(const PluginsParser& pluginsParser, + const QString& package); + public: explicit Extracter(FileManager *fileManager, ConfigParser * cqt, DependenciesScanner *_scaner); void deploy(); diff --git a/Deploy/pluginsparser.cpp b/Deploy/pluginsparser.cpp index 9254cb8..075cdc1 100644 --- a/Deploy/pluginsparser.cpp +++ b/Deploy/pluginsparser.cpp @@ -21,7 +21,6 @@ static const PluginModuleMapping pluginModuleMappings[] = {"accessible", DeployCore::QtModule::QtGuiModule}, {"iconengines", DeployCore::QtModule::QtGuiModule}, {"imageformats", DeployCore::QtModule::QtGuiModule}, - {"platforms", DeployCore::QtModule::QtGuiModule}, {"platformthemes", DeployCore::QtModule::QtGuiModule}, {"platforminputcontexts", DeployCore::QtModule::QtGuiModule}, {"virtualkeyboard", DeployCore::QtModule::QtGuiModule}, @@ -96,7 +95,7 @@ quint64 PluginsParser::qtModuleForPlugin(const QString &subDirName) { return result != end ? result->module : 0; // "designer" } -Platform PluginsParser::platformForPlugin(const QString &name) { +Platform PluginsParser::platformForPlugin(const QString &name) const { const auto end = std::end(platformMappings); const auto result = std::find_if(std::begin(platformMappings), end, @@ -138,7 +137,7 @@ bool PluginsParser::scan(const QString& pluginPath, return true; } -void PluginsParser::scanPlatforms(Platform platform, QStringList &resDependencies) { +void PluginsParser::scanPlatforms(Platform platform, QStringList &resDependencies) const { const DeployConfig* cnf = DeployCore::_config; QString platformPluginPath = cnf->qtDir.getPlugins() + "/platforms/"; diff --git a/Deploy/pluginsparser.h b/Deploy/pluginsparser.h index 9fbd055..a249452 100644 --- a/Deploy/pluginsparser.h +++ b/Deploy/pluginsparser.h @@ -37,14 +37,14 @@ public: bool scan(const QString &pluginPath, QStringList& resDependencies, DeployCore::QtModule qtModules); - void scanPlatforms(Platform platform, QStringList& resDependencies); + void scanPlatforms(Platform platform, QStringList& resDependencies) const; private: DependenciesScanner *_libScaner = nullptr; quint64 qtModuleForPlugin(const QString &subDirName); - Platform platformForPlugin(const QString &name); + Platform platformForPlugin(const QString &name) const; bool copyPlugin(const QString &plugin, const QString &package); void copyExtraPlugins(const QString &package);