diff --git a/CQtDeployer/main.cpp b/CQtDeployer/main.cpp index fbbb40b..560f014 100644 --- a/CQtDeployer/main.cpp +++ b/CQtDeployer/main.cpp @@ -21,10 +21,9 @@ int main(int argc, char *argv[]) { QCoreApplication::setApplicationName("CQtDeployer"); - if (!QuasarAppUtils::Params::parseParams(argc, argv)) { - QuasarAppUtils::Params::log("Wrong parameters", QuasarAppUtils::Warning); - DeployCore::help(); - exit(0); + if (!QuasarAppUtils::Params::parseParams(argc, argv, DeployCore::avilableOptions())) { + QuasarAppUtils::Params::log("Wrong parameters. Please use the 'help' of 'h' option for show help page.", QuasarAppUtils::Warning); + exit(4); } Deploy deploy; diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index acd42b7..4890917 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -273,9 +273,7 @@ QJsonValue ConfigParser::writeKeyArray(int separatorLvl, const QString ¶mete void ConfigParser::writeKey(const QString& key, QJsonObject& obj, const QString& confFileDir) const { - if (QuasarAppUtils::Params::isEndable(key)) { - obj[key] = writeKeyArray(0, QuasarAppUtils::Params::getArg(key), confFileDir); - } + obj[key] = writeKeyArray(0, QuasarAppUtils::Params::getArg(key), confFileDir); } QString ConfigParser::readKeyArray(int separatorLvl, const QJsonArray &array, @@ -357,9 +355,10 @@ bool ConfigParser::createFromDeploy(const QString& confFile) const { auto info = QFileInfo(confFile); - const auto keys = DeployCore::helpKeys(); + const auto keys = QuasarAppUtils::Params::getUserParamsMap().keys(); for (const auto &key :keys) { - writeKey(key, obj, info.absolutePath()); + if (key != "confFile") + writeKey(key, obj, info.absolutePath()); } if (!QFile::exists(info.absolutePath()) && diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 78debba..e0d9af9 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -7,7 +7,6 @@ #include "extracter.h" #include "deploycore.h" -#include "quasarapp.h" #include "pathutils.h" #include "pluginsparser.h" @@ -185,103 +184,106 @@ RunMode DeployCore::getMode() { return RunMode::Info; } -void DeployCore::help() { - +QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { QString group = "Part 1 Boolean options"; - QuasarAppUtils::OptionsDataList _help = {}; - _help.insert(group, {QuasarAppUtils::OptionData{ - {"init"}, + QuasarAppUtils::OptionsDataList help = {}; + help.insert(group, {QuasarAppUtils::OptionData{ + {"init"}, "", "will initialize cqtdeployer.json file (configuration file).", "'cqtdeployer init' - for initialize base package configuration. " "'cqtdeployer -init multi' - for initialize multi package configuration " "'cqtdeployer -init single' - for initialize singel package configuration" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"clear"}, "", "Deletes deployable files of the previous session." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"force-clear"}, "", "Deletes the destination directory before deployment." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noStrip"}, "", "Skips strip step" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noTranslations"}, "", "Skips the translations files. It doesn't work without qmake." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noOverwrite"}, "", "Prevents replacing existing files." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noCheckRPATH"}, "", "Disables automatic search of paths to qmake in executable files." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noCheckPATH"}, "", "Disables automatic search of paths to qmake in system PATH." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noRecursiveiIgnoreEnv"}, "", "Disables recursive ignore for ignoreEnv option." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ - {"v", "version"}, + help.insert(group, {QuasarAppUtils::OptionData{ + {"v", "version"}, "", "Shows compiled version" }}); - - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ + {"h", "help"}, "", + "Show all help or help of the selected options." + " You can add any another option to a command line for show help about using options" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ {"qif","-qif"}, "", "Create the QIF installer for deployment programm" " You can specify the path to your own installer template.", "Examples: cqtdeployer -qif path/to/myCustom/qif." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"qifFromSystem"}, "", "force use system binarycreator tool of qif from path or qt" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"zip"}, "", "Create the ZIP arhive for deployment programm" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"deb", "-deb"}, "", "Create the deb package for deployment programm" " You can specify the path to your own debian template.", "cqtdeployer -deb path/to/myCustom/DEBIAN." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"deploySystem"}, "", "Deploys all libraries." " Not recomendet because there may be conflicts with system libraries" " (on snap version you need to turn on permission)" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noQt"}, "", "Ignors the error of initialize of a qmake. Use only if your application does not use the qt framework." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"allowEmptyPackages"}, "", "Allows configure the empty packages." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"getDefaultTemplate"}, "", "Extracts defaults deb or qif templates." " All templates extract into targetDirectory." " For change target directory use the targetDir option.", "cqtdeployer -bin myExecutable getDefaultTemplate qif deb." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noHashSum"}, "", "This option disable computation of a packages hash sum" }}); group = "Part 2 Deploy options"; - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-bin"}, "{list,params}", "Files to deploy or folders that contain files to deploy.", "-bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll." @@ -292,73 +294,215 @@ void DeployCore::help() { " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-binPrefix"}, "{prefixPath}", "Sets prefix path for bin option.", "-bin path/MyExecutable is some as -bin MyExecutable -binPrefix path" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-confFile"}, "{params}", "The path to the json file with all deployment configurations. Using this file," " you can add the necessary options, thereby simplifying the command invocation in the console." " However, the parameters in Kansol have a higher priority than in the file." " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-qmlDir"}, "{params}", "Sets path to Qml data dir", "-qmlDir ~/my/project/qml" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-qmake"}, "{params}", "Sets path to the qmake executable.", "-qmake ~/Qt/bin/qmake or -qmake ~/Qt/bin/qmake.exe" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-ignore"}, "{list,params}", "Sets the list of libs to ignore.", "-ignore libicudata.so.56,libicudata2.so.56" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-ignoreEnv"}, "{list,params}", "Sets the list of the environment to ignore.", "-ignoreEnv /bad/dir,/my/bad/Dir" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-libDir"}, "{list,params}", "Sets additional paths for extra libs of an app.", "-libDir ~/myLib,~/newLibs" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-extraLibs"}, "{list,params}", "Sets the mask of the library name for forced copying.", "\"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." " This option is case-insensitive on Windows and case-sensitive on other platforms." " This option will only search libraries in system environments similar to **deploySystem**." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-customScript"}, "{scriptCode}", "Insert extra code inTo All run script.", "", " This option will be removed into next release cqtdeployer." " Please use the runScript option" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-recursiveDepth"}, "{params}", "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-targetDir"}, "{params}", "Sets target directory(by default it is the path to the first deployable file)" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-runScript"}, "{list,parems}", "forces cqtdeployer swap default run script to new from the arguments of option." " This option copy all content from input file and insert all code into runScript.sh or .bat", "cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\"" }}); + group = "Part 3 Control of packages options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-targetPackage"}, "{package;tar1,package;tar2}", + "Creates a new package and adds 'tar1 and tar2' to it. " + "If you want configure the package that do not have any targets use the allowEmptyPackages option." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qmlOut"}, "{package;path,path}", + "Sets path to qml out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-libOut"}, "{package;path,path}", + "Sets path to libraries out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-trOut"}, "{package;path,path}", + "Sets path to Sets path to translations out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-pluginOut"}, "{package;path,path}", + "Sets path to plugins out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-binOut"}, "{package;path,path}", + "Sets path to binary out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-recOut"}, "{package;path,path}", + "Sets path to recurses out directory" + }}); + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-extraDataOut"}, "{package;path,path}", + "Sets path to extra data files out directory. By Default it is root dir of the distribution." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-name"}, "{package;val,val}", + "Sets name for a package." + "If this if you do not specify a package, the value will be assigned to the default package ("")" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-description"}, "{package;val,val}", + "Sets description for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-deployVersion"}, "{package;val,val}", + "Sets version for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-releaseDate"}, "{package;val,val}", + "Sets release date for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-publisher"}, "{package;val,val}", + "Sets publisher for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-homePage"}, "{package;val,val}", + "Sets the home page url for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-prefix"}, "{package;val,val}", + "Sets the prefix for the package relatively a target directory " + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-extraData"}, "{package;val,val}", + "Adds the extra files or directories like a target. The selected directory will be copy to the extraDataOut location with save own structure." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-tr"}, "{package;val,val}", + "Adds qm files into the translations folder." + }}); + + group = "Part 4 Control of packages options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-icon"}, "{target;val,val}", + "Sets path to icon for a targets" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-disableRunScript"}, "{package;val,val}", + "Disables a generation of run script for selected targets" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-disableShortCut"}, "{package;val,val}", + "Disables a generation of shortcut for selected targets" + }}); + + group = "Part 5 Plugins Control Options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-extraPlugin"}, "{package;val1;val2,SingeleVal}", + "Sets an additional path to third-party application plug-in" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-enablePlugins"}, "{package;val1;val2,SingeleVa}", + "Enables additional plugins for distribution." + " By default disabled next plugins: " + PluginsParser::defaultForbidenPlugins().join(',') + " if you want enable" + " it then use '-enablePlugins " + PluginsParser::defaultForbidenPlugins().join(',') + "' option" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-disablePlugins"}, "{package;val1;val2,SingeleVal}", + "Disables plugins for distribution. " + "You can disable any plugin of your Qt build, just see the yourQtFolder/plugins forlder for available plugins." + " Example if you want disable qxcb plugin: -disablePlugins qxcb." + " Note that the name of the plugin is indicated without its extension" + }}); + + group = "Part 6 QtInstallFramework options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifStyle"}, "{path/to/style.css}", + "Sets the path to the CSS style file or sets the default style." + " Available styles: quasar, quasarDark" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifBanner"}, "{path/to/banner.png}", + "Sets path to the banner png file." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifLogo"}, "{path/to/logo.png}", + "Sets path to the logo png file." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifOut"}, "{nameOfOutputInstallerFile}", + "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically." + }}); + + return help; +} + +void DeployCore::help() { + + auto localHelp = QuasarAppUtils::Params::getHelpOfInputOptions(); + + if(!localHelp.isEmpty()) { + QuasarAppUtils::Help::print(localHelp); + return; + } + + // help extra data; QuasarAppUtils::Help::Charters help = { { "Part 0 General", { @@ -366,135 +510,6 @@ void DeployCore::help() { {"Usage", "cqtdeployer <-bin [params]> [options]"}, } }, -// { -// "Part 1 Boolean options", { -// {"init", "will initialize cqtdeployer.json file (configuration file)." -// " For example: 'cqtdeployer init' - for initialize base package configuration." -// " 'cqtdeployer -init multi' - for initialize multi package configuration" -// " 'cqtdeployer -init single' - for initialize singel package configuration"}, -// {"help / h", "Shows help"}, -// {"clear", "Deletes deployable files of the previous session."}, -// {"force-clear", "Deletes the destination directory before deployment."}, -// {"noStrip", "Skips strip step"}, -// {"noTranslations", "Skips the translations files. It doesn't work without qmake."}, -// {"noOverwrite", "Prevents replacing existing files."}, -// {"noCheckRPATH", "Disables automatic search of paths to qmake in executable files."}, -// {"noCheckPATH", "Disables automatic search of paths to qmake in system PATH."}, -// {"noRecursiveiIgnoreEnv", "Disables recursive ignore for ignoreEnv option."}, -// {"v / version", "Shows compiled version"}, -// {"qif", "Create the QIF installer for deployment programm" -// " You can specify the path to your own installer template. Examples: cqtdeployer -qif path/to/myCustom/qif."}, -// {"qifFromSystem", "force use system binarycreator tool of qif from path or qt"}, -// {"zip", "Create the ZIP arhive for deployment programm"}, -// {"deb", "Create the deb package for deployment programm" -// " You can specify the path to your own debian template. Examples: cqtdeployer -deb path/to/myCustom/DEBIAN."}, -// {"deploySystem", "Deploys all libraries." -// " Not recomendet because there may be conflicts with system libraries" -// " (on snap version you need to turn on permission)"}, -// {"noQt", "Ignors the error of initialize of a qmake. Use only if your application does not use the qt framework."}, -// {"allowEmptyPackages", "Allows configure the empty packages."}, -// {"getDefaultTemplate", "Extracts defaults deb or qif templates." -// " All templates extract into targetDirectory." -// " For change target directory use the targetDir option." -// " Example: cqtdeployer -bin myExecutable getDefaultTemplate qif deb."}, -// {"noHashSum", "This option disable computation of a packages hash sum"} - - -// } -// }, -// { -// "Part 2 Deploy options", { -// {"-bin [list, params]", "Files to deploy or folders that contain files to deploy." -// " For example -bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll." -// " For files: These files will be unconditional copied to the destination directory," -// " regardless of their format or suffix." -// " For folders:" -// " CCQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory." -// " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths."}, -// {"-binPrefix [prefixPath]", "Sets prefix path for bin option." -// " Example: " -// "" }, - -// {"-confFile [params]", "The path to the json file with all deployment configurations. Using this file," -// " you can add the necessary options, thereby simplifying the command invocation in the console." -// " However, the parameters in Kansol have a higher priority than in the file." -// " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn"}, -// {"-qmlDir [params]", "Qml data dir. For example -qmlDir ~/my/project/qml"}, -// {"-qmake [params]", "Deployable file or folder. For example -bin ~/my/project/bin/,~/my/project/bin.exe"}, -// {"-ignore [list,params]", "The list of libs to ignore. For example -ignore libicudata.so.56,libicudata2.so.56"}, -// {"-ignoreEnv [list,params]", "The list of the environment to ignore. For example -ignoreEnv /bad/dir,/my/bad/Dir"}, -// {"-libDir [list,params]", "Sets additional paths for extra libs of an app. For example -libDir ~/myLib,~/newLibs"}, -// {"-extraLibs [list,params]", "Sets the mask of the library name for forced copying." -// " Example: \"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." -// " This option is case-insensitive on Windows and case-sensitive on other platforms." -// " This option will only search libraries in system environments similar to **deploySystem**."}, -// {"-customScript [scriptCode]", "Insert extra code inTo All run script."}, -// {"-recursiveDepth [params]", "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)"}, -// {"-targetDir [params]", "Sets target directory(by default it is the path to the first deployable file)"}, -// {"-runScript [list,parems]", "forces cqtdeployer swap default run script to new from the arguments of option." -// " This option copy all content from input file and insert all code into runScript.sh or .bat" -// " Example of use: cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\""}, -// {"-verbose [0-3]", "Shows debug log"}, - -// } -// }, - { - "Part 3 Control of packages options", { - {"-targetPackage [package;tar1,package;tar2]", "Creates a new package and adds 'tar1 and tar2' to it." - "If you want configure the package that do not have any targets use the allowEmptyPackages option."}, - {"-qmlOut [package;path,path]", "Sets path to qml out directory"}, - {"-libOut [package;path,path]", "Sets path to libraries out directory"}, - {"-trOut [package;path,path]", "Sets path to translations out directory"}, - {"-pluginOut [package;path,path]", "Sets path to plugins out directory"}, - {"-binOut [package;path,path]", "Sets path to binary out directory"}, - {"-recOut [package;path,path]", "Sets path to recurses out directory"}, - {"-extraDataOut [package;path,path]", "Sets path to extra data files out directory. By Default it is root dir of the distribution."}, - {"-name [package;val,val]", "Sets name for a package. " - "If this if you do not specify a package, the value will be assigned to the default package ("")"}, - {"-description [package;val,val]", "Sets description for a package"}, - {"-deployVersion [package;val,val]", "Sets version for a package"}, - {"-releaseDate [package;val,val]", "Sets release date for a package"}, - {"-publisher [package;val,val]", "Sets publisher for a package"}, - {"-homePage [package;val,val]", "Sets the home page url for a package"}, - {"-prefix [package;val,val]", "Sets the prefix for the package relatively a target directory "}, - {"-extraData [package;val,val]", "Adds the extra files or directories like a target. The selected directory will be copy to the extraDataOut location with save own structure."}, - {"-tr [package;val,val]", "Adds qm files into the translations folder."}, - - - } - }, - - { - "Part 4 Control of packages options", { - {"-icon [target;val,val]", "Sets path to icon for a targets"}, - {"-disableRunScript [target;val,val]", "Disables a generation of run script for selected targets"}, - {"-disableShortCut [target;val,val]", "Disables a generation of shortcut for selected targets"} - - } - }, - - { - "Part 5 Plugins Control Options", { - {"-extraPlugin [package;val1;val2,SingeleVal]", "Sets an additional path to third-party application plug-in"}, - {"-enablePlugins [package;val1;val2,SingeleVal", "Enables additional plugins for distribution." - " By default disabled next plugins: " + PluginsParser::defaultForbidenPlugins().join(',') + " if you want enable" - " it then use '-enablePlugins " + PluginsParser::defaultForbidenPlugins().join(',') + "' option"}, - {"-disablePlugins [package;val1;val2,SingeleVal]", "Disables plugins for distribution. " - "You can disable any plugin of your Qt build, just see the yourQtFolder/plugins forlder for available plugins." - " Example if you want disable qxcb plugin: -disablePlugins qxcb." - " Note that the name of the plugin is indicated without its extension"}, - - } - }, - { - "Part 6 QtInstallFramework options", { - {"-qifStyle [path/to/style.css]", "Sets the path to the CSS style file or sets the default style." - " Available styles: quasar, quasarDark"}, - {"-qifBanner [path/to/banner.png]", "Sets path to the banner png file."}, - {"-qifLogo [path/to/logo.png]", "Sets path to the logo png file."}, - {"-qifOut [nameOfOutputInstallerFile", "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically."}, - } - }, { "Support", { {"Support for you", "If you have any questions or problems with cqtdeployer you can write to us about the problem on the GitHub page: https://github.com/QuasarApp/CQtDeployer/issues"}, @@ -503,73 +518,13 @@ void DeployCore::help() { } }; - help.unite(QuasarAppUtils::Params::getParamsHelp()); + help += QuasarAppUtils::Params::getHelp(); QuasarAppUtils::Help::print(help); return; } -QStringList DeployCore::helpKeys() { - return { - "help", - "noOverwrite", - "bin", - "extraData", - "qmlDir", - "deploySystem", - "qmake", - "ignore", - "ignoreEnv", - "clear", - "force-clear", - "libDir", - "extraLibs", - "extraPlugin", - "recursiveDepth", - "targetDir", - "targetPackage", - "noStrip", - "extractPlugins", - "noTranslations", - "noRecursiveiIgnoreEnv", - "qifFromSystem", - "qmlOut", - "libOut", - "trOut", - "pluginOut", - "binOut", - "recOut", - "extraDataOut", - "version", - "verbose", - "qif", - "noCheckRPATH", - "noCheckPATH", - "name", - "description", - "deployVersion", - "releaseDate", - "icon", - "publisher", - "customScript", - "qifStyle", - "qifBanner", - "qifLogo", - "zip", - "noQt", - "homePage", - "prefix", - "deb", - "allowEmptyPackages", - "runScript", - "getDefaultTemplate", - "tr", - "disableRunScript", - "disableShortCut" - }; -} - QStringList DeployCore::extractTranslation(const QSet &libs) { QSet res; const size_t qtModulesCount = sizeof(qtModuleEntries) / sizeof(QtModuleEntry); diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 2628091..f091966 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -13,6 +13,7 @@ #include #include "deploy_global.h" #include "defines.h" +#include "quasarapp.h" enum MSVCVersion: int { MSVC_Unknown = 0x0, @@ -249,7 +250,7 @@ public: static bool isGui(DeployCore::QtModule module); static RunMode getMode(); static void help(); - static QStringList helpKeys(); + static QuasarAppUtils::OptionsDataList avilableOptions(); static QStringList extractTranslation(const QSet &libs); static QString getAppVersion(); diff --git a/Deploy/filemanager.cpp b/Deploy/filemanager.cpp index 688ec2c..1d5d73b 100644 --- a/Deploy/filemanager.cpp +++ b/Deploy/filemanager.cpp @@ -117,6 +117,9 @@ void FileManager::removeFromDeployed(const QString &path) { } void FileManager::saveDeploymendFiles(const QString& targetDir) { + if (targetDir.isEmpty()) + return; + auto settings = QuasarAppUtils::Settings::instance(); settings->setValue(targetDir, getDeployedFilesStringList()); } diff --git a/QuasarAppLib b/QuasarAppLib index 93839d1..cae8747 160000 --- a/QuasarAppLib +++ b/QuasarAppLib @@ -1 +1 @@ -Subproject commit 93839d1dc0faab01d81a57bb0e8ef418e463675c +Subproject commit cae874728fe3e86e98d18ba6654654ce0717d04e