From 7d91fa10d120f0d9e91234c05a866edc2e45d4bf Mon Sep 17 00:00:00 2001 From: EndrII Date: Sun, 10 Jan 2021 20:25:22 +0300 Subject: [PATCH 01/36] fix #457 "added option for extracting default templates" --- Deploy/Distributions/deb.cpp | 4 +-- Deploy/Distributions/qif.cpp | 2 +- Deploy/Distributions/ziparhive.cpp | 3 +- Deploy/configparser.cpp | 18 ++++++++++ Deploy/configparser.h | 1 + Deploy/deploy.cpp | 15 +++++++-- Deploy/deploycore.cpp | 14 ++++++-- Deploy/deploycore.h | 3 +- Deploy/packing.cpp | 46 ++++++++++++++++++++++++- Deploy/packing.h | 8 +++++ UnitTests/tst_deploytest.cpp | 28 ++++++++++++++++ docs/en/ExtractDefaultsTemplates.md | 48 ++++++++++++++++++++++++++ docs/en/Home.md | 1 + docs/en/Options.md | 1 + docs/ru/ExtractDefaultsTemplates.md | 52 +++++++++++++++++++++++++++++ docs/ru/Home.md | 1 + docs/ru/Options.md | 2 +- 17 files changed, 235 insertions(+), 12 deletions(-) create mode 100644 docs/en/ExtractDefaultsTemplates.md create mode 100644 docs/ru/ExtractDefaultsTemplates.md diff --git a/Deploy/Distributions/deb.cpp b/Deploy/Distributions/deb.cpp index b3833af..d21a25a 100644 --- a/Deploy/Distributions/deb.cpp +++ b/Deploy/Distributions/deb.cpp @@ -8,7 +8,7 @@ Deb::Deb(FileManager *fileManager): iDistribution(fileManager) { - setLocation("tmp DEB"); + setLocation("defaultDEBTemplate"); } bool Deb::deployTemplate(PackageControl &pkg) { @@ -87,7 +87,7 @@ QProcessEnvironment Deb::processEnvirement() const { QList Deb::runCmd() { QList res; - for (const auto& dir: packageFolders) { + for (const auto& dir: qAsConst(packageFolders)) { res.push_back({"dpkg-deb", QStringList{"--build", "--verbose"} << dir}); } diff --git a/Deploy/Distributions/qif.cpp b/Deploy/Distributions/qif.cpp index 97799b6..68a8d1b 100644 --- a/Deploy/Distributions/qif.cpp +++ b/Deploy/Distributions/qif.cpp @@ -12,7 +12,7 @@ QIF::QIF(FileManager *fileManager) :iDistribution(fileManager){ - setLocation("tmp QIF"); + setLocation("defaultQIFWTemplate"); }; diff --git a/Deploy/Distributions/ziparhive.cpp b/Deploy/Distributions/ziparhive.cpp index bddc027..58b819f 100644 --- a/Deploy/Distributions/ziparhive.cpp +++ b/Deploy/Distributions/ziparhive.cpp @@ -10,10 +10,11 @@ ZipArhive::ZipArhive(FileManager *fileManager) :iDistribution(fileManager) { - setLocation("tmp zip"); + setLocation("defaultZIPTemplate"); } bool ZipArhive::deployTemplate(PackageControl &pkg) { + // default template const DeployConfig *cfg = DeployCore::_config; diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 4cd758d..4a3ae90 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -137,6 +137,20 @@ bool ConfigParser::parseParams() { break; } + case RunMode::Template: { + + QuasarAppUtils::Params::log("Extract defaults Templates ...", + QuasarAppUtils::Info); + + if (!parseDeployMode()) { + QuasarAppUtils::Params::log("Extract defaults Templates is failed!", + QuasarAppUtils::Error); + return false; + } + + break; + } + } DeployCore::_config = &_config; @@ -699,6 +713,10 @@ bool ConfigParser::parseInitMode() { return true; } +bool ConfigParser::parseGetTemplateMode() { + +} + bool ConfigParser::parseClearMode() { setTargetDir("./" + DISTRO_DIR); diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 3afdaab..6c6f109 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -55,6 +55,7 @@ private: bool parseDeployMode(); bool parseInfoMode(); bool parseInitMode(); + bool parseGetTemplateMode(); bool parseClearMode(); diff --git a/Deploy/deploy.cpp b/Deploy/deploy.cpp index 349377b..dcfd40e 100644 --- a/Deploy/deploy.cpp +++ b/Deploy/deploy.cpp @@ -104,8 +104,17 @@ bool Deploy::deploy() { bool Deploy::packing() { - if (DeployCore::getMode() != RunMode::Deploy) - return true; + switch (DeployCore::getMode() ) { - return _packing->create(); + case RunMode::Deploy: + return _packing->create(); + + case RunMode::Template: + return _packing->extractTemplates(); + + default: + break; + } + + return true; } diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 8090739..bb4b49e 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -159,6 +159,10 @@ RunMode DeployCore::getMode() { return RunMode::Init; } + if (C("getDefaultTemplate")) { + return RunMode::Template; + } + if (C("bin") || C("extraData")) { return RunMode::Deploy; } @@ -211,6 +215,11 @@ void DeployCore::help() { "(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."}, + } }, @@ -241,7 +250,7 @@ void DeployCore::help() { } }, { - "Part 3 Controll of packages options", { + "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"}, @@ -354,7 +363,8 @@ QStringList DeployCore::helpKeys() { "prefix", "deb", "allowEmptyPackages", - "runScript" + "runScript", + "getDefaultTemplate" }; } diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 4e073a7..1ebbc23 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -108,7 +108,8 @@ enum class RunMode: int { Info, Deploy, Clear, - Init + Init, + Template }; class Extracter; diff --git a/Deploy/packing.cpp b/Deploy/packing.cpp index 76a1245..c25223c 100644 --- a/Deploy/packing.cpp +++ b/Deploy/packing.cpp @@ -46,7 +46,7 @@ bool Packing::create() { return false; } - for (auto package : _pakages) { + for (auto package : qAsConst(_pakages)) { if (!package) return false; @@ -122,6 +122,11 @@ bool Packing::create() { bool Packing::movePackage(const QString &package, const QString &newLocation) { + // Disable mooving data for extracting defaults templates. + if (QuasarAppUtils::Params::isEndable("getDefaultTemplate")) { + return true; + } + if (moveData(_packagesLocations.value(package), newLocation)) { @@ -136,6 +141,32 @@ bool Packing::copyPackage(const QString &package, const QString &newLocation) { return _fileManager->copyFolder(_packagesLocations[package], newLocation, {}, nullptr, nullptr, true); } +bool Packing::extractTemplates() { + + const DeployConfig *cfg = DeployCore::_config; + + + QuasarAppUtils::Params::log("You use the getDefaultTemplate. All using templates will be extracted into " + cfg->getTargetDir(), + QuasarAppUtils::Info); + + if (!prepareTemplatesForExtract()) { + return false; + } + + for (auto package : qAsConst(_pakages)) { + + if (!package) + return false; + + if (!package->deployTemplate(*this)) + return false; + + delete package; + } + + return true; +} + QStringList Packing::availablePackages() const { return _packagesLocations.keys(); } @@ -161,6 +192,19 @@ bool Packing::collectPackages() { return true; } +bool Packing::prepareTemplatesForExtract() { + const DeployConfig *cfg = DeployCore::_config; + + for (auto it = cfg->packages().begin(); it != cfg->packages().end(); ++it) { + + _packagesLocations.insert(it.key(), + cfg->getTargetDir() + "/" + TMP_PACKAGE_DIR + "/" + it.key()); + } + + _defaultPackagesLocations = _packagesLocations; + return true; +} + bool Packing::moveData(const QString &from, const QString &to, const QString &ignore) const { if (from == to ) diff --git a/Deploy/packing.h b/Deploy/packing.h index 355ba09..909cdaf 100644 --- a/Deploy/packing.h +++ b/Deploy/packing.h @@ -34,12 +34,20 @@ public: bool movePackage(const QString &package, const QString &newLocation) override; bool copyPackage(const QString &package, const QString &newLocation) override; + /** + * @brief extractTemplates This method extract all default temlates. See the getDefaultTemplate for get more information. + * @return true if function finished successful. + */ + bool extractTemplates(); + protected: QStringList availablePackages() const override; private: bool collectPackages(); + bool prepareTemplatesForExtract(); + bool moveData(const QString& from, const QString& to, const QString &ignore = "") const; diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index ad27ac6..25e8f4f 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -174,6 +174,7 @@ private slots: void testEmptyPackages(); void testRunScripts(); + void testGetDefaultTemplate(); void customTest(); }; @@ -1100,6 +1101,33 @@ void deploytest::testRunScripts() { } +void deploytest::testGetDefaultTemplate() { + TestUtils utils; + + QString bin = TestBinDir + "TestOnlyC"; + + auto comapareTree = utils.createTree( + { + "./" + DISTRO_DIR + "/defaultDEBTemplate/Application/DEBIAN/control", + "./" + DISTRO_DIR + "/defaultDEBTemplate/Application/DEBIAN/postinst", + "./" + DISTRO_DIR + "/defaultDEBTemplate/Application/DEBIAN/prerm", + "./" + DISTRO_DIR + "/defaultDEBTemplate/Application/opt/Application/icons/Icon.png", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/config/config.xml", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/config/controlScript.qs", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/data/icons/Icon.png", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/meta/installscript.qs", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/meta/package.xml" + }); + + runTestParams( + {"-bin", bin, + "force-clear", + "getDefaultTemplate", + "deb", + "qif" + }, &comapareTree); +} + void deploytest::customTest() { // runTestParams({"-confFile", "path", // "qifFromSystem"}); diff --git a/docs/en/ExtractDefaultsTemplates.md b/docs/en/ExtractDefaultsTemplates.md new file mode 100644 index 0000000..92669c5 --- /dev/null +++ b/docs/en/ExtractDefaultsTemplates.md @@ -0,0 +1,48 @@ +# Extracting default templates + +Sometimes you need to create your own templates for installers or deb packages. +Fot this you can use the getDefaultTemplate option. This option extracts your distribution's default template to the target directory. This option will generate a template according to your settings. If you use the targetPackage option then a template will be generated for each package you configured. + +### Example: + +``` bash +cqtdeployer -bin myExecutable getDefaultTemplate qif +``` +This command generate template for qt installer framework into DistributionKit folder for your "myExecutable" programm. + +If you want change target location just add the targetDir option +``` bash +cqtdeployer -bin myExecutable getDefaultTemplate qif -targetDir "/distanation/Dir" + +``` + +## Work With multipackage distribution. + +This option sopport the configFile.json + +### Example : + +#### configFile.json +```json +{ + + "bin": [ + "myClientExecutable", + "myServerExecutable" + ], + + "targetPackage" : [ + ["Client", "myClientExecutable"], + ["Server", "myServerExecutable"] + ], +} +``` + +```bash +cqtdeployer getDefaultTemplate qif -confFile "path/to/configFile.json" +``` + + +## Note +This option support work with all packages except of zip. +If you want get more information about available packages see the packing [page](Package.md). \ No newline at end of file diff --git a/docs/en/Home.md b/docs/en/Home.md index 2cbf6d2..8ad8780 100644 --- a/docs/en/Home.md +++ b/docs/en/Home.md @@ -16,6 +16,7 @@ * [Reviews](ReleaseReviews) * [Compare Features](CompareFeatures) * [Adding extra files](ExtraFiles.md) +* [Retrieving packaging templates](ExtractDefaultsTemplates.md) ## Support the project diff --git a/docs/en/Options.md b/docs/en/Options.md index 3f17836..552bf91 100644 --- a/docs/en/Options.md +++ b/docs/en/Options.md @@ -51,6 +51,7 @@ cqtdeployer -option1 value1 -option2 list, of, values ​​flag1 flag2 flag3 | deploySystem-with-libc | Deploys all libs include libc (only linux). Do not use this option for a gui application, for gui use the deploySystem option. (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. For more information see the extracting default templates [page](ExtractDefaultsTemplates.md) | ### Deploy options diff --git a/docs/ru/ExtractDefaultsTemplates.md b/docs/ru/ExtractDefaultsTemplates.md new file mode 100644 index 0000000..779c96d --- /dev/null +++ b/docs/ru/ExtractDefaultsTemplates.md @@ -0,0 +1,52 @@ +# Извлечение шаблонов по умолчанию + +Иногда вам нужно создать свои собственные шаблоны для установщиков или пакетов deb. +Для этого вы можете использовать опцию getDefaultTemplate. + +Эта опция извлекает шаблон вашего дистрибутива по умолчанию в целевой каталог. + +Эта опция создаст шаблон в соответствии с вашими настройками. Если вы используете опцию targetPackage, то для каждого настроенного вами пакета будет создан шаблон. + +### Пример: + +```bash +cqtdeployer -bin myExecutable getDefaultTemplate qif +``` +Эта команда создает шаблон для среды установки qt в папке DistributionKit для вашей программы "myExecutable". + +Если вы хотите изменить целевое местоположение, просто добавьте параметр targetDir +```bash +cqtdeployer -bin myExecutable getDefaultTemplate qif -targetDir "/distanation/Dir" + +``` + +## Работа с мультипакетной раздачей. + +Эта опция поддерживает configFile.json + +### Пример: + +#### configFile.json +`` json +{ + + "корзина": [ + "myClientExecutable", + "myServerExecutable" + ], + + "targetPackage": [ + ["Клиент", "myClientExecutable"], + ["Сервер", "myServerExecutable"] + ], +} +`` + +```bash +cqtdeployer getDefaultTemplate qif -confFile "path/to/configFile.json" +``` + + +## Запись +Эта опция поддерживает работу со всеми пакетами, кроме zip. +Если вы хотите получить больше информации о доступных пакетах, смотрите упаковку [страница](Package.md). \ No newline at end of file diff --git a/docs/ru/Home.md b/docs/ru/Home.md index 961ee21..53d9d20 100644 --- a/docs/ru/Home.md +++ b/docs/ru/Home.md @@ -16,6 +16,7 @@ * [Обзоры](ReleaseReviews) * [Сравнение возможностей](CompareFeatures) * [Добавление дополнительных файлов](ExtraFiles.md) +* [Получение шаблонов упаковки](ExtractDefaultsTemplates.md) ## Поддержите проект diff --git a/docs/ru/Options.md b/docs/ru/Options.md index 0d65d5a..c1236e3 100644 --- a/docs/ru/Options.md +++ b/docs/ru/Options.md @@ -52,7 +52,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | deploySystem-with-libc | Копирует все зависимости в том числе и libc, не рекомендуется использовать с gui приложения, в место этого используйте опцию deploySystem | | noQt | Игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt. | | allowEmptyPackages | Разрешите настраивать пустые пакеты. | - +| getDefaultTemplate | Извлекает deb или qif шаблоны по умолчанию. Для получения дополнительной информации см. [Страницу](ExtractDefaultsTemplates.md) извлечения шаблонов по умолчанию. | ### Параметры развертывания: | Option | Descriptiion | From c363a59fa5f818053fa7dd8f6591ff2419aad5a8 Mon Sep 17 00:00:00 2001 From: EndrII Date: Sun, 10 Jan 2021 21:07:09 +0300 Subject: [PATCH 02/36] ref #457 "fix windows test case " --- UnitTests/tst_deploytest.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 25e8f4f..527aaa8 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1104,6 +1104,7 @@ void deploytest::testRunScripts() { void deploytest::testGetDefaultTemplate() { TestUtils utils; +#ifdef Q_OS_UNIX QString bin = TestBinDir + "TestOnlyC"; auto comapareTree = utils.createTree( @@ -1118,7 +1119,6 @@ void deploytest::testGetDefaultTemplate() { "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/meta/installscript.qs", "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/meta/package.xml" }); - runTestParams( {"-bin", bin, "force-clear", @@ -1126,6 +1126,25 @@ void deploytest::testGetDefaultTemplate() { "deb", "qif" }, &comapareTree); +#else + QString bin = TestBinDir + "TestOnlyC.exe"; + + auto comapareTree = utils.createTree( + { + "./" + DISTRO_DIR + "/defaultQIFWTemplate/config/config.xml", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/config/controlScript.qs", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/data/icons/Icon.png", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/meta/installscript.qs", + "./" + DISTRO_DIR + "/defaultQIFWTemplate/packages/Application/meta/package.xml" + }); + runTestParams( + {"-bin", bin, + "force-clear", + "getDefaultTemplate", + "qif" + }, &comapareTree); +#endif + } void deploytest::customTest() { From ec7a3111b9fd0abff84c58c3cb61d5a298e9985d Mon Sep 17 00:00:00 2001 From: EndrII Date: Mon, 11 Jan 2021 00:28:22 +0300 Subject: [PATCH 03/36] ref #457 fix clear option --- Deploy/deploy.cpp | 4 +--- Deploy/extracter.cpp | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/Deploy/deploy.cpp b/Deploy/deploy.cpp index dcfd40e..a4f29c5 100644 --- a/Deploy/deploy.cpp +++ b/Deploy/deploy.cpp @@ -87,14 +87,12 @@ bool Deploy::prepare() { bool Deploy::deploy() { + _extracter->clear(); switch (DeployCore::getMode() ) { case RunMode::Deploy: _extracter->deploy(); break; - case RunMode::Clear: - _extracter->clear(); - break; default: break; } diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 7dfcaad..63606f8 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -264,7 +264,6 @@ void Extracter::copyTr() { void Extracter::deploy() { QuasarAppUtils::Params::log("target deploy started!!", QuasarAppUtils::Info); - clear(); _cqt->smartMoveTargets(); _scaner->setEnvironment(DeployCore::_config->envirement.environmentList()); extractAllTargets(); From ffd7700ac3b79aaa4b16ee999df90870021129b1 Mon Sep 17 00:00:00 2001 From: EndrII Date: Mon, 11 Jan 2021 23:37:07 +0300 Subject: [PATCH 04/36] return to qt 5.15.0 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 72d38c9..391f591 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.15 +VERSION = 1.5.0.16 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index e55604f..3bb1b79 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.15 + 1.5.0.16 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 8b64b27..59e8a70 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.15 + 1.5.0.16 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index acd78f3..7c3d9c4 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.15 + 1.5.0.16 true false diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 827d926..2074181 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.15 +Version=1.5.0.16 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.15 +X-GNOME-Bugzilla-Version=1.5.0.16 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 063b3c6..8fd67dc 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.15' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.16' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From 7e9326f7ac1909754127f3674d6cc984d3a08fa6 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 12 Jan 2021 12:24:06 +0300 Subject: [PATCH 05/36] ref #457 "fixed typo errors" --- Deploy/packing.cpp | 2 +- docs/en/ExtractDefaultsTemplates.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Deploy/packing.cpp b/Deploy/packing.cpp index c25223c..4192098 100644 --- a/Deploy/packing.cpp +++ b/Deploy/packing.cpp @@ -122,7 +122,7 @@ bool Packing::create() { bool Packing::movePackage(const QString &package, const QString &newLocation) { - // Disable mooving data for extracting defaults templates. + // Disable moving data for extracting defaults templates. if (QuasarAppUtils::Params::isEndable("getDefaultTemplate")) { return true; } diff --git a/docs/en/ExtractDefaultsTemplates.md b/docs/en/ExtractDefaultsTemplates.md index 92669c5..892fe99 100644 --- a/docs/en/ExtractDefaultsTemplates.md +++ b/docs/en/ExtractDefaultsTemplates.md @@ -18,7 +18,7 @@ cqtdeployer -bin myExecutable getDefaultTemplate qif -targetDir "/distanation/Di ## Work With multipackage distribution. -This option sopport the configFile.json +This option support the configFile.json ### Example : @@ -45,4 +45,4 @@ cqtdeployer getDefaultTemplate qif -confFile "path/to/configFile.json" ## Note This option support work with all packages except of zip. -If you want get more information about available packages see the packing [page](Package.md). \ No newline at end of file +If you want get more information about available packages see the packing [page](Package.md). From 4a0d1fdb22f9f928793879fbae86315811b21778 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 12 Jan 2021 16:28:52 +0300 Subject: [PATCH 06/36] fix #457 "add stdc++ lib into ignore list" All linux systems contains the stdc++ library. --- Deploy/configparser.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 4cd758d..42ed00f 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -884,6 +884,7 @@ void ConfigParser::initIgnoreList() }; _config.ignoreList.addRule(addRuleUnix("libc")); + _config.ignoreList.addRule(addRuleUnix("libstdc++")); _config.ignoreList.addRule(addRuleUnix("ld-")); _config.ignoreList.addRule(addRuleUnix("libpthread")); _config.ignoreList.addRule(addRuleUnix("libm")); @@ -897,7 +898,7 @@ void ConfigParser::initIgnoreList() _config.ignoreList.addRule(addRuleUnix("libBrokenLocale")); _config.ignoreList.addRule(addRuleUnix("libSegFault")); _config.ignoreList.addRule(addRuleUnix("libanl")); - _config.ignoreList.addRule(addRuleUnix("libcrypt")); + _config.ignoreList.addRule(addRuleUnix("libcrypt.so")); _config.ignoreList.addRule(addRuleUnix("/gconv/")); _config.ignoreList.addRule(addRuleUnix("libnss")); } From d7b48f3529f881f40f30ed1a7b8c21feaab97c22 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 12 Jan 2021 17:49:11 +0300 Subject: [PATCH 07/36] v 1.5.0.17 alpha --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 391f591..3bdad4d 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.16 +VERSION = 1.5.0.17 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 3bb1b79..512880f 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.16 + 1.5.0.17 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 59e8a70..446d6fa 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.16 + 1.5.0.17 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 7c3d9c4..d478c38 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.16 + 1.5.0.17 true false diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 2074181..6717b33 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.16 +Version=1.5.0.17 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.16 +X-GNOME-Bugzilla-Version=1.5.0.17 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8fd67dc..a567405 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.16' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.17' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From 984f79aac1ed4bca21ae4341a96ebfc6bb67c48c Mon Sep 17 00:00:00 2001 From: Andrei Yankovich Date: Thu, 14 Jan 2021 15:34:20 +0300 Subject: [PATCH 08/36] Fix table view --- docs/ru/Options.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/ru/Options.md b/docs/ru/Options.md index c1236e3..f115e9c 100644 --- a/docs/ru/Options.md +++ b/docs/ru/Options.md @@ -53,6 +53,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | noQt | Игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt. | | allowEmptyPackages | Разрешите настраивать пустые пакеты. | | getDefaultTemplate | Извлекает deb или qif шаблоны по умолчанию. Для получения дополнительной информации см. [Страницу](ExtractDefaultsTemplates.md) извлечения шаблонов по умолчанию. | + ### Параметры развертывания: | Option | Descriptiion | From 04a5b1f291a0f46536b2c05e58e3ab08c9c4c15e Mon Sep 17 00:00:00 2001 From: kartaris <10552394+kartaris@users.noreply.github.com> Date: Fri, 15 Jan 2021 13:56:25 +0300 Subject: [PATCH 09/36] Build error fix --- Deploy/metafilemanager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index fdf951d..534deb8 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -29,7 +29,7 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { QString content; auto runScript = cnf->getRunScript(targetInfo.fileName()); if (runScript.size()) { - auto script = QFile(runScript); + QFile script(runScript); if (!script.open(QIODevice::ReadOnly)) { return false; } @@ -83,7 +83,7 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { QString content; auto runScript = cnf->getRunScript(targetInfo.fileName()); if (runScript.size()) { - auto script = QFile(runScript); + QFile script(runScript); if (!script.open(QIODevice::ReadOnly)) { return false; } From daa90118323725d5f22eb0601ef74d674cbed847 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 19 Jan 2021 10:44:53 +0300 Subject: [PATCH 10/36] added variable CQT_PKG_ROOT for applications. This variable contains path to root of the applications. --- Deploy/configparser.cpp | 10 +--------- Deploy/configparser.h | 1 - Deploy/extracter.cpp | 17 +++++++++-------- Deploy/metafilemanager.cpp | 6 +++++- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index d248f7b..013b7cb 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -45,20 +45,16 @@ bool parsePackagesPrivate(Container& mainContainer, for (const auto& str: inputParamsList) { auto paramsList = str.split(DeployCore::getSeparator(1)); auto first = paramsList.value(0, ""); - auto second = paramsList.value(1, ""); if (paramsList.size() == 1) (valueLink(mainContainer, defaultPackage, DistroModule{defaultPackage}).*adder)(first); else { - - bool skipError = QuasarAppUtils::Params::isEndable("allowEmptyPackages"); first = PathUtils::fullStripPath(first); if (!skipError && !mainContainer.contains(first)) { return false; } - for (int i = 1; i < paramsList.size(); ++i) { (valueLink(mainContainer, first, DistroModule{first}).*adder)(paramsList[i]); } @@ -713,10 +709,6 @@ bool ConfigParser::parseInitMode() { return true; } -bool ConfigParser::parseGetTemplateMode() { - -} - bool ConfigParser::parseClearMode() { setTargetDir("./" + DISTRO_DIR); @@ -825,7 +817,7 @@ bool ConfigParser::setTargetsInDir(const QString &dir, bool recursive) { } bool result = false; - for (const auto &file : list) { + for (const auto &file : qAsConst(list)) { if (file.isDir()) { result |= setTargetsInDir(file.absoluteFilePath(), recursive); diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 6c6f109..3afdaab 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -55,7 +55,6 @@ private: bool parseDeployMode(); bool parseInfoMode(); bool parseInitMode(); - bool parseGetTemplateMode(); bool parseClearMode(); diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 63606f8..38c77d4 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -111,8 +111,8 @@ void Extracter::extractExtraDataTargets() { auto cfg = DeployCore::_config; for (auto i = cfg->packages().cbegin(); i != cfg->packages().cend(); ++i) { auto &dep = _packageDependencyes[i.key()]; - - for (const auto &target : i.value().extraData()) { + const auto extraData = i.value().extraData(); + for (const auto &target : extraData) { dep.addExtraData(target); } } @@ -136,8 +136,9 @@ void Extracter::copyExtraPlugins(const QString& package) { auto cnf = DeployCore::_config; auto targetPath = cnf->getTargetDir() + "/" + package; auto distro = cnf->getDistroFromPackage(package); + const auto plugins = distro.extraPlugins(); - for (auto extraPlugin : distro.extraPlugins()) { + for (const auto &extraPlugin : plugins) { info.setFile(extraPlugin); @@ -166,7 +167,7 @@ void Extracter::copyExtraPlugins(const QString& package) { QuasarAppUtils::Warning); } - for (const auto& plugin : plugins) { + for (const auto& plugin : qAsConst(plugins)) { extractPluginLib(plugin, package); } } @@ -190,7 +191,7 @@ void Extracter::extractPlugins() { _fileManager->copyFiles(plugins, targetPath + distro.getPluginsOutDir(), 1, DeployCore::debugExtensions(), &listItems); - for (const auto &item : listItems) { + for (const auto &item : qAsConst(listItems)) { extractPluginLib(item, i.key()); } @@ -397,8 +398,8 @@ bool Extracter::extractQml() { QStringList plugins; QStringList listItems; - - for (const auto &qmlInput: distro.qmlInput()) { + const auto qmlInput = distro.qmlInput(); + for (const auto &qmlInput: qmlInput) { QFileInfo info(qmlInput); if (!info.isDir()) { @@ -430,7 +431,7 @@ bool Extracter::extractQml() { return false; } - for (const auto &item : listItems) { + for (const auto &item : qAsConst(listItems)) { extractPluginLib(item, i.key()); } diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index fdf951d..093bde9 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -40,7 +40,9 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { content = "@echo off \n" "SET BASE_DIR=%~dp0\n" - "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%\n" + "SET PATH=\"%BASE_DIR%\"" + distro.getLibOutDir() + ";%PATH%\n" + "SET CQT_PKG_ROOT=\"%BASE_DIR%\"\n" + "%2\n" "call \"%BASE_DIR%" + distro.getBinOutDir() + "%0\" %1 \n"; @@ -101,6 +103,8 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { "export QT_PLUGIN_PATH=\"$BASE_DIR\"" + distro.getPluginsOutDir() + ":$QT_PLUGIN_PATH\n" "export QTWEBENGINEPROCESS_PATH=\"$BASE_DIR\"" + distro.getBinOutDir() + "QtWebEngineProcess\n" "export QTDIR=\"$BASE_DIR\"\n" + "export CQT_PKG_ROOT=\"$BASE_DIR\"\n" + "export " "QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"" + distro.getPluginsOutDir() + "platforms:$QT_QPA_PLATFORM_PLUGIN_PATH\n" From ae4f8ea9fc9186923999cd5af27fd6a39e2e9024 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 19 Jan 2021 10:52:32 +0300 Subject: [PATCH 11/36] fix tests --- UnitTests/testRes/TestQMLWidgets.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/UnitTests/testRes/TestQMLWidgets.sh b/UnitTests/testRes/TestQMLWidgets.sh index 02cbab8..eafc2db 100755 --- a/UnitTests/testRes/TestQMLWidgets.sh +++ b/UnitTests/testRes/TestQMLWidgets.sh @@ -6,6 +6,7 @@ export QML2_IMPORT_PATH="$BASE_DIR"/q/and/q/:$QML2_IMPORT_PATH export QT_PLUGIN_PATH="$BASE_DIR"/plugins/:$QT_PLUGIN_PATH export QTWEBENGINEPROCESS_PATH="$BASE_DIR"/bin/QtWebEngineProcess export QTDIR="$BASE_DIR" +export CQT_PKG_ROOT="$BASE_DIR" export QT_QPA_PLATFORM_PLUGIN_PATH="$BASE_DIR"/plugins/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH "$BASE_DIR/bin/TestQMLWidgets" "$@" From 041394eac5c5480f927599e4b6be0dda2f656a69 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 19 Jan 2021 14:26:11 +0300 Subject: [PATCH 12/36] fix recursive moving --- Deploy/Deploy.pro | 2 ++ Deploy/configparser.cpp | 70 ++++++++++++++++++++++++++--------------- Deploy/configparser.h | 3 +- Deploy/deployconfig.cpp | 2 +- Deploy/deployconfig.h | 4 +-- Deploy/filemanager.cpp | 4 +++ Deploy/targetdata.cpp | 1 + Deploy/targetdata.h | 22 +++++++++++++ 8 files changed, 79 insertions(+), 29 deletions(-) create mode 100644 Deploy/targetdata.cpp create mode 100644 Deploy/targetdata.h diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 3bdad4d..cce480d 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -77,6 +77,7 @@ SOURCES += \ qml.cpp \ libinfo.cpp \ qtdir.cpp \ + targetdata.cpp \ targetinfo.cpp \ zipcompresser.cpp @@ -114,6 +115,7 @@ HEADERS += \ qml.h \ libinfo.h \ qtdir.h \ + targetdata.h \ targetinfo.h \ zipcompresser.h diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index d248f7b..dcaf16c 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -487,29 +487,32 @@ bool ConfigParser::initPackages() { for (auto& str: tar_packages_array) { - auto pair = str.split(DeployCore::getSeparator(1)); - auto package = PathUtils::fullStripPath(pair.value(0, "")); + auto paramsList = str.split(DeployCore::getSeparator(1)); + auto package = PathUtils::fullStripPath(paramsList.value(0, "")); - auto list = _config.getTargetsListByFilter(pair.value(1, "")); + for (int i = 1; i < paramsList.size(); ++i) { + auto targetPattern = paramsList.value(i); + auto list = _config.getTargetsListByFilter(targetPattern); - if (!list.size()) { - auto warning = QString("You create the %0 package with the %1 pattern, " - "but no matches were found for this pattern. "). - arg(package, pair.value(1, "")); - QuasarAppUtils::Params::log(warning, QuasarAppUtils::Warning); - continue; - } - - for (auto it = list.begin(); it != list.end(); ++it) { - if (!configuredTargets.contains(it.key())) { - configuredTargets.insert(it.key()); - it.value()->setPackage(package); + if (!list.size()) { + auto warning = QString("You create the %0 package with the %1 pattern, " + "but no matches were found for this pattern. "). + arg(package, targetPattern); + QuasarAppUtils::Params::log(warning, QuasarAppUtils::Warning); + continue; } + + for (auto it = list.begin(); it != list.end(); ++it) { + if (!configuredTargets.contains(it.key())) { + configuredTargets.insert(it.key()); + it.value()->setPackage(package); + } + } + + _config.packagesEdit().insert(package, DistroModule{package}); } - _config.packagesEdit().insert(package, DistroModule{package}); - - if (pair.size() != 2) { + if (paramsList.size() < 2) { defaultPackage = package; } } @@ -773,7 +776,10 @@ bool ConfigParser::setTargets(const QStringList &value) { if (targetInfo.isFile()) { - _config.targetsEdit().unite(createTarget(QDir::fromNativeSeparators(i))); + auto target = createTarget(QDir::fromNativeSeparators(i)); + if (!_config.targetsEdit().contains(target.target)) { + _config.targetsEdit().insert(target.target, target.targetInfo); + } isfillList = true; } @@ -825,7 +831,7 @@ bool ConfigParser::setTargetsInDir(const QString &dir, bool recursive) { } bool result = false; - for (const auto &file : list) { + for (const auto &file : qAsConst(list)) { if (file.isDir()) { result |= setTargetsInDir(file.absoluteFilePath(), recursive); @@ -838,9 +844,13 @@ bool ConfigParser::setTargetsInDir(const QString &dir, bool recursive) { if (sufix.isEmpty() || name.contains(".dll", Qt::CaseInsensitive) || name.contains(".so", Qt::CaseInsensitive) || name.contains(".exe", Qt::CaseInsensitive)) { - result = true; - _config.targetsEdit().unite(createTarget(QDir::fromNativeSeparators(file.absoluteFilePath()))); + auto target = createTarget(QDir::fromNativeSeparators(file.absoluteFilePath())); + if (!_config.targetsEdit().contains(target.target)) { + _config.targetsEdit().insert(target.target, target.targetInfo); + } + + result = true; } @@ -849,13 +859,13 @@ bool ConfigParser::setTargetsInDir(const QString &dir, bool recursive) { return result; } -QHash ConfigParser::createTarget(const QString &target) { +TargetData ConfigParser::createTarget(const QString &target) { TargetInfo libinfo; auto key = target; if (_scaner->fillLibInfo(libinfo, key)) { - return {{libinfo.fullPath(), libinfo}}; + return {libinfo.fullPath(), libinfo}; } - return {{key, {}}}; + return {key, {}}; } QHash @@ -1455,6 +1465,16 @@ bool ConfigParser::smartMoveTargets() { bool result = true; for (auto i = _config.targets().cbegin(); i != _config.targets().cend(); ++i) { + if (!i.value().isValid()) { + QuasarAppUtils::Params::log(QString("Interna error ocurred in %0. Target not inited.").arg(__FUNCTION__), + QuasarAppUtils::Error); + QuasarAppUtils::Params::log(QString("If you see this message please create a new issue" + " about this problem on the official github page" + " https://github.com/QuasarApp/CQtDeployer/issues/new/choose. "), + QuasarAppUtils::Error); + return false; + } + QFileInfo target(i.key()); QString targetPath = _config.getTargetDir() + "/" + i.value().getPackage(); diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 6c6f109..899773d 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -11,6 +11,7 @@ #include "distrostruct.h" #include "envirement.h" #include "ignorerule.h" +#include "targetdata.h" #include "targetinfo.h" #include @@ -100,7 +101,7 @@ private: void readKey(const QString &key, const QJsonObject &obj, const QString &confFileDir) const; void readString(const QString &key, const QString &val, const QString &confFileDir) const; - QHash createTarget(const QString &target); + TargetData createTarget(const QString &target); QHash moveTarget(TargetInfo target, const QString &newLocation); diff --git a/Deploy/deployconfig.cpp b/Deploy/deployconfig.cpp index 8f4ce45..6a1beac 100644 --- a/Deploy/deployconfig.cpp +++ b/Deploy/deployconfig.cpp @@ -52,7 +52,7 @@ DistroModule DeployConfig::getDistroFromPackage(const QString &package) const { return _packages.value(package, DistroModule{package}); } -QMultiHash &DeployConfig::targetsEdit() { +QHash &DeployConfig::targetsEdit() { return _targets; } diff --git a/Deploy/deployconfig.h b/Deploy/deployconfig.h index 8eb4213..5f583ef 100644 --- a/Deploy/deployconfig.h +++ b/Deploy/deployconfig.h @@ -95,7 +95,7 @@ public: const QHash& targets() const; const QHash& packages() const; - QMultiHash &targetsEdit(); + QHash &targetsEdit(); QHash& packagesEdit(); /** @@ -125,7 +125,7 @@ private: * key - path * value - create wrapper */ - QMultiHash _targets; + QHash _targets; /** * @brief packages diff --git a/Deploy/filemanager.cpp b/Deploy/filemanager.cpp index 02d9688..0cb25e4 100644 --- a/Deploy/filemanager.cpp +++ b/Deploy/filemanager.cpp @@ -352,6 +352,10 @@ bool FileManager::cp(const QString &from, bool FileManager::moveFolder(const QString &from, const QString &to, const QString& ignore) { QFileInfo info(from); + if (to.contains(from)) { + return false; + } + if (!info.exists()) return false; diff --git a/Deploy/targetdata.cpp b/Deploy/targetdata.cpp new file mode 100644 index 0000000..2bacb3d --- /dev/null +++ b/Deploy/targetdata.cpp @@ -0,0 +1 @@ +#include "targetdata.h" diff --git a/Deploy/targetdata.h b/Deploy/targetdata.h new file mode 100644 index 0000000..94acaf2 --- /dev/null +++ b/Deploy/targetdata.h @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2018-2021 QuasarApp. + * Distributed under the lgplv3 software license, see the accompanying + * Everyone is permitted to copy and distribute verbatim copies + * of this license document, but changing it is not allowed. + */ + +#ifndef TARGETDATA_H +#define TARGETDATA_H + +#include "targetinfo.h" + + +/** + * @brief The TargetData struct simple info structo about target. + */ +struct TargetData { + QString target; + TargetInfo targetInfo; +}; + +#endif // TARGETDATA_H From 7234f0a12f58d5ec9e53b1aefd61b85ebab9e979 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 19 Jan 2021 14:33:36 +0300 Subject: [PATCH 13/36] fix tests --- UnitTests/tst_deploytest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 527aaa8..d127db6 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -2615,7 +2615,7 @@ void deploytest::testOutDirs() { file.close(); QVERIFY(runScript.contains("SET BASE_DIR=%~dp0")); - QVERIFY(runScript.contains("SET PATH=%BASE_DIR%\\lolLib\\;%PATH%")); + QVERIFY(runScript.contains("SET PATH=\"%BASE_DIR%\"\\lolLib\\;%PATH%")); QVERIFY(runScript.contains("call \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); From 6b12f921c12b60c8a945d7fd0cdc87dd9ce378f2 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 19 Jan 2021 16:02:08 +0300 Subject: [PATCH 14/36] version 1.5.0.18 alpha --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- docs/en/Guide.md | 1 - docs/ru/Guide.md | 3 +-- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 8 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 3bdad4d..e58546a 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.17 +VERSION = 1.5.0.18 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 512880f..80127b9 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.17 + 1.5.0.18 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 446d6fa..834eab3 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.17 + 1.5.0.18 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index d478c38..232294c 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.17 + 1.5.0.18 true false diff --git a/docs/en/Guide.md b/docs/en/Guide.md index 7cbaf6f..703511b 100644 --- a/docs/en/Guide.md +++ b/docs/en/Guide.md @@ -1,5 +1,4 @@ # How to deploy C++ Application -Hi my name is Yankovich Andrei and i an maintainer of the [CQtDeployer tool](https://github.com/QuasarApp/CQtDeployer). In this article i describe deploy processes of c++/qt application with cqtdeployer. diff --git a/docs/ru/Guide.md b/docs/ru/Guide.md index d36da55..20bc2b6 100644 --- a/docs/ru/Guide.md +++ b/docs/ru/Guide.md @@ -1,5 +1,4 @@ # Как развернуть приложение C ++ -Привет, меня зовут Янкович Андрей, я сопровождаю [инструмент CQtDeployer](https://github.com/QuasarApp/CQtDeployer). В этой статье я описываю процессы развертывания приложения c++/qt с помощью cqtdeployer. @@ -92,4 +91,4 @@ cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDi ``` cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake/path/to/my/qmake -``` \ No newline at end of file +``` diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 6717b33..57acd90 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.17 +Version=1.5.0.18 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.17 +X-GNOME-Bugzilla-Version=1.5.0.18 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index a567405..b6fe0b9 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.17' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.18' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From a386f4e3e200e2071bfe121ad23defbbd738b879 Mon Sep 17 00:00:00 2001 From: EndrII Date: Wed, 20 Jan 2021 09:11:33 +0300 Subject: [PATCH 15/36] download qif from mirror. --- QIFData/scripts/QIF.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/QIFData/scripts/QIF.py b/QIFData/scripts/QIF.py index 49c8bbd..30e322d 100755 --- a/QIFData/scripts/QIF.py +++ b/QIFData/scripts/QIF.py @@ -20,6 +20,8 @@ print("VERSION=" + VERSION) # Command Example : aqt tool linux tools_ifw 4.0 qt.tools.ifw.40 command = ["aqt", "tool", + "-b", + "https://mirrors.ocf.berkeley.edu/qt/", "--outputdir", PATHQIF, PLATFORM, From 9192ec9a61a0010735b81775c700ddf280b8af1a Mon Sep 17 00:00:00 2001 From: EndrII Date: Thu, 21 Jan 2021 18:36:57 +0300 Subject: [PATCH 16/36] ref #503 fix error message. --- Deploy/configparser.cpp | 2 +- Deploy/deploy.cpp | 4 +++- Deploy/extracter.cpp | 10 ++++++++-- Deploy/extracter.h | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index a0a9796..17aa839 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -1458,7 +1458,7 @@ bool ConfigParser::smartMoveTargets() { for (auto i = _config.targets().cbegin(); i != _config.targets().cend(); ++i) { if (!i.value().isValid()) { - QuasarAppUtils::Params::log(QString("Interna error ocurred in %0. Target not inited.").arg(__FUNCTION__), + QuasarAppUtils::Params::log(QString("Internal error ocurred in %0. Target not inited.").arg(__FUNCTION__), QuasarAppUtils::Error); QuasarAppUtils::Params::log(QString("If you see this message please create a new issue" " about this problem on the official github page" diff --git a/Deploy/deploy.cpp b/Deploy/deploy.cpp index a4f29c5..5d75556 100644 --- a/Deploy/deploy.cpp +++ b/Deploy/deploy.cpp @@ -91,7 +91,9 @@ bool Deploy::deploy() { switch (DeployCore::getMode() ) { case RunMode::Deploy: - _extracter->deploy(); + if (!_extracter->deploy()) + return false; + break; default: break; diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 38c77d4..7d33e4e 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -262,10 +262,13 @@ void Extracter::copyTr() { } } -void Extracter::deploy() { +bool Extracter::deploy() { QuasarAppUtils::Params::log("target deploy started!!", QuasarAppUtils::Info); - _cqt->smartMoveTargets(); + if (!_cqt->smartMoveTargets()) { + return false; + } + _scaner->setEnvironment(DeployCore::_config->envirement.environmentList()); extractAllTargets(); extractExtraDataTargets(); @@ -283,6 +286,7 @@ void Extracter::deploy() { if (!extractWebEngine()) { QuasarAppUtils::Params::log("deploy webEngine failed", QuasarAppUtils::Error); + return false; } if (!deployMSVC()) { @@ -293,6 +297,8 @@ void Extracter::deploy() { QuasarAppUtils::Params::log("deploy done!", QuasarAppUtils::Info); + return true; + } bool Extracter::copyTranslations(const QStringList &list, const QString& package) { diff --git a/Deploy/extracter.h b/Deploy/extracter.h index b99bf2f..97717d8 100644 --- a/Deploy/extracter.h +++ b/Deploy/extracter.h @@ -24,7 +24,7 @@ class DEPLOYSHARED_EXPORT Extracter { public: explicit Extracter(FileManager *fileManager, PluginsParser* pluginsParser, ConfigParser * cqt, DependenciesScanner *_scaner); - void deploy(); + bool deploy(); void clear(); private: From ad84dfd9229ca5d5ef70135b3f16611b42e9942e Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 22 Jan 2021 10:05:20 +0300 Subject: [PATCH 17/36] ref #503 added scaner for general files --- Deploy/Deploy.pro | 2 ++ Deploy/dependenciesscanner.cpp | 9 ++++++--- Deploy/dependenciesscanner.h | 2 ++ Deploy/elf_type.cpp | 2 +- Deploy/generalfiles_type.cpp | 24 ++++++++++++++++++++++++ Deploy/generalfiles_type.h | 26 ++++++++++++++++++++++++++ UnitTests/tst_deploytest.cpp | 20 ++++++++++++++++++++ 7 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 Deploy/generalfiles_type.cpp create mode 100644 Deploy/generalfiles_type.h diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index e267055..e5348e8 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -63,6 +63,7 @@ SOURCES += \ extracter.cpp \ filemanager.cpp \ Distributions/idistribution.cpp \ + generalfiles_type.cpp \ ignorerule.cpp \ metafilemanager.cpp \ packagecontrol.cpp \ @@ -101,6 +102,7 @@ HEADERS += \ extracter.h \ filemanager.h \ Distributions/idistribution.h \ + generalfiles_type.h \ ignorerule.h \ metafilemanager.h \ packagecontrol.h \ diff --git a/Deploy/dependenciesscanner.cpp b/Deploy/dependenciesscanner.cpp index 7f1d83a..5b37bd7 100644 --- a/Deploy/dependenciesscanner.cpp +++ b/Deploy/dependenciesscanner.cpp @@ -90,10 +90,13 @@ bool DependenciesScanner::fillLibInfo(LibInfo &info, const QString &file) const case PrivateScaner::PE: { return _peScaner.getLibInfo(file, info); } - case PrivateScaner::ELF: - return _elfScaner.getLibInfo(file, info); - default: return false; + case PrivateScaner::ELF: { + return _elfScaner.getLibInfo(file, info); + } + + default: + return _filesScaner.getLibInfo(file, info); } } diff --git a/Deploy/dependenciesscanner.h b/Deploy/dependenciesscanner.h index d6c76d0..6dfb57a 100644 --- a/Deploy/dependenciesscanner.h +++ b/Deploy/dependenciesscanner.h @@ -14,6 +14,7 @@ #include "pe_type.h" #include "elf_type.h" #include "libinfo.h" +#include "generalfiles_type.h" enum class PrivateScaner: unsigned char { @@ -32,6 +33,7 @@ private: PE _peScaner; ELF _elfScaner; + GeneralFiles _filesScaner; PrivateScaner getScaner(const QString& lib) const; diff --git a/Deploy/elf_type.cpp b/Deploy/elf_type.cpp index b4f866e..8454b61 100644 --- a/Deploy/elf_type.cpp +++ b/Deploy/elf_type.cpp @@ -18,7 +18,7 @@ ELF::ELF() QByteArrayList ELF::getDynamicString(ElfReader& reader) const { auto headers = reader.readHeaders(); - for (const auto §ionHeader : headers.sectionHeaders) { + for (const auto §ionHeader : qAsConst(headers.sectionHeaders)) { if (sectionHeader.name == ".dynstr") { auto arr = reader.readSection(sectionHeader.name).split(0); return arr; diff --git a/Deploy/generalfiles_type.cpp b/Deploy/generalfiles_type.cpp new file mode 100644 index 0000000..49f044a --- /dev/null +++ b/Deploy/generalfiles_type.cpp @@ -0,0 +1,24 @@ +//# +//# Copyright (C) 2021-2021 QuasarApp. +//# Distributed under the lgplv3 software license, see the accompanying +//# Everyone is permitted to copy and distribute verbatim copies +//# of this license document, but changing it is not allowed. +//# + +#include "generalfiles_type.h" + +GeneralFiles::GeneralFiles() +{ + +} + +bool GeneralFiles::getLibInfo(const QString &lib, LibInfo &info) const { + + QFileInfo fileInfo(lib); + + info.setPlatform(GeneralFile); + info.setName(fileInfo.fileName()); + info.setPath(fileInfo.absolutePath()); + + return true; +} diff --git a/Deploy/generalfiles_type.h b/Deploy/generalfiles_type.h new file mode 100644 index 0000000..de21469 --- /dev/null +++ b/Deploy/generalfiles_type.h @@ -0,0 +1,26 @@ +//# +//# Copyright (C) 2021-2021 QuasarApp. +//# Distributed under the lgplv3 software license, see the accompanying +//# Everyone is permitted to copy and distribute verbatim copies +//# of this license document, but changing it is not allowed. +//# + +#ifndef GENERALFILES_TYPE_H +#define GENERALFILES_TYPE_H + +#include "igetlibinfo.h" + +/** + * @brief The GeneralFiles class intendet for extract information of general files. + * This is defautl extracte for unknown files types. + */ +class GeneralFiles: public IGetLibInfo +{ +public: + GeneralFiles(); + + // IGetLibInfo interface + bool getLibInfo(const QString &lib, LibInfo &info) const override; +}; + +#endif // GENERALFILES_TYPE_H diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index d127db6..f21d047 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -175,6 +175,7 @@ private slots: void testRunScripts(); void testGetDefaultTemplate(); + void testDeployGeneralFiles(); void customTest(); }; @@ -1147,6 +1148,25 @@ void deploytest::testGetDefaultTemplate() { } +void deploytest::testDeployGeneralFiles() { + TestUtils utils; + + QString bin = TestBinDir + "/../../CMakeLists.txt"; + + auto comapareTree = utils.createTree( + { + "./" + DISTRO_DIR + "/bin/CMakeLists.txt", + "./" + DISTRO_DIR + "/bin/qt.conf", + + }); + + runTestParams( + {"-bin", bin, + "-binOut", "bin", + "force-clear" + }, &comapareTree); +} + void deploytest::customTest() { // runTestParams({"-confFile", "path", // "qifFromSystem"}); From 7ad3c949ea5b534a4d90d7359cbf70b9ac6c8be3 Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 22 Jan 2021 10:43:22 +0300 Subject: [PATCH 18/36] v1.5.0.19 Alpha --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index e267055..d85890e 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.18 +VERSION = 1.5.0.19 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 80127b9..cc5c588 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.18 + 1.5.0.19 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 834eab3..186acfd 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.18 + 1.5.0.19 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 232294c..5273852 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.18 + 1.5.0.19 true false diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 57acd90..94f0627 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.18 +Version=1.5.0.19 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.18 +X-GNOME-Bugzilla-Version=1.5.0.19 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index b6fe0b9..80fe663 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.18' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.19' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From 2b19f710f1fbf23e21d2efe12dc7353ae786f8ad Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 22 Jan 2021 17:56:13 +0300 Subject: [PATCH 19/36] Fix of a windows launcher --- Deploy/metafilemanager.cpp | 4 ++-- UnitTests/tst_deploytest.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 5256a2e..8dc1845 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -40,8 +40,8 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { content = "@echo off \n" "SET BASE_DIR=%~dp0\n" - "SET PATH=\"%BASE_DIR%\"" + distro.getLibOutDir() + ";%PATH%\n" - "SET CQT_PKG_ROOT=\"%BASE_DIR%\"\n" + "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%\n" + "SET CQT_PKG_ROOT=%BASE_DIR%\n" "%2\n" "call \"%BASE_DIR%" + distro.getBinOutDir() + "%0\" %1 \n"; diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index d127db6..527aaa8 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -2615,7 +2615,7 @@ void deploytest::testOutDirs() { file.close(); QVERIFY(runScript.contains("SET BASE_DIR=%~dp0")); - QVERIFY(runScript.contains("SET PATH=\"%BASE_DIR%\"\\lolLib\\;%PATH%")); + QVERIFY(runScript.contains("SET PATH=%BASE_DIR%\\lolLib\\;%PATH%")); QVERIFY(runScript.contains("call \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); From 97c4089b9797aef3c2bcb65f3f20589e6699369a Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 22 Jan 2021 17:58:32 +0300 Subject: [PATCH 20/36] v 1.5.0.20 alpha --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index d85890e..7233342 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.19 +VERSION = 1.5.0.20 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index cc5c588..f592eeb 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.19 + 1.5.0.20 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 186acfd..4168027 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.19 + 1.5.0.20 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 5273852..e6b2711 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.19 + 1.5.0.20 true false diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 94f0627..f0fc36f 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.19 +Version=1.5.0.20 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.19 +X-GNOME-Bugzilla-Version=1.5.0.20 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 80fe663..9967556 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.19' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.20' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From 07b51f1ffa78be269f63beb34cc43e64c284c2ee Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 22 Jan 2021 18:12:15 +0300 Subject: [PATCH 21/36] fix shortcuts of installer --- Deploy/Distributions/idistribution.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 8a13106..4152431 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -195,8 +195,8 @@ bool iDistribution::collectInfo(const DistroModule& pkg, cmdArray += ","; bashArray += " "; } - cmdArray += "\"" + releativeLocation(pkg) + "/" + fileinfo.fileName() + "\""; - bashArray += fileinfo.fileName(); + cmdArray += "\"" + releativeLocation(pkg) + "/" + fileinfo.baseName() + "\""; + bashArray += fileinfo.baseName(); } } cmdArray += "]"; From aed524090681060ba9930eb36b02bb019e62b1b5 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 26 Jan 2021 13:21:58 +0300 Subject: [PATCH 22/36] Change command for run application in Windows. (needed for hide cmd) --- Deploy/metafilemanager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 8dc1845..e16d66a 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -43,10 +43,10 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%\n" "SET CQT_PKG_ROOT=%BASE_DIR%\n" - "%2\n" - "call \"%BASE_DIR%" + distro.getBinOutDir() + "%0\" %1 \n"; + "%3\n" + "start \"%0\" /B \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; - content = content.arg(targetInfo.fileName()).arg("%*"); + content = content.arg(targetInfo.baseName(), targetInfo.fileName()).arg("%*"); content = content.arg(generateCustoScriptBlok(true)); content = QDir::toNativeSeparators(content); From 6d3703935122769c3fed0e6ddd1e9ddfb5dc11f6 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 26 Jan 2021 13:25:50 +0300 Subject: [PATCH 23/36] v1.5.0.21 alpha --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index ae3c8f8..c36c32f 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.20 +VERSION = 1.5.0.21 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index f592eeb..701c737 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.20 + 1.5.0.21 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 4168027..4a8743c 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.20 + 1.5.0.21 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index e6b2711..8392f28 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.20 + 1.5.0.21 true false diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index f0fc36f..285bd00 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.20 +Version=1.5.0.21 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.20 +X-GNOME-Bugzilla-Version=1.5.0.21 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 9967556..6725122 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.20' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.21' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From ac553864f21601f5f2716697462259fadac1fa91 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 26 Jan 2021 13:40:04 +0300 Subject: [PATCH 24/36] fix tests --- UnitTests/tst_deploytest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index c655d42..f1dbb12 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -2636,7 +2636,7 @@ void deploytest::testOutDirs() { QVERIFY(runScript.contains("SET BASE_DIR=%~dp0")); QVERIFY(runScript.contains("SET PATH=%BASE_DIR%\\lolLib\\;%PATH%")); - QVERIFY(runScript.contains("call \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); + QVERIFY(runScript.contains("start "TestQMLWidgets" /B \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); #endif From cca1e4f6aac0f71ac847403a8bd4d43233c66713 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 26 Jan 2021 16:30:03 +0300 Subject: [PATCH 25/36] fix test --- Deploy/metafilemanager.cpp | 2 +- UnitTests/tst_deploytest.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index e16d66a..9a8c9c4 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -46,7 +46,7 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { "%3\n" "start \"%0\" /B \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; - content = content.arg(targetInfo.baseName(), targetInfo.fileName()).arg("%*"); + content = content.arg(targetInfo.baseName(), targetInfo.fileName(), "%*"); content = content.arg(generateCustoScriptBlok(true)); content = QDir::toNativeSeparators(content); diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index f1dbb12..6c2b4a6 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -2636,7 +2636,7 @@ void deploytest::testOutDirs() { QVERIFY(runScript.contains("SET BASE_DIR=%~dp0")); QVERIFY(runScript.contains("SET PATH=%BASE_DIR%\\lolLib\\;%PATH%")); - QVERIFY(runScript.contains("start "TestQMLWidgets" /B \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); + QVERIFY(runScript.contains("start \"TestQMLWidgets\" /B \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); #endif From 400847840def02321955e865c387af4d8353f54a Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 26 Jan 2021 17:17:33 +0300 Subject: [PATCH 26/36] added more logs --- UnitTests/tst_deploytest.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 6c2b4a6..a00b4cf 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -2634,6 +2634,8 @@ void deploytest::testOutDirs() { runScript = file.readAll(); file.close(); + qDebug() << "runScript =" << runScript; + QVERIFY(runScript.contains("SET BASE_DIR=%~dp0")); QVERIFY(runScript.contains("SET PATH=%BASE_DIR%\\lolLib\\;%PATH%")); QVERIFY(runScript.contains("start \"TestQMLWidgets\" /B \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); From f72d464a182b081e424eab28aea37c031425070e Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 26 Jan 2021 20:06:31 +0300 Subject: [PATCH 27/36] fix options in the start commnad of the run script --- Deploy/metafilemanager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 9a8c9c4..932a447 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -44,12 +44,14 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { "SET CQT_PKG_ROOT=%BASE_DIR%\n" "%3\n" - "start \"%0\" /B \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; + "start \"%0\" %4 \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; content = content.arg(targetInfo.baseName(), targetInfo.fileName(), "%*"); content = content.arg(generateCustoScriptBlok(true)); content = QDir::toNativeSeparators(content); + content = content.arg("/B"); + } QString fname = DeployCore::_config->getTargetDir(target) + QDir::separator() + targetInfo.baseName()+ ".bat"; From c4851627adcc0b34ebdd37319f3e3d6d62e02370 Mon Sep 17 00:00:00 2001 From: EndrII Date: Tue, 26 Jan 2021 23:15:09 +0300 Subject: [PATCH 28/36] added article about default environment variables --- docs/en/EnvironmentVariables.md | 44 +++++++++++++++++++++++++++++++++ docs/en/Home.md | 21 ++++++++-------- docs/ru/EnvironmentVariables.md | 42 +++++++++++++++++++++++++++++++ docs/ru/Home.md | 21 ++++++++-------- 4 files changed, 108 insertions(+), 20 deletions(-) create mode 100644 docs/en/EnvironmentVariables.md create mode 100644 docs/ru/EnvironmentVariables.md diff --git a/docs/en/EnvironmentVariables.md b/docs/en/EnvironmentVariables.md new file mode 100644 index 0000000..f249f9d --- /dev/null +++ b/docs/en/EnvironmentVariables.md @@ -0,0 +1,44 @@ +# Environment variables of the CQtDeployer +This page contains information about environment variables of the default launcher script. + +## Initialization +All environment variables initialized in the default launcher script. So if you use the runScript option then you must be reunited all needed variables manually. + + +## Variables list + +| Variable name | Description | +|---|---| +| CQT_PKG_ROOT | This variable contains path to root of the current package.| + +## Description of definitions + +**Root of the current package** - This root is local root for any separate packages. + + +Example : +``` bash +. +├── pakcage1 << This is local root of the package1 +│   ├── bin +│   ├── lib +│   ├── plugins +│   ├── qml +│   └── translations +├── package2 << This is local root of the package2 +│   ├── bin +│   ├── lib +│   ├── plugins +│   ├── qml +│   └── translations +└── pakcage3 << This is local root of the package3 + ├── bin + ├── lib + ├── plugins + ├── qml + └── translations + +``` + + + diff --git a/docs/en/Home.md b/docs/en/Home.md index 8ad8780..e8a3295 100644 --- a/docs/en/Home.md +++ b/docs/en/Home.md @@ -5,18 +5,19 @@ # Main sections -* [Description CQtDeployer](Description) -* [Options](Options) -* [Guide](Guide) -* [Quick guide](QuickGuide) -* [Build and Install](Build-and-Install) -* [Deploy file](DeployConfigFile) -* [Packing](Packing) -* [Change log page](Changelog) -* [Reviews](ReleaseReviews) -* [Compare Features](CompareFeatures) +* [Description CQtDeployer](Description.md) +* [Options](Options.md) +* [Guide](Guide.md) +* [Quick guide](QuickGuide.md) +* [Build and Install](Build-and-Install.md) +* [Deploy file](DeployConfigFile.md) +* [Packing](Packing.md) +* [Change log page](Changelog.md) +* [Reviews](ReleaseReviews.md) +* [Compare Features](CompareFeatures.md) * [Adding extra files](ExtraFiles.md) * [Retrieving packaging templates](ExtractDefaultsTemplates.md) +* [Default Environment Variables](EnvironmentVariables.md) ## Support the project diff --git a/docs/ru/EnvironmentVariables.md b/docs/ru/EnvironmentVariables.md new file mode 100644 index 0000000..62f31ea --- /dev/null +++ b/docs/ru/EnvironmentVariables.md @@ -0,0 +1,42 @@ +# Переменные окружения CQtDeployer +Эта страница содержит информацию о переменных содержащихся в скрипте запуска по умолчанию. + +## Инициализация +Все переменные окружения инициализируются в скрипте запуска по умолчанию. Поэтому, если вы используете опцию runScript, вам необходимо вручную воссоздать все необходимые переменные. + + +## Список стандартных переменных + +| Имя переменной | Описание | +| --- | --- | +| CQT_PKG_ROOT | Эта переменная содержит путь к корню текущего пакета. + + +## Описания определений + +**корень текущего пакета** - Этот корень является локальным корнем для любых отдельных пакетов. + + +Пример : +``` bash +. +├── pakcage1 << Это локальный корень пакета package1 +│   ├── bin +│   ├── lib +│   ├── plugins +│   ├── qml +│   └── translations +├── package2 << Это локальный корень пакета package2 +│   ├── bin +│   ├── lib +│   ├── plugins +│   ├── qml +│   └── translations +└── pakcage3 << Это локальный корень пакета package3 + ├── bin + ├── lib + ├── plugins + ├── qml + └── translations + +``` diff --git a/docs/ru/Home.md b/docs/ru/Home.md index 53d9d20..e9c452e 100644 --- a/docs/ru/Home.md +++ b/docs/ru/Home.md @@ -5,18 +5,19 @@ # Основные разделы -* [Описание CQtDeployer](Description) -* [Параметры](Options) -* [Руководство](Guide) -* [Краткое Руководство](QuickGuide) -* [Сборка и установка](Build-and-Install) -* [Файл развертывания](DeployConfigFile) -* [Упаковка](Packing) -* [Список изменений](Changelog) -* [Обзоры](ReleaseReviews) -* [Сравнение возможностей](CompareFeatures) +* [Описание CQtDeployer](Description.md) +* [Параметры](Options.md) +* [Руководство](Guide.md) +* [Краткое Руководство](QuickGuide.md) +* [Сборка и установка](Build-and-Install.md) +* [Файл развертывания](DeployConfigFile.md) +* [Упаковка](Packing.md) +* [Список изменений](Changelog.md) +* [Обзоры](ReleaseReviews.md) +* [Сравнение возможностей](CompareFeatures.md) * [Добавление дополнительных файлов](ExtraFiles.md) * [Получение шаблонов упаковки](ExtractDefaultsTemplates.md) +* [Стандартные переменные окружения](EnvironmentVariables.md) ## Поддержите проект From 60868dd9d669b7df078ef6b8498e393ddaf2158d Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Mon, 1 Feb 2021 11:02:07 +0800 Subject: [PATCH 29/36] fix: generate buildLog.log in current working dir To keep source code directory clean. --- test.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test.pri b/test.pri index 6906d55..46bd05b 100644 --- a/test.pri +++ b/test.pri @@ -15,7 +15,7 @@ deployTest.commands = $$DEPLOYER -bin $$exec clear -qmake $$QMAKE_BIN -targetDir !android:test.depends = deployTest unix:!android:test.commands = $$PWD/deployTests/UnitTests.sh -maxwarnings 100000 -win32:test.commands = $$PWD/deployTests/UnitTests.exe -maxwarnings 100000 -o $$PWD/buildLog.log +win32:test.commands = $$PWD/deployTests/UnitTests.exe -maxwarnings 100000 -o buildLog.log contains(QMAKE_HOST.os, Linux):{ win32:test.commands = From a9ced894519c83b882679437ad0f3d850b41a2a5 Mon Sep 17 00:00:00 2001 From: EndrII Date: Wed, 3 Feb 2021 13:08:38 +0300 Subject: [PATCH 30/36] added more logs into packing step --- Deploy/Distributions/idistribution.cpp | 13 ++++++++++++- Deploy/deploy.h | 1 + Deploy/packing.cpp | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 4152431..6f052a8 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -11,6 +11,7 @@ #include #include #include +#include iDistribution::~iDistribution() = default; @@ -46,11 +47,17 @@ bool iDistribution::unpackFile(const QFileInfo &resource, QByteArray inputData = file.readAll(); file.close(); - if (!QDir().mkpath(target)) + if (!QDir().mkpath(target)) { + QuasarAppUtils::Params::log(QString("impossible to create path : %0 ").arg(target), + QuasarAppUtils::Error); return false; + } + file.setFileName(target + "/" + resource.fileName()); if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + QuasarAppUtils::Params::log(QString("impossible to write in file: %0 ").arg(file.fileName()), + QuasarAppUtils::Error); return false; } @@ -242,6 +249,10 @@ bool iDistribution::deployIcon(TemplateInfo &info ,const DistroModule& pkg) { QFileInfo iconInfo(pkg.icon()); info.Icon = releativeLocation(pkg) + "/icons/" + iconInfo.fileName(); if (!copyFile(pkg.icon(), localData + "/icons/", false)) { + + QuasarAppUtils::Params::log(QString("fail to copy icon: %0 ").arg(pkg.icon()), + QuasarAppUtils::Error); + return false; } } diff --git a/Deploy/deploy.h b/Deploy/deploy.h index 9c8e324..833632f 100644 --- a/Deploy/deploy.h +++ b/Deploy/deploy.h @@ -18,6 +18,7 @@ class DependenciesScanner; class PluginsParser; class Packing; + enum exitCodes { Good = 0x0, PrepareError = 0x1, diff --git a/Deploy/packing.cpp b/Deploy/packing.cpp index 4192098..2becf32 100644 --- a/Deploy/packing.cpp +++ b/Deploy/packing.cpp @@ -51,8 +51,12 @@ bool Packing::create() { if (!package) return false; - if (!package->deployTemplate(*this)) + if (!package->deployTemplate(*this)) { + QuasarAppUtils::Params::log(QString("Deploy package template error ocured. Package: %0."). + arg(package->getClassName()), + QuasarAppUtils::Error); return false; + } auto commands = package->runCmd(); From f4191bd67989fd873e326fc239899ea77c270080 Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 5 Feb 2021 11:16:22 +0300 Subject: [PATCH 31/36] added new envirement variable CQT_RUN_FILE --- Deploy/metafilemanager.cpp | 23 ++++++++++++++--------- UnitTests/testRes/TestQMLWidgets.sh | 1 + docs/en/EnvironmentVariables.md | 21 +++++++++++---------- docs/ru/EnvironmentVariables.md | 21 +++++++++++---------- 4 files changed, 37 insertions(+), 29 deletions(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 932a447..6840d2c 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -42,15 +42,16 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { "SET BASE_DIR=%~dp0\n" "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%\n" "SET CQT_PKG_ROOT=%BASE_DIR%\n" + "SET CQT_RUN_FILE=%5\n" "%3\n" "start \"%0\" %4 \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; - content = content.arg(targetInfo.baseName(), targetInfo.fileName(), "%*"); - content = content.arg(generateCustoScriptBlok(true)); + content = content.arg(targetInfo.baseName(), targetInfo.fileName(), "%*", + generateCustoScriptBlok(true)); // %0 %1 %2 %3 content = QDir::toNativeSeparators(content); - content = content.arg("/B"); + content = content.arg("/B", "%0"); // %4 %5 } @@ -106,15 +107,16 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { "export QTWEBENGINEPROCESS_PATH=\"$BASE_DIR\"" + distro.getBinOutDir() + "QtWebEngineProcess\n" "export QTDIR=\"$BASE_DIR\"\n" "export CQT_PKG_ROOT=\"$BASE_DIR\"\n" + "export CQT_RUN_FILE=\"$BASE_DIR/%3\"\n" "export " "QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"" + distro.getPluginsOutDir() + "platforms:$QT_QPA_PLATFORM_PLUGIN_PATH\n" - "%2" - "%3\n" - "\"$BASE_DIR" + distro.getBinOutDir() + "%1\" \"$@\"\n"; + "%1" + "%2\n" + "\"$BASE_DIR" + distro.getBinOutDir() + "%0\" \"$@\"\n"; - content = content.arg(targetInfo.fileName()); + content = content.arg(targetInfo.fileName()); // %0 auto deployedFies = _fileManager->getDeployedFilesStringList(); int ld_index = DeployCore::find("ld-linux", deployedFies); @@ -124,9 +126,12 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { arg(QFileInfo(deployedFies[ld_index]).fileName())); } else { content = content.arg(""); - } + } // %1 + + content = content.arg(generateCustoScriptBlok(false), + targetInfo.baseName()+ ".sh"); // %2 %3 + - content = content.arg(generateCustoScriptBlok(false)); } diff --git a/UnitTests/testRes/TestQMLWidgets.sh b/UnitTests/testRes/TestQMLWidgets.sh index eafc2db..bcb2640 100755 --- a/UnitTests/testRes/TestQMLWidgets.sh +++ b/UnitTests/testRes/TestQMLWidgets.sh @@ -7,6 +7,7 @@ export QT_PLUGIN_PATH="$BASE_DIR"/plugins/:$QT_PLUGIN_PATH export QTWEBENGINEPROCESS_PATH="$BASE_DIR"/bin/QtWebEngineProcess export QTDIR="$BASE_DIR" export CQT_PKG_ROOT="$BASE_DIR" +export CQT_RUN_FILE="$BASE_DIR/TestQMLWidgets.sh" export QT_QPA_PLATFORM_PLUGIN_PATH="$BASE_DIR"/plugins/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH "$BASE_DIR/bin/TestQMLWidgets" "$@" diff --git a/docs/en/EnvironmentVariables.md b/docs/en/EnvironmentVariables.md index f249f9d..6c72183 100644 --- a/docs/en/EnvironmentVariables.md +++ b/docs/en/EnvironmentVariables.md @@ -10,6 +10,7 @@ All environment variables initialized in the default launcher script. So if you | Variable name | Description | |---|---| | CQT_PKG_ROOT | This variable contains path to root of the current package.| +| CQT_RUN_FILE | This variable contains path to the run script of the using application.| ## Description of definitions @@ -20,17 +21,17 @@ Example : ``` bash . ├── pakcage1 << This is local root of the package1 -│   ├── bin -│   ├── lib -│   ├── plugins -│   ├── qml -│   └── translations +│ ├── bin +│ ├── lib +│ ├── plugins +│ ├── qml +│ └── translations ├── package2 << This is local root of the package2 -│   ├── bin -│   ├── lib -│   ├── plugins -│   ├── qml -│   └── translations +│ ├── bin +│ ├── lib +│ ├── plugins +│ ├── qml +│ └── translations └── pakcage3 << This is local root of the package3 ├── bin ├── lib diff --git a/docs/ru/EnvironmentVariables.md b/docs/ru/EnvironmentVariables.md index 62f31ea..5e777d7 100644 --- a/docs/ru/EnvironmentVariables.md +++ b/docs/ru/EnvironmentVariables.md @@ -10,6 +10,7 @@ | Имя переменной | Описание | | --- | --- | | CQT_PKG_ROOT | Эта переменная содержит путь к корню текущего пакета. +| CQT_RUN_FILE | Эта переменная содержит путь к скрипту запуска используемого приложения. | ## Описания определений @@ -21,17 +22,17 @@ ``` bash . ├── pakcage1 << Это локальный корень пакета package1 -│   ├── bin -│   ├── lib -│   ├── plugins -│   ├── qml -│   └── translations +│ ├── bin +│ ├── lib +│ ├── plugins +│ ├── qml +│ └── translations ├── package2 << Это локальный корень пакета package2 -│   ├── bin -│   ├── lib -│   ├── plugins -│   ├── qml -│   └── translations +│ ├── bin +│ ├── lib +│ ├── plugins +│ ├── qml +│ └── translations └── pakcage3 << Это локальный корень пакета package3 ├── bin ├── lib From f5a25a90d33885db0a896322125d34ccba5e95bc Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 5 Feb 2021 11:19:25 +0300 Subject: [PATCH 32/36] v1.5.0.22 alpha --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index c36c32f..bae690a 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.21 +VERSION = 1.5.0.22 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 701c737..b4ab23a 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.21 + 1.5.0.22 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 4a8743c..1ca0557 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.21 + 1.5.0.22 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 8392f28..1965c43 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.21 + 1.5.0.22 true false diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 285bd00..3070a19 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.21 +Version=1.5.0.22 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.21 +X-GNOME-Bugzilla-Version=1.5.0.22 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 6725122..6390151 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.21' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.22' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From bc9bfebbb3f4ff7e0f87b41c635d9e2817c9e35a Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 5 Feb 2021 16:12:07 +0300 Subject: [PATCH 33/36] fix path of the CQT_RUN_FILE variable in the windows. --- Deploy/metafilemanager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 6840d2c..d5b462e 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -42,7 +42,7 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { "SET BASE_DIR=%~dp0\n" "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%\n" "SET CQT_PKG_ROOT=%BASE_DIR%\n" - "SET CQT_RUN_FILE=%5\n" + "SET CQT_RUN_FILE=%BASE_DIR%%5\n" "%3\n" "start \"%0\" %4 \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; @@ -51,7 +51,7 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { generateCustoScriptBlok(true)); // %0 %1 %2 %3 content = QDir::toNativeSeparators(content); - content = content.arg("/B", "%0"); // %4 %5 + content = content.arg("/B", targetInfo.baseName()+ ".bat"); // %4 %5 } From 21da94d77a0701a2c2e934117bc93fdb0a75a526 Mon Sep 17 00:00:00 2001 From: EndrII Date: Fri, 5 Feb 2021 16:38:13 +0300 Subject: [PATCH 34/36] v1.5.0.23 alpha --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 4 ++-- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index bae690a..2d6a472 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.22 +VERSION = 1.5.0.23 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index b4ab23a..de5fd26 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.22 + 1.5.0.23 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 1ca0557..b7056d7 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ 640px 400px CQtDeployer - 1.5.0.22 + 1.5.0.23 CQtDeployer QuasarApp CQtDeployer diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 1965c43..ac3ce20 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,11 +2,11 @@ CQtDeployer 1.5 Alpha CQtDeployer 1.5 Alpha. Do not use this version because it is unstable and may lead to unwanted bugs or consequences. Use this version exclusively for testing new functionality. - 1.5.0.22 + 1.5.0.23 true false - 2020-09-06 + 2021-02-06 201 ru.qm diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 3070a19..b468494 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.22 +Version=1.5.0.23 Name=CQtDeployer Comment=CQtDeployer Help. Exec=cqtdeployer @@ -10,6 +10,6 @@ Categories=Application; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=CQtDeployer X-GNOME-Bugzilla-Component=General -X-GNOME-Bugzilla-Version=1.5.0.22 +X-GNOME-Bugzilla-Version=1.5.0.23 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 6390151..984855c 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register ' -version: '1.5.0.22' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.23' # just for humans, typically '1.2+git' or '1.3.2' summary: deploy your qt projects # 79 char long summary description: | Console app for deploy qt libs. From 881bebfee5e88ca740aac9136a1f42324998b7a4 Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Sat, 6 Feb 2021 22:43:24 +0800 Subject: [PATCH 35/36] fix: Qt::SkipEmptyParts was introduced in Qt 5.14 https://doc.qt.io/qt-5/qt.html#SplitBehaviorFlags-enum --- Deploy/defines.h | 2 +- Deploy/filemanager.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/defines.h b/Deploy/defines.h index 595aa07..5f31045 100644 --- a/Deploy/defines.h +++ b/Deploy/defines.h @@ -9,7 +9,7 @@ #define DEFINES_H #include -#if QT_VERSION > QT_VERSION_CHECK(5, 13, 0) +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) #define splitbehavior Qt::SkipEmptyParts #else #define splitbehavior QString::SkipEmptyParts diff --git a/Deploy/filemanager.cpp b/Deploy/filemanager.cpp index 0cb25e4..bd52ad3 100644 --- a/Deploy/filemanager.cpp +++ b/Deploy/filemanager.cpp @@ -447,7 +447,7 @@ QString FileManager::changeDistanation(const QString& absalutePath, QString basePath, int depch) { -#if QT_VERSION > QT_VERSION_CHECK(5, 13, 0) +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) auto prefixes = absalutePath.split(QRegExp("[\\/]"), Qt::SkipEmptyParts); #else auto prefixes = absalutePath.split(QRegExp("[\\/]"), QString::SkipEmptyParts); From 17275501cdc5057fa5f10a08b2faa2de396e2a0a Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Sun, 7 Feb 2021 09:10:50 +0800 Subject: [PATCH 36/36] refactor: use macro to reduce repetition Macro "splitbehavior" is defined in ./Deploy/defines.h . --- Deploy/filemanager.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Deploy/filemanager.cpp b/Deploy/filemanager.cpp index bd52ad3..f963718 100644 --- a/Deploy/filemanager.cpp +++ b/Deploy/filemanager.cpp @@ -447,11 +447,7 @@ QString FileManager::changeDistanation(const QString& absalutePath, QString basePath, int depch) { -#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) - auto prefixes = absalutePath.split(QRegExp("[\\/]"), Qt::SkipEmptyParts); -#else - auto prefixes = absalutePath.split(QRegExp("[\\/]"), QString::SkipEmptyParts); -#endif + auto prefixes = absalutePath.split(QRegExp("[\\/]"), splitbehavior); depch = std::min(depch, prefixes.size()); while (depch) { auto index = prefixes.size() - depch;