From 88d27f66b5175ff7ef95952fc0334d9403ba325a Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Sat, 22 Aug 2020 23:13:09 +0300 Subject: [PATCH 001/222] Update README.md --- README.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 36e61b8..1295a42 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ #  **************************** - +## Support the project +If you like what we do and it benefits you, you can support the project on the official page [QuasarApp in Patreon](https://www.patreon.com/QuasarApp) ## What is CQtDeployer The CQtDeployer is application for extract all depends library of executable and create launch script for your application. @@ -129,10 +130,6 @@ Or starting with ubuntu 20.04 in the ubuntu application settings manager. - [distbuilder](https://github.com/BuvinJT/distbuilder) - [Manager_v2](https://github.com/dimkatsi91/Manager_v2) -## Donate -If you want to support the project,you can donate into our bitcoin wallet. - -### Bitcoin address - 1NJNbDKmezcUcHRfzpBeq2fHeG21oEKX8Q ## Thanks * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. @@ -141,6 +138,8 @@ If you want to support the project,you can donate into our bitcoin wallet. *************************** *************************** + + **CQtDeployer** - это приложение преднознаена для извлечения всех зависимых библиотек исполняемого файла и создания сценария запуска для вашего приложения. Основные отличия этой программы: @@ -149,6 +148,8 @@ If you want to support the project,you can donate into our bitcoin wallet. * Crossdeploy: приложение поддерживает Windows и дистрибутивы Linux, это означает, что вы можете использовать его не только для развертывания проекта для вашей платформы, но и для развертывания проекта в Linux для Windows и наоборот. * Быстрое создание установщиков. По завершении развертывания вы получите автономный установщик вашего дистрибутива. +## Поддержите проект +Если вам нравится то, что мы делаем, и это приносит вам пользу, вы можете поддержать проект на официальной странице [QuasarApp в Patreon](https://www.patreon.com/QuasarApp) ## Поддерживаемые платформы: * <img src="https://user-images.githubusercontent.com/12465465/67766480-929b5000-fa5f-11e9-8ae7-377d9ddb7c65.png" height="100"> @@ -263,10 +264,5 @@ If you want to support the project,you can donate into our bitcoin wallet. - [distbuilder](https://github.com/BuvinJT/distbuilder) - [Manager_v2](https://github.com/dimkatsi91/Manager_v2) -## Пожертвовать -Если вы хотите помочь проекту, то вы можете пожертвовать небольшую сумму на наш биткойн-кошелек. - -### Биткойн-адрес - 1NJNbDKmezcUcHRfzpBeq2fHeG21oEKX8Q - ## Благодарность * Большое спасибо [Trail of Bits](https://github.com/trailofbits) за их библиотеку [pe-parser](https://github.com/trailofbits/pe-parse). Все работает отлично. From c7e49a8ec14837116cc9073921c871e4d0b50b77 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Fri, 4 Sep 2020 10:49:16 +0300 Subject: [PATCH 002/222] Update README.md --- README.md | 88 +++---------------------------------------------------- 1 file changed, 4 insertions(+), 84 deletions(-) diff --git a/README.md b/README.md index 1295a42..c869792 100644 --- a/README.md +++ b/README.md @@ -79,48 +79,8 @@ See list of all options [here](https://github.com/QuasarApp/CQtDeployer/wiki/Opt ``` <img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"> -## Build for Linux -- install qt and qt QtInstallFrameWork from [qt installer](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f9bb77-7bb77-4bb77-4) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- qmake -r - - Here you must definitely call the qmake that was loaded from the 1st item. - - Example: ~/Qt/5.14.0/gcc_64/bin/qmake -r -- make -j$(nproc) -- make deploy - - #this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - - ##### If you are building cqtdeployer using qt from your OS repository, use only the cqtdeployer installed from the github installer. The fact is that the snap package does not have access to system libraryes. -- ./Distro/CQtDeployerInstaller.run - -## Build for Windows (CMD) -- install qt and qt QtInstallFrameWork from [qt installer](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f9bb77-7bb77-4bb77-4) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- SET PATH=C:/Qt/Tools/mingw730_64/bin;%PATH% - - It is important to set up the qt environment. -- qmake.exe -r - - Here you must definitely call the qmake that was loaded from the 1st item. - - Example: C:/Qt/5.14.0/mingw73_64/bin/qmake.exe -r -- migw32-make -j8 -- migw32-make deploy - - #this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) -- ./Distro/CQtDeployerInstaller.exe - -## Install -You can download the latest version of the application [here](https://github.com/QuasarApp/CQtDeployer/releases). - -### Snap -[](https://snapcraft.io/cqtdeployer) - -#### Features of the snap version -The snap package does not have access to system libraries. This means deploySystem options will not work. This also means that if you manually specify libDir or extraLib, then libraries that are not in home will not be found. -If these restrictions bother you, use the [Installer](https://github.com/QuasarApp/CQtDeployer/releases) classic version of the application. - -If you are using the snap version of the application. Enable all permissions for cqtdeployer. -this can be done in the snap-store -Or starting with ubuntu 20.04 in the ubuntu application settings manager. +## Build and install +The Building or installation instructions see on wiki [page](https://github.com/QuasarApp/CQtDeployer/wiki/Build-and-Install) ## Projects using CQtDeployer: @@ -212,49 +172,9 @@ Or starting with ubuntu 20.04 in the ubuntu application settings manager. ``` <img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"> +## Сборка и установка +Инструкции по сборке или установке см. В [вики](https://github.com/QuasarApp/CQtDeployer/wiki/%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0-%D0%B8-%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0) -## Build для Linux -- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- qmake -r - - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. - - Пример: ~/Qt/5.14.0/gcc_64/bin/qmake -r -- make -j$(nproc) -- make deploy - - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - - ##### Если вы собираете cqtdeployer, используя qt из своего репозитория ОС, используйте только cqtdeployer, установленный из установщика github. Дело в том, что пакет моментальных снимков не имеет доступа к системным библиотекам. -- ./Distro/CQtDeployerInstaller.run - -## Build для Windows (CMD) -- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- SET PATH=C:/Qt/Tools/mingw730_64/bin;%PATH% - - Здесь важно настроить окружение qt. -- qmake.exe -r - - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. - - Пример: C:/Qt/5.14.0/mingw73_64/bin/qmake.exe -r -- migw32-make -j8 -- migw32-make deploy - - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) -- ./Distro/CQtDeployerInstaller.exe - -### Snap -[](https://snapcraft.io/cqtdeployer) - -#### Особенности snap версии -В snap пакет не имеет доступ к системным библиотекам. Это значит что опции deploySystem не будут работать. Так же это значит что нсли вы в ручную укажите libDir или extraLib, то библиотеки находящиеся не в home не будут найдены. -Если вам мешают эти ограничения используйте [Установщик](https://github.com/QuasarApp/CQtDeployer/releases) класической версии приложения. - -Если вы используете snap версию приложения. Включите все разрешения для cqtdeployer. -это можно сделать в snap-store -Или начиная с ubuntu 20.04 в менеджере натроек приложений ubuntu. - -## Установить -Вы можете загрузить последнюю версию приложения [здесь](https://github.com/QuasarApp/CQtDeployer/releases). ## Проекты использующие CQtDeployer : From 0f1a4eb4487b87039fe395c13a00b9374d5b84e4 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Wed, 9 Sep 2020 09:51:43 +0300 Subject: [PATCH 003/222] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c869792..4af6b84 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ The Building or installation instructions see on wiki [page](https://github.com/ - [Hanoi-Towers](https://github.com/QuasarApp/Hanoi-Towers) - [distbuilder](https://github.com/BuvinJT/distbuilder) - [Manager_v2](https://github.com/dimkatsi91/Manager_v2) +- [IDE65XX](https://github.com/emartisoft/IDE65XX) ## Thanks @@ -183,6 +184,7 @@ The Building or installation instructions see on wiki [page](https://github.com/ - [Hanoi-Towers](https://github.com/QuasarApp/Hanoi-Towers) - [distbuilder](https://github.com/BuvinJT/distbuilder) - [Manager_v2](https://github.com/dimkatsi91/Manager_v2) +- [IDE65XX](https://github.com/emartisoft/IDE65XX) ## Благодарность * Большое спасибо [Trail of Bits](https://github.com/trailofbits) за их библиотеку [pe-parser](https://github.com/trailofbits/pe-parse). Все работает отлично. From 66670135c097e5a9b1be3e62dec6b868ec655c74 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Sat, 10 Oct 2020 14:57:33 +0300 Subject: [PATCH 004/222] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4af6b84..9059ec7 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ The Building or installation instructions see on wiki [page](https://github.com/ - [distbuilder](https://github.com/BuvinJT/distbuilder) - [Manager_v2](https://github.com/dimkatsi91/Manager_v2) - [IDE65XX](https://github.com/emartisoft/IDE65XX) +- [Tanks](https://github.com/anevero/tanks) ## Thanks @@ -185,6 +186,8 @@ The Building or installation instructions see on wiki [page](https://github.com/ - [distbuilder](https://github.com/BuvinJT/distbuilder) - [Manager_v2](https://github.com/dimkatsi91/Manager_v2) - [IDE65XX](https://github.com/emartisoft/IDE65XX) +- [Tanks](https://github.com/anevero/tanks) + ## Благодарность * Большое спасибо [Trail of Bits](https://github.com/trailofbits) за их библиотеку [pe-parser](https://github.com/trailofbits/pe-parse). Все работает отлично. From 9686c5edce4f8239e58fe0142cb9c0d317899d48 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 12 Oct 2020 12:25:49 +0300 Subject: [PATCH 005/222] Added stegano to readme Added a stegano project to the "Projects using CQtDeployer" section of a readme --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9059ec7..aa5f8a3 100644 --- a/README.md +++ b/README.md @@ -84,14 +84,14 @@ The Building or installation instructions see on wiki [page](https://github.com/ ## Projects using CQtDeployer: -- [QAmigo](https://github.com/QAmigo/QAmigo) -- [QtSecret](https://github.com/QuasarApp/Qt-Secret) -- [Hanoi-Towers](https://github.com/QuasarApp/Hanoi-Towers) -- [distbuilder](https://github.com/BuvinJT/distbuilder) -- [Manager_v2](https://github.com/dimkatsi91/Manager_v2) -- [IDE65XX](https://github.com/emartisoft/IDE65XX) -- [Tanks](https://github.com/anevero/tanks) - +- [QAmigo](https://github.com/QAmigo/QAmigo) - Qt cross-platform serial port socket assistant for visualizing data. +- [QtSecret](https://github.com/QuasarApp/Qt-Secret) - Simple encryption library supporting RSA and AES algorithms. +- [Hanoi-Towers](https://github.com/QuasarApp/Hanoi-Towers) - Hanoi Towers Game +- [distbuilder](https://github.com/BuvinJT/distbuilder) - Distribution Builder +- [Manager_v2](https://github.com/dimkatsi91/Manager_v2) - Qt Quick Controls 2 - Linux Manager Desktop Application +- [IDE65XX](https://github.com/emartisoft/IDE65XX) - IDE 65XX is one of the open source IDE options available for developers working with Kick Assembler. +- [Tanks](https://github.com/anevero/tanks) - 2D game written in C++ & Qt for Windows, Linux and Android +- [stegano](https://github.com/taskmaster9001/stegano) - Bit-level Image Manipulation Software with Qt Framework - Steganography Pet Project ## Thanks * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. @@ -187,7 +187,7 @@ The Building or installation instructions see on wiki [page](https://github.com/ - [Manager_v2](https://github.com/dimkatsi91/Manager_v2) - [IDE65XX](https://github.com/emartisoft/IDE65XX) - [Tanks](https://github.com/anevero/tanks) - +- [stegano](https://github.com/taskmaster9001/stegano) ## Благодарность * Большое спасибо [Trail of Bits](https://github.com/trailofbits) за их библиотеку [pe-parser](https://github.com/trailofbits/pe-parse). Все работает отлично. From 3b976add3c1afa40955ab23f1f33b09f88b22bfb Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Tue, 24 Nov 2020 09:32:13 +0300 Subject: [PATCH 006/222] Update Options.md --- docs/en/Options.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Options.md b/docs/en/Options.md index e972968..9bd264a 100644 --- a/docs/en/Options.md +++ b/docs/en/Options.md @@ -47,8 +47,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | | Example: cqtdeployer deb" }, | | | you can specify the path to your own DEBIAN template. | | | Examples: cqtdeployer -deb path/to/myCustom/DEBIAN. More details can be found [here](DEB) | -| deploySystem | Deploys all libraries not recomendet because there may be conflicts with system libraries | -| deploySystem-with-libc | Deploy all libs include libc (only linux). Do not use this option for a gui application, for gu use the deploySystem option | +| deploySystem | Deploys all libraries. It is not recommended to use, as there may be conflicts with system libraries | +| deploySystem-with-libc | Deploy all libs include libc (only linux). Do not use this option for a gui application, for gui use the deploySystem option | ### Deploy options From 8221a0e6b3def9812035910f26559969d6c876c4 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Sun, 6 Dec 2020 16:58:33 +0300 Subject: [PATCH 007/222] Update README.md --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index aa5f8a3..f314c88 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,15 @@ The Building or installation instructions see on wiki [page](https://github.com/ ## Thanks * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. + + +## Support us +### Support with bitcoin + + + +bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 + *************************** *************************** *************************** @@ -191,3 +200,12 @@ The Building or installation instructions see on wiki [page](https://github.com/ ## Благодарность * Большое спасибо [Trail of Bits](https://github.com/trailofbits) за их библиотеку [pe-parser](https://github.com/trailofbits/pe-parse). Все работает отлично. + + +## Поддержкать нас +### с помощью bitcoin + + + + +bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 From a6a0627dfc9a14c104cc63b7be226c8aaddd691a Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 7 Dec 2020 11:44:23 +0300 Subject: [PATCH 008/222] Update Guide.md --- docs/en/Guide.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/en/Guide.md b/docs/en/Guide.md index e631dfe..e70137e 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. @@ -92,4 +91,4 @@ If cqtdeployer not found qmake then add the -qmake option to an invoke command. ``` 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 +``` From db7413479e1ce94b5190c547105e542fca26fec3 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 7 Dec 2020 11:44:39 +0300 Subject: [PATCH 009/222] Update Guide.md --- docs/ru/Guide.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 +``` From d2eb9cdee357579dc075345ea196ee3e8edaec7e Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Fri, 18 Dec 2020 16:56:17 +0300 Subject: [PATCH 010/222] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index f314c88..53cb09c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,11 @@ [](https://snapcraft.io/cqtdeployer) #  + +# Attention +### From December 18 to December 25, 2020, the repository with the latest version of CQtDeployer will be unavailable for technical reasons. To install, please use the offline installer or snap version of cqtdeployr. +### We apologize for any inconvenience caused. + **************************** ## Support the project If you like what we do and it benefits you, you can support the project on the official page [QuasarApp in Patreon](https://www.patreon.com/QuasarApp) From d0fd4f93966b1d6b3d77f65ba4e3ea3187119f36 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Thu, 24 Dec 2020 17:19:33 +0300 Subject: [PATCH 011/222] Update README.md --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 53cb09c..f314c88 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,6 @@ [](https://snapcraft.io/cqtdeployer) #  - -# Attention -### From December 18 to December 25, 2020, the repository with the latest version of CQtDeployer will be unavailable for technical reasons. To install, please use the offline installer or snap version of cqtdeployr. -### We apologize for any inconvenience caused. - **************************** ## Support the project If you like what we do and it benefits you, you can support the project on the official page [QuasarApp in Patreon](https://www.patreon.com/QuasarApp) From eb6f34e98be2a1f470b108fc89c2ffe445897baa Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 23 Feb 2021 14:51:50 +0300 Subject: [PATCH 012/222] ref #539 Add credits text and banner in readme --- README.md | 17 +++++++++++++++-- res/Credits.jpg | Bin 0 -> 33649 bytes 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 res/Credits.jpg diff --git a/README.md b/README.md index f314c88..d9d08e2 100644 --- a/README.md +++ b/README.md @@ -93,10 +93,20 @@ The Building or installation instructions see on wiki [page](https://github.com/ - [Tanks](https://github.com/anevero/tanks) - 2D game written in C++ & Qt for Windows, Linux and Android - [stegano](https://github.com/taskmaster9001/stegano) - Bit-level Image Manipulation Software with Qt Framework - Steganography Pet Project -## Thanks - * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. +*** +##  + +Join the development fund and support QuasarApp to help with the development of our projects. + +Our patrons list + +### Silver Membership Patrons: + +- Rustem Husnutdinov + +*** ## Support us ### Support with bitcoin @@ -105,6 +115,9 @@ The Building or installation instructions see on wiki [page](https://github.com/ bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 +## Thanks + * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. + *************************** *************************** *************************** diff --git a/res/Credits.jpg b/res/Credits.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e2aaac50753c7fd99fa6e6a2c0f97ae0b2e330a GIT binary patch literal 33649 zcmbTdcT`hd^FJD-HxX1igeHje-U*1(i%L_f2uSbJOGF-|69EAQAs`?iO$4Na(n1eS zdJnxOln_Ya=6S#O{oVV={jGKHJvlj9>&%|nd-mC9_RMD{*R$8FfLr?7dfEUI5&(dN z_yJt60qBgKeRQ0C004m1H39JCp{KLAle53FwwtH3@?&Ki6L057{%%3eHe&^2KgMdu zI>zJ1n#P)W#-qpIjdhH*+Q>NBJazE(wbAzRf8^sBVDr$y+uPY+{MEm507QxW|CRX2 z;f=Ghw4}6@gru~Dv<#1wtg@`EvYg_-jX3_>$jr^lSy@u@zo+!S#5?~bYWq9<hx(tp zod3P6MZD?np!`2S;*ydI|MIZ^mul+h?Cq@lpDU3j^DmA2zqDunQT4xF$|#8|$^A>e z|6jUesH3NIfVhR5b1;vgLnu+J00%E$;w@zvMcIE_O8)O#zVUhE;A#Kn|5WE++5Z`} z)c>Bt|39Pozq3gGhei2+&k_*o?da<7<Lwsa@W#!@`+xCDN{TBg0j?JSS^&};H~u|| z2O04sry?gOBO|Awq@<vtqoJdtrJ<#zzsYoq{wCv1TH0I8w-|5VxqJ669Rmw1^Bq>E zJ9qE=D};oU$U{a>O-@dIhn|-H&j07*`Zs`)3Xn^xNJ_#7xWPz5%1CnE0{{{iAvwu^ z4&v(j&p~p7I7SLeDry>9VuOZTfEy&Fq&LV&{~a~4btI7vAY&wF;+4{*xc$_DlF#ps zbaYxF75~H9KX;#vBL!q$`M;y4VP;`vW4|XTbYJ*^tem`pqLQ-KqsQ7hx_bJiX66=_ z&tF(MIyt{~admSKcoP^D91<E9^H1#ixcG#`^o)<0S=paH=X@<HF8NkkR{s5GU46r^ z#-`?$uI`@RK3M<2;KbzA-|3mzx%stq#Kz{<_Rj7e>g4q79DRYgy!ux!5&-G{s71W~ zKkCIu)awQr87Ud%zj~3}2qu0>8Og|br6`y*pHe#b-R6^yrn>Vmt+4hFHNVU=<lR^P z<21|yvTOHH|El&M&Hmph_U`|eX8%jE|4XlV039g_@!^p&0zd%VRnN-lC?`#v<VCs- z)-=y6T0rMMT-B^%J0HTVw*Qnqep_Ah6x6;oS?4#N&Pn4GSCD&=pKs|?C36c5R|?Re zv107IEFaXP9O%BftjABTzS1pEzXnXgj@4AFr>H_sQNw<(3I$33ZkAjFbPhQSuv49# z*MR)AC!~(sc#~0;%lG*aNG09h$BBuCOsdy_<*-n*F&;Seef2W{LV#?0I9GOO0JNv> zw>V%jymC76AXP(J^`QB1bMl7C%Ej}p3!W+KRW@#?6@AwenUmte*4q=`1pPtNk2R>d z5yL#n7pKaT3vk$QTI_LZ!|l~;K+RD8vbo$NC5~rLmXh8Skm5PPLwetJ=g<Vi&7$(` zDpii?Yk=6xUa2CcCZ-Dg?W0T8?S*{}2K7+W_E%;{mStCFQt{4#<{ohYziFt2c0_jI zM1~(TDIKDpB#x@=yIME^>&MTunff~q9w!roZggA&Fj`pY5RTQ?*;~(__Xd=c4PSK> zd_Tdi#gkA@-nDR2Dvkot()K)a{FU}0P`Yo9V9t0Nl(!Qdp1F^)JT$c9MT)okPfuTc zivtJEahq8(>Rtm3Nk<}%QE>DfWFv&#%cRRXLZL=d{FxLXNhZ7i+xgVwW2Oo;S1E=N zru#s5THB_Jw5B58qY9IOtm(Z5(8yWVqQtYN1>|Rs<Zsh;?BPWq{+}tFUn^qA&wBL= zwwM6HUmsjN2rWy90qqNxXfdzVIx);Pn)H>7{9!xg?Iop}H|lJr8QK@JqRw_ZWs+<k z3@lrCeY_%~yIgx#K-I_~EMRe9Uy9J6Kjk6d{_=%Z%P>`xItp2Z<tBqG<K#G_6{5~x ztTaQ8#z+?p8l}HK2)-YRd!RPvg7=&%<6BfMNwcrbC@2r`y9TK7!lvIc8pLux<FC0W z#!jWnMuWm?zXwa<*Ur8*r9dwRkMP5h!ex9**y6ybK4WMKfaI`MPyT`PDNWR_<C_C# z?38yCDaTsb7g*Ef;IU8ua0z#x1ilqJ{5`GonIm@U_n2dXAf;^Wr;Dh=7r<%bOnGl* z%A|b_dh?H^M-vK=T5!8AwhOAtCsY~fR<n5{qBkgNQ~6neQTLFA_IXB$6l2_5PHMsO zk3;pW(+bADR|MJP6$IW>vCMjaE}}OL+HCxhE^R0ifAU@8qG<o=Ylh2xId!$%&NpoT z_9k?t35sF|JUWf%U=lL!Gp<jUImBOm7mqr#bxY=3{2u}D^KOo<G!whaE&=F#0&N%n zRb(NfPhvCfg@ID;%VZFKvL~7d1t0VOr#Gtbqj|ao$EVBU4Y$I5!P7=25O0$Ym5|h* z$OjtYfNQ`Dsshr89{L1EyWW;b=Vi0dRqdF<_|vCp)Q;@}ui^K?qVDXVS}y>7v)d!P z8hy;agz!#VrKakV<+mkXE&1uw!?gtXQDszbGg_2hv}W#NOc@1w4!OfB9cz<n5QfCJ z9l->LYMI2ascT3z21w|CP#cxn($oOlPQI(Fj~1K$EU2xD<Y!y$UD<yM<rjM6Ul+_* z951|1S9s)HKtbw5eC~p9{aghyy2lJt=S1_NySvqmVXuDNVf^e_c$&t|kD0V+$cLbl zaJ*Y#0nw(^x%?>SBS`Q|<!^ak1N1ZSJlB9BU9d91<Sd<nFOIu`GwH4RIJQ%h0bIpv z9f%ztj_g$y-&(l{-QNc5176B+7iUDtDJqZ_KlySYTXe_@YI_TDG>6YYaCJGKm<+8U zpo^${6L6KzCuvZ)l=`^<=Z%;6m6|;K1KSz0TXsxpDF9iHjNhs3o=vP+%@Yh_P%Wx~ z5i9SvIr8lB7hv7G)XM1bSuv@C^-<S=lv>?HDZPJNd;z?jZZh^VpGgH#rNOkqc2e3a z2^5LwhT|84ZcUmOj56yb1yPn5-0Fhz#KXWUHEYJ|QR;5IBB{Qi1%QTe(B5j<=5JWO zq1VEIsu_6a8gM!Y9xO@z30Y)hx?nmV0cclI^Lq?h|2oQaQ~)jhljA0Hcv+l~-DEoQ zFbaMRQ2kawea`_lFP*Y5uxn)TPh<Z{)&a-2$Xyi6e8hXk8b1jufpllnExp?kzNI;U zY`h3?Z%vMDxDcfx>w}+#+?~Y9V~o}%l3Kdlmf6RTs-s^1TpBphq&g2)Whk}6cCTh1 zn6K5mukeao2jmORaBTJTv(E!B%+A%fPfGlo?Y6gV{9Gs`lyZNq`eCMWy)TEK%<NC@ zFVjwVTMe#XXw>Hm&Y@rD+#1@Unc+Y=qMsvyz5CQYLX-Rx=LsxQ?qM%yO$uMCTLSIe z0@%Y9#-UlyyeMxU>6|5%$f;KS);^Iz(~r$m<81Mtac;=4J)NAnKzbG>BmG$xL+~%< z@~fGTGKOYxu1iw=#+|YDg&D@mQs9Zs?Jshil`#o(<9L2mGo1tCM(Lizx7XS1tc$;g zonn%rdmQ(XD4Jp7TW|k0Aj{YE`B42OgrhXjxPjqH0e6xgo!(mDvs_nn!FX1jg6Ka< zPQF~#y8yF4pErsbbb54_U8R)VYLc_FyC`I;!9ZNHz(3S?=_+%t0b!$%MeQi7msol5 zUlWX3`4%~Th)-wM;G&GAd^3ytX;8+GjKXrrymIIh5+kszcEnZ+;;0snI4cYA40|jG zP}WYCVrs1*cKlU3xqC1;_~0J)+qY!hTU2?BDx%P^bWL896=~JTo=8`c9vh@;nbed1 zerqDf%?jWWQ2(`99pr(}V5QF1#~veg*sR_~`P+V51%`Y1+JuAl2ZlBZ>SlN5NMrF> zei(59jO4^8*<1s@=kDDn86Knbky>&l4rcu9Yf0Rw=BFH4Lto%K^?Fl!eX@QNmZx~d zGIVc7%iQVyzVU1rJ{cM{^-sn%KqBP#?yk+|jg&SR0kYrOt|%Kruq#rZ8dD(2KzI5a zjsF0{p$HACM=m9maVt6Iyiwa%3N@dX-}OK+Sj6N+^l1R3!SSqs(&qyT{R#e~46Snw zP_Hp&Ouh!d%B&QKPRYueMzrzbrOUx`D|RwTS94@g;YY9R8jSxi3NK|>g)~Jwp<pmu zW5qXIw-0jsJoPG8C{pKnSGHiok=e2(_wEJ_Cf`$Vt;l~u7Fp#ayE%xAJ0KKdXZBXQ zL9<0`K7YV;Z3LODp&o_G0vmVbj@iSpE53}kYH+!#b;xYzs!tymyJ^AhuONl{>b6>% z&Dc0jrh-fdjHPtX<Mz~RK)FfQ1&DtjD!@18KxN9=@frYi6WM{LuGBL0FueP@WY=5V z7>|=<6K$#f5<AB-tqU72U33bcfpdJ~jI4yblCqUbPj68yrPiF+H4`AMjcqytw%-rt z&;7@5Nhj=xz>H%+LHmrXRDg7@mdc}u_iawXK2+y!$~1TuJoFl{n#+9?dBb{-pe7a4 zXakU*yU#aBI&+lo1UmLRw8$LhoKR=RkYEKcL+I!>rrj_{w;XnP!D*k&th;DUoYw(} zN#x9B6?`Ct#IAOxg?U-`<eUItPo{23_pO|bswbT*sh{tHZ+FOskfI}zID;y8=6N&s zT+y>60g6zFbLzcoz&;JqI;kcV*kG2z_0be3h;i|ioOy<8$y~HWDp!L^;HDOt$(&zO zw-F47maCnymiDt@0Z`_U26#3_bWs%A2p^N#Z(nM4vJZI&Vgb4RxqH#m?$*Y*_U*C| zIhu-fa#$Gg4!~>^-8P1p&N|DtQ53(yYh2@L=X#XK=SlG8rQz`O?QfA3<Y7i#>BXe) z?vodyoUQ>#BRI8N415gtqGsnRCmH6)S*GFLlTtuv$o4=9twRqcLw?yad9CzuGmz=9 z#8>hy$r_A>#^5{-l|D+n>iSu8Hsqy0XdT|~*xdNhD`Zo{Jg$(kio9s}Kn@(Y0&L?M z;CLRAq1!}m$99L={#9wF`Z<cYZtXEbBZM^0D_FPnua;i}F5}`H()X_c-;8kfT6PE& z3tB(-(O)N&P?wlL;!i%Wn^t>#HlAX;gH7rr<I-G$Eb4FLGUxPUmp#jw3o@&v$$TmZ z_|pdbi$OyT2Gq~qcs7RnJN+ioq<cPjKB~e;E^|Ym@>e4x>jqgMtDFI&U(3A7bf;a^ z{Rm2=1k9EmXj<RU8OjpbQS%BhYX9&jLz`Nv$Er^%uoj+7U>XPjm&z{lBG<oE{cUqD zi46~pS9YB8dz@&z9bM$bn))~z+=O@23nG)<e{k`5&t3G(hw;k;MbQwDe#md76EYnv z;bY=$PXRFO%jfg0VjW)j;tFr*qC@{TN&(_r9Pet9cWy%G!MmkZq@1>&Zk>t_EwPlB z4R#aX^PfO(w}-JxC*+-Y*|U;?-#{<KuEtGE???VsE!P0QIKH$CM|$be_HpGLs-<gy zXw*3L(rsT?-R?sql#s*ir$JB69Dueg2Pl%<)75cZDEn5C20epMd^{J>L_@CJ_BCRC z_18*XOkxwJrovyrabdb3)v32>6Tmv6?GjU7&j@fKfa)+$q`G|pqC+>(I(x#vfMmS~ zqn(S!^|>TUCv=y@J>v7eL2|$bKAVv9gw)Wl>>2>k16hTArd-N%u<KuXEV!<OjpQ}l z$OWr_PA0KaJxV{jnRJEhkA$osPA`5pWSq#Z($HPnzXqL7R*9d^95!Fk0DMpHMAQ|F z;QRLKC!Uv|3b62F)6TEPG<+_DPCIuCk2N^L9*Kb$;6x|xAg;amGtOPJjZUoVQF~f# znl3e5VWosaLrK2F8=QP`Q9v@pn80Z(apAas{w;n@&5P*bm6H5GvDRG!d}ij~UBa(I zK(PSTx*A&lG{{kY(fp^4rk)gZA%6BM@nLH-Rw5UQAY8QH=YEcbI-Y~=-CwbnQ(XhH zm1Hne&DmcUiyeP{aWV~NSns%cc4tFjE_fSLchSB}_kv<Afz>8;Ft7Zb;tav|-qooI zsjHCBEc^nZRG_Y;uo4SUY>NZfXul0wPa9ps_OaNUB{c|6=rD)>A&8!r0C`#MYrzdO zvOO}MFNo9nf^tSqa95eOm~;&N?Oah|j{9RF0EpV|Tv2l+5wM*-HJNX}5p=bl!=L1P z4R{2e&U^P3Jd_oFHIc;+X#`@o-g31VCfoK&Eli|q$Y3YYb+bA+kd<5VIhJ{CKfk_! zaV#=P?P}{2{mDAfOe^Vh%JH~KT?2rA433Epbp;|jeXmR-YEwN=j~J`~FVtU=L3hFD z@CF{;_fj5wgb35xA1}d$*MNg5YO3wSW;D!7Ly^srV9$T$r~6x;?sJQJE&6JLYCs9g zd=2Q!Cec=)<-H{KW*+~hAuV#mpv8D54Kn!o!%ceh@k`|~{$sRgl<Zqh%0HP#;|Jqs zcb3vpA6F)V+X8x3*EBdfV2As9P0-7T6#~3U@{XPaj-Ye(Oo^UQ8#NIw8%a(sa}5wz z!nrAU0>cl$2UplJz*ni1U)6DSoU7rJ^DiiI9XeNLf)TfvcZOln?8#Z`nP)D47-nOL zq2!&Mm8U5Bq7V~}fDbd&N#!&6c=!_K-%fu0)eym$wL_CW<sNp6j8b@&yG&j!%)JDH zNR3%U**izvz6QJt?fc4Qy{_8&oU=N`MNs1!P@PVC4M?rowl|NE!)UFV%pG@KNbOE% zwWw9<+U;Am2Qn#=W(bsWhQC4A2%@qN-O4c60ITdSdoo#V)a&mYPFLq$jE+9}($v2} zrmzCJ46m&0fT^~}>rg-xyn`W8q+IqIK)3UwT+*uVuARkk1Epx>e%A~Pd>iC8>(Yoc zq+f-QseH<{X<rnt{)k+D!bLfGTHW{?SQ}V5-;F6+|5kAgpx#b|GLe1$G`Eo7YHqSj zx=3<p|Hy4x*zG0H`#bONzn{|mO;a>>bIPWnIu4c%LK*{U`V(XcLeqjRszZv@Sw6>f zsUXhDB4kY;bndN7w`J+NeY67y)UcVYwb2AE1?N2LN7wu)v9xerY65!aPl-xXTJ}F) z=qJqyW>2){RzSv}qmiJ#R-Yg9##zdH<+pdj-p<_z^#HuNn|xC2e_R9pX$zLkfxQ2# zDqP*vf0BV`);VmaT!NS3Drzw>tO&+*{Y#wbV=zNV%1umQo($t~)gGqrc>CDS`WirM zil96gSAHIXHO_!7(`hrpYG%Lfe==2Nfe8`FFDJFLTk0W@sQWlJ6ts)}MI}zpb-K)$ zug!ePNAg@}7ZX^`_*>{At)UwnscgBQ9UBp_$}lg~Ev@Ms>9{WTz!{H*`oHbZL!ufV zMD|9kp(@ZMsczmr1oq`z3!sc^qfaK$^)dW%cBQaw0S!<x-M_uo%lJ;dYh1y_`(5!8 zFVUV59d7*zl+Hg5HRK+*-NFt_Mq+V73~m8z+8~psM<RE(o?int`)?l__6=wLHHbQq zZ}K@V)zVLFCg%yUuKVRHvIC5U);1;)1arMitzIKb<D5t)N1seCiiZh=_QT81`zbma zK@@}=5rPeI#;7~WciYF3UwUNUf1S%^6Q>3*xY1$H*7Mv@&cxYBIh}A!H13&ji!56U zzwO*jJD07OZa+a2h_Vgy*Mhn^Yn>f=^idxo9^;eMxp3Cw>wnvL(MB{|x{aEFCEweN zyYa=QkY1B*`@1-Me13!*()hAyx{A~7pDix^ak{Jtad122BUYY1(D`!twq!lur3<bG zoUL<t$!ht>ys&z|MRmlSG$Ku|H7M<hCg@TJ*ACmA&*2Eh{le<trO!*|LEA9OeY?x; z_`%{WUG^Z*$+$AR8BOVhZ#_N!Vn;Y?cMEaQO$bG(xGv?Bt+>N+b>{_+-9y&^P}=Py z@<;v2u;E6J_i9cytCQ$-$}7r!Z8RyxHt`vJ1226eb$moA)iXUpjMsrBdL8~C1X`l| z&g3aw=!&~qL~WnzLTc2Xt1(`hB6T~;&#nFK?1`ZPZ`CK!;4A0UkEX`mwK@9b>$^xb zVXPBr()0dv*~&UnsJN)vix?qkLxzTck4jBIMXW?=HqLBm9C8_+v77kDB`D&{!2TBc z%CuGmJapfc<i-He3+UG=FLtPp*gjY}3jPM<R~-_w9Y3pB@+WX`2~I@nAHAOcAmF?N z`5HaKal>dQ@huTG$o|YR-(pXSQ$tDgq`0ezblY*~TDC`(`*1&GI97S{^hmd+k^r~{ z{82uK-&$O72QzVCIgEKgXtlzT#r$ZvF097%Ozu3Z5YhP_TIZbE`H!mb*Q%{n9$H`= z4n&o6Vw%eSnlt)ntLgizA}-zvHDyI%1FM|Sz-z$U5ZG@xM(9_}nuxVpz&agjFDJ3! z^I89w$aK<~ZEpnx#Jk;N?ltDP6yF}fg@kITi~c?IBc;7}@@D83XuEQD0d`?2l*o^9 zM);)M&jv9DDj>I_dB{Qxv_2I&?=f%r4SflujkfDuW1w=)ryO^fctbC}qCZ*4`dlo- z^(ucOf8*3fb=3PLSk0Vu(&mRw)&gPl8BS9;5(PFRT9A(83}%R{)rxUF+?n=$0AUi? zl@D@)(qgOvr=qxRRzhg4AzP{IU3+@GV6;=hY(;59_?r;H%AP$$wTJFvpV9Jm`h0}- z-!`@~YuC=(vW~Pi{XaCTcb~{kD~Q4X(r>M#jTM!+&tnnxvj(dxscqI?>q@dD&c05k z;$D>-uB$DeLm`a-{Nn3&<X7DrZ618viVkTxU8un2X7Y@h_f?194RYO7-m}Hd0sZ|u zy48D6^#b}&P;&R4+4a#*)r3c`f}@vj4WI1h-yW+(2=K)wJWL%dN{@;WY-79zxPpLD z<JpsLK=S&Sq8+I%l^QloB1Nj48fY8=46TKOQbl%M-!ugtatln?S6H~M0bLtDQFqk> zr8iPN9(Ei4nylh)_}Q2^F)h`=8~gA(M1wr2cf|t2=le9scso8q2>$^mggmw6zBl6n zg+<AIIL@$}uH_fW?|8=f4|kqPd${wE|1D(GZ@`<1n+qHnC+HhL&*|N%UTfyfsv;UJ zDpL{!l%6q{ElcSRIo*GnZe(p8UoAP_^fFQ;7nLqmYxGZa=a<O)x&;vP#<l?9r;<30 z5covG%rIRgC1>LLy^oTtKuNWVdXrWTsR47g5#}4M0{#W?;h{xKUKH(GXB^?)j!!Wr zPCv%HE@D-`Q`Y4#tAFXPtr(%)<7JN?k4>^CX9nh}Td2>Qe}1oJhOL+Eyf~4Y`2$H< zsk0~*FG03kfmuQf<u4<|%Jn*)!%$QZHZ%-mb#@Ji1=d6Vi4wK#NZ#_fiOG@K94T@i z+8AnWsXlIpyQ2qaj_9a3Ez@x?@wpNFsKmu3_aGzZYMmI0+ERs#05(dVBVahHd@9%^ zAOSOurNw~Oq4R<C_Zwp)G`jh=#sTjvh^8kE(OHJ~I2~GF`D4NyacAbX2}<lst>_$9 zYyyYA(BO2oo|!$h_o{&b<DoxI;_Fv#;`AgC5~Q|`8IJ3WCyPDAx1VjNhqPZ6QCL%; zE{hWyivmSFXrIV&J$iOR-a2tk>(46Cs+Tf##pD~QDJ#ZZ7!FK%*{o^>GkVp0Su6=W z64Gy6H(^)`v9#@+kkdU9ljC4pUS4M*yAvqD2<iIX<0OJDv9v$doBmu-X7+)}C9jqL zjqKr11jq>jilrQ(GE8C@3W6LnlxVduTpr5tLPU$=G7EezxAMpzNN4<$S?b-tM6X18 zh@U7<m?Hw;l@p#l-{bS<LG2n;77xLQ2^qsz-?t-1ymfGO#_uvDNukOP$IlA<p{<Vs z4<-T&D9SAq^>Q{lo0jNRoIbBlsAAK!KHu0fdt`hFeEQ_5QSDy-TkeCmYum0IEj+7F zXryi^S#1!*r54l4;W=!*j$QB7gp_9#<^d7*b|v|(w>&Cy-YYdP={wmbs{Hlr&cqmZ z`p7fk3?QHO?rf)h->3KG4|P+uo4xz-!m}C4^N-KhGcUY`3mpy5AyrzrQ73Q>Se>Bn z1p_1ScOLnD-c<geW<_lJn^FeZGO1$EyrlEOgaz#8^T}!P;xS&TY(gYIu2-_fTcuhc z{_K7`WdmCyKi+ejOX^v9HbB5H^T4{i!0`@+kYjEZVgKxE@|V6JAr83vC|RF?p@LP~ zx~omEoX&@lDSqk;wpDd$5f4G%+2Bn$nOy=N=`AcrZy`1k<%#%r+OeKs(AG<SyFT&e z0!q&hMBMnx%gD!4zZlvB__+6!8QfhZftOx#hTl8^X^%{6y-W8EDTL{KQ_xVf)1mQ# zFz1V2h`;bXF~~|ZJ6iI5M5kp1wEt~{hto<jv^DVjX}<8l>FrHm15i)Jv{n%)>c=>n zUq8qCR&{MNwNL!)w=Wa=Cj|J^a0$q>)E|c};G}Vt$4BhO8q;AeUnOyuRsp0W=jI5R zdjf~X)be1&s2q2jsq-G$HK3KN4Z8pIsImXX3rGV%tppOR;7__7kNwm+(Qa@Jpf^Z* ztC+|c1h-1T{Qh#u-<YmEM*7PzRNfB~*)7NBT064%_A20EZWJg|&L}Bu;=ZnWJ)rlp zW6S$vpmb14&zEb!S8bBx{Ez8=MD*J(-x6H)7@Ld|?Lim$a&@SGJ4YSngl*PsLK<#v zVokFTSy>a=ovM-}3qC;{h%h@TH?zs*S&B{#+np{{3^6?NfBoqjU9y3aPgJHOUWoMK z$>gox%V?>xR_>qw_LkL<LV3}e=+tBry3x1vj~a*_@&?o`P>iOZczb7viV`nxEHd6f zha*8jVUb2&IE7N#D}P-kghlHmPt42~DCDARV@3>l{5!0(7s$1<%sjCkzwB;FOXaJW z0#1PcEE7W3%z2S&AYli)$ONyy({QaZPlEv|(tuc-x-WsRmDD$;lxVKzxb=`S==(^C zKQl2;ni3-P)}1-`Skff2X&EjzfsbJqsU}So_G};zdzuL84sNaqUUeDN$7KFE-3jaA zSv(*uTP5^B>B=%|r$ZL=8S9O2h!6`PX5CKL{x%G}Lp({<#yT%6fBkVz`9YE*RIuX% z#sI5;kytHBg){7ip9}xO7n!xHdkt4oE{lc*uf8fw5i=p31iKI|S-p1Y&1O`QRV3)q zx;2=3*QEAI&<m;^znO}FDa*-xYE1arN}ScBFr7HrBwM~dNt#~ITun9U@LELq$QyzI zFNq%9FvF}N&v@q1FRbmsI;+{sEJgTOuv~7ioPIYq%U;wgJ+k0l%Zz(nWmLu2fHXto zar{{))1#B;Hlii|FQ|EE_88>k3rVnKn~h9-uc-EJ3bWLX>=UHN-y}78`ban=?pgFL ztpxAsnDjNIO`t_#_d~GC{tO6vVOwpuz&CBtOC_-ZAvOH|Vh4q4Co*9%ZV@~&tJC>y zsbX?LsmiNh6i--v)(m6i+M_=3TJ#LDFw5W_|IHictGS<JfUW--dsJPT$l=;&pzEvt zxsr<(b|n!nJ{%Ox>ur{{X^<(dW~t_?Thyg4Oz6vE30p&%baPpNNiaX<B?$4oUiW++ z79DLbK-^)-nnTldNUT*q^0*Iw17VPsJCxKj&3N39TR{FRl~8n2Q^g5W4S$GRMN;t# z{>166<%#snbI!kRD7D^WW+8R@HL1-8=3iN^lC<IkC*Y`8q4U5l^kJDMG0KrPU-1EZ zuJ*r$tfqyU9@;r0;b;-0Nmq*gg?01o{iE1qiHZlhS^YPI$w{+Fo6l;Vbs{TpQb?m7 zdxm=1tnm9fbM>D}7)78q(BUnjgX)n}UGa56bKSte3uMj6P_OAGoF%Asb3&u$MjIm4 zgfyXD$-qPI_};>~5%)hVKO5YGGCN6sFRX7T6C{@4#SxM}2%}@`A0C5}19j0|6n+E< z8=#qUHD7V7g^L0G7!&EkWET=+lG{5!JhEl$KHoMXklvxGdIP|{{KaYJr|oX%Ty05J z<tx^kPR~F32JG%WJtjB*_)dP~NO9pf5m$Owd6s6fYvMx5wtnfdvGsU7lzYR>qu1Dq zVDGnK39MV%juu}q#Tcx!wF&duFS}ayR=;U|NBJx{fK4@G(0w`sHUHPegc@f#wt-Bo z@>PuyTMun9M~7SrZfb{ITC<+lIJ`aRDi;XjZdaaSKYo7(zq=dY7S^8GQR=Ad72^Hs z#jPvkWB*9Uc`#Q%=%GYs4gC0V*$GY=Y(EVfhO!dTZD<r1Do4F^Ri!LKp{z*^{j7N2 z(1iEn#;2<@Htu&F?3iq1TrZUBT)P%!oEKU0%Qr)rm>S>ZxwJ0Z@i@x?#;A*9lw|gR zwCAV6MIYF3Ts69IZw-FF<yU&~`Mx)`!)7$U5ra3&o}mF8BZ~B~J-vst1MneA)tw2k z%y#pc=8oBR)7^6n-NoHl3!eo|@Twlzu44G4Vs&>a*dX)L3m-X*OHBT?C@P|i4&HOy zG*)-DSkl4OYxUQ(6IA|<K}5YLyiC_hhUOOi55L+PTFD>B7sCc4NjZT}6EVTP`E=7A zz>s&59JZ6kvLjZ&c8{=FV+Oz3m_5asF-fIwEK-mo=NgxmOK{q{MYnljWmeu5>jDCJ zg5?3F=(f%>h%dR=ebrG-)AlyO)yCZAkmZHs3M2>xnzUjpzx$`lZ?d^&%@U*fsc?i) z?m*O+iN2?~7vd-V%GAncMTbJgQtYl2fQ^W(ePwizDl|+OvT@9(C!ll0azwcEtm*mJ zE>8SFQ+bk6-TS!xMN`&6j@(bE-Ch|_o&Ya?pnH#Fu_prF9TqCPvKXYNSpoqN4kB}B zhL4Sho0OW96Dd?=P^Z0#co8CS6p3S-z}-d;n#5lX`x<<A|9<QvLWfWPD>H_E&66Gp zxTqOEr*2~4g~?rYBa7Ulx_@m+j~yaY7B-uBd%QJ)DZc9q8wSmLFZsSKLbVjS>_8~U zVQ9s^1%acz8L87vE0Wa!HG4}6E|=V^RU*@Fm)225baG!JSJo*1>9}L1M;RyE@GHyy z{NiVA*4FA(TgreOoG>zfFFUq_B1CYo>+U<siPgM!kamH1u32oBU`x&2klM35vAhX( zFQR#&UlClb=QUyt;r#PYKh`VLjy$ASzb)2N!F2NgoT;EY<Jn;5Q#V?P_|DC7Qp49e zRo$Qxb8o6j1Zo$vqhk6hfbN~{Y~Oyrvm(!Q0>fMdcN~fWy+=#Mylk1M@ao=uzdl8> zzY=lECEf0mnw*e(pOQpnn$3So!8_%wyO+iCkKX*~(DeO@E9~Dc^;>ReP>XOSJ;;*O zxqWx3iH;oJSmpj%Tuj`WYh6kJxOP@{pyyFBy{eAt3#0$q3?{W73HAyVIH~_ht+5DG zWF0Z_5ayPJy75cB)u|a2nM}klMw)zqw%U~vOM&=*q;#d!+pOq#-4fS@YdoOZP`TU) zx3FvXZ%V2`f%Omc4^FIWnTsm*)Sv1;Rz*!s8_qh9${4x*MKU~nVj_6ETEye|DB>|L z3*N%=hdXay8`cwaVX(0%KI7wAVW}pN8+zB=CNyn3rj21bH-1t%sY=Co@=;@yRT<~% ziOiwRx2pBJ2h!G$_$l9wOgBcjZ@zg~7WHgU#xB5Dk1V6Vd~<AEYUXw*A^<lslQD9y zVI!+9^h2!<*9`8|Jh{vdCit0G=$`h?fSi#EmVoNX2>oou+tD015rx$;3H)Sl_}T`A zKR*xJ{$g41+>m+t*2qaLD=7B$n9V78-e+w&7bUUUm>_$o&+PNlY5?rT=Ra=1E<*v# zVyLZz&-y&eFvEXVy*X(hP{<s@@Ogm4*%J^6=naN4dq0ejKsgp}xG6jbp$B3^8xQzc z2}6XNoXi$2N}MhV3|h0+&^%}Z*T~4sAuVDi^q&-b#e<^{8>_w)k?+YvO%Ld?W5a~n zvl>JEw|OOys|4^zGzwqq_xl<Uo^$Gub|LVb1q+#a;`xi2mpOo4w`O*Ln48YMz>H!Z zNZXVzNe{M<hvm33Iug{Jil68@ibsqc;D;j;Z^2qG9R9YlDVrs5rkcO<V-va|Ej?HB z^BUmdgAr^@?hw{=slx1SnNVT;otea%4ebq^50a%=VM-3Wf8aNJex;#)x$qx%MP<?+ zz>m#`E`%pK?c0d?S+WL<SaE?u?S9Mtnc(r0+0q?8GeTem5pVq?L!feJ&VO8;@qK4P zYJDAUmX;TyMwUBsdM9=`N?s@vx^$#-xb>zyKyhbmX1SBIb2ano8t`7Wb;)w=IG!PK zHAVuT0;cH>=~v;e8RBO!6!+^hxr+=cErx$}S72tj3hd20tWUW!eOjoKFtu7Cym2es zls#BPDJgjLr_6=OB(g-?5OQC-voa>}${x*$|6FfBAJ8|C&aB>RyfT0P`BmcsBCaf| zdo)4*N1P+sr4eE8*@<HcUQ>As?BRZprt@UR0s;ES7ai~%_mRO5k8x*lZ3If$bo%Fs zoOgjS0;OI2l1|e&^E;99v`r>^ufCdK1ZKL@dhGa6PL8S!4c6(DrB^wYn!{1L+NPkE z#j1TF{fvv1mBdbCoGEec;*j`}`qFL!XsV!zvoELQOMrGHiSQ3d4M-mojQ$6o9pQ|X z->;nuDK%i4vvD~HYe<rrUtD#HeMLg2QVt++PO@jh`5c)MTcXKJgJ-3EPk@U@mggV+ z?5eP$IN`}Cg@`vu_`CCzhmi_KQ#tn12A-h>0unst0=K9alGE&qWWaxf35){(`$PNN z6|q~Ip)5i(c#HeDGe2JnSRt?|vqwG8KQlih%C4CvPSrbu2x0BlKDR>3s+A+Z-E7*2 zKFB6;DIwbd)a&3oWu$4_3){rR4BoZnrsGMF{F9ZYK~QDh1KY{Q7rb&;_2AWyU|RXZ z?4Ax0e`-bS;~)KS()dV~nOMSX=MPXc5w{g+LP6r>s$Pe#x4mCEuqv+At^Ua*N%QqX zcTE&Yfl?YWH{RcXnl@NuA|AbcK~@xes%$v{{;_hfT|k&nSD$%fa%;~jB{mECjiZ0Y z$VtcL^sa{J;3B|;b$hyFIGaGNgY2^);?&f@#2dht_v<$qYOZof21j9=lA$nE?~~d% zKhdAeN0uc~mEi7gQLK4QD4|3EDRkuz5vlAnvjhJTQs-(@@x(c-C%M2@J}&60pikl& z!(>^MK@YzE78)3A1j`qTsYl_=FI;+$G50JJBV@kX?5WeCIHM#(qWr$uSkoHB*#$H- zX1-EH5UU(OvFBcbkqpn8C(r4X*9Xz_T6AN^vD^xj<S$HkV&*^VeKYmpS1oQnPR$hX zY*N>pUBV3>sZ)oj!`Fp+k0~+srfpd>Mt{!@!iDpv804NVk~Z=rpC+%acN!6^uily9 z1U^A9`60EIE%=|rBu#yQfrft_=$?5g@MMBLwk<h*Kv)em(P=<5H5fskZpeEurK;`v z2&pCNUSCPkZ2N|!-Ll53m!CvA7==ONCid>gnpqaK84`Y|@I9nHq~_^gv4i>$uVF?v ze*wc|-iWN%+N)%{sb^O<Hn4%Gw?I?!@TX#+2%>!=?m$&Ud-LaB6w}BTOib@m2+-r# zY8bezEDpz{u*Uil+=#P<T;Uq80f;-*F}eM?bdZaXXnMw;Flv<)9q=Rg6kHP3`iJ=5 ze8K44QaOh+8-36j2?xM7$+d`q8d(O$K#3K_kYol3!P+)ofrn_6KG+kbP(*O5f}+b< zty619a_}J#0<{>@U#t@)hq6xla@-L|8M8}uMYwyZv)<0`LmyJ{d_sLp#vxR$nuBap zKm;%R?bC52oom2A%*OetyUpV5i*<f{egpdAfS8je>qW8js?iMf<b(beBdgOwfw^9# ze{T9LnJl@`$@fuhM6T;Ne3_Y=XTdSSR#Q_ucR%d640-**zAk>^GDVdsY|Cqd3lyO= z<(%5_gMWB<li+h!GgoCvpw2~VUny97NtjPk_f0oWZFn`EEnC+_5He3oVJ4V+caO45 zZT6t_4ZCu6G;9<}m0o&_0OQ#$jk}+a0B8G)@}*!Fg|y4PN5B1%h<PGvrY(fG`Ridi zu{AD7o5ZmsAI`Dh#?DrlN7H6pN>^F>L6b8v=_0Qh(JS4P5>I)sp{;Vc<d(sP&YO5- z$@w<4RQU+@iGJX~@$iXmEh5Q{1z(geOmajlqLtFZnuWZ4ASEbLppYDm%~rxoVP@u6 zkWbxeR`K~v)AIpL_Itm6O_21R-;1YQ-~o1Z2;<*5yIup_;nZ7!Digbs?biU`?JLVg zV#&sn4W<Y{W7-TKS5Pmk5f0gZ@tKG|VziL^#u#(twkC2ko2jHd^ZSV<`3ArE_F}qG zV7hoeUHYw<bpH_6a@j7Y$$||h?V?ne>vy{ckP+l2W)!zD05e&W%au#$#z5D-8ggZo z?IgVKd~g!FaE)r;A85eqJe@vP9|!x+(C3q2zpDWbE%>9;1=zX}vNqo+^+&Jr9`xC$ zd&LggTI(Z?I|C6ax;2lG+r8UKp6qAVV}MTg_y7nx8z&N*F4nDxchBrm+6yxmdvp-~ zzHrrt7Sm+Cx9{c?G`INkk?+rNNiL5sD4$+>k*?<2NiRf8YivYAszla(NFo0v&93^b z%{DgoCd6<?>2yaZii*B!&o=i^I{F$A$v(l}Ds5fM5FcSs9+HI^new*Mgr?u}O*p%o z+I_RcpGsA7HRilRy8Gjw)xSYPu3Xp|!>6jS(A8@|vQ>T@pY>koRAqL`FgUDe_5$ZI zdqxk|N5y_>{?RPK4$W8B5<YXVm$(av85ju%{+3&CtBCC%E<Xbb7Zx`NtK?V3p8Nsw z?)c5uie);W_=Wl_Yh}n+xr0t2hF>g(!#|1pS{E+i_LC=H1CezN4+n?I%j~niK(cWG zcFYcX`qk_{fuQlc*`P~z35ma44DrLM)2qo3ZiT>sc=y!^6WNi9{?rK_>OPhN&Y<%u zNJ3a_UtYL_sI;_<hyvyNK1F_%97SxkMEv%N_o_~yiOicX??`skL{4o8;%q5axm6&6 zNDAtPhZ0wdbI9aI22V{FUzSaA74Emd(fVUKY^412w3U&JATBdxr`39(3A2GZ)>X>0 zwpBzL`1yxl^7I@3Y&$(ArGXl#Su<2Nb=1!5#eSC6KgzLXA$iWp+nh*H*UvUD<U+SS zQ~m2nRh^>wJv8hnfklD^tBcsuIx4oLcPTS+xSvjWG8-0rbu|;dX5@9QyAjIh=(Lu2 z=F^QkFaPMQciMY+@mZhQPA59#^f@Z~AO+3!Y{8-l1?`q^N}b=Eu~a#({|%!-4J)Oo zI7Gupmy7W&1ZFqjU3GdLgaOsNJ!P(@R)hGdD8dvm7o+o%%5R31zddXPws60pCb~nV zA&0ft<iMcl9m&A+A>r*No?GFJHk8Q-M=YHoU$!WLA-b`4^p15oJ_uUvG4p4g)BS0W zmR|W>$L<2SSAF}guCVsgtP!yNjMhmmbGK5ePgiNOLEVKBd#Qua^0%#r)_6gw!(PdM zUJv~~RR}g*ojKBhrT07a2|9&f<6EZecm82m8g+a4^-C{@b?3!OL3yyjs1F|~la!0? z6W~?IgnE~8XUg51vqSP2?lo+GJN+FJ-R=gW%^%yIk^OEAMjS}|60RI~q1e(q98sj~ zd;InG?2O{?<nwEQ0ba`JfifP#S}MsCu_x9(*{&cQO~@45H+1ME<oknK6Y+LPtt6k> zbRIS+H{A#4IMv@P1tU>U0X>kjKyE_ARmmE*GO9=FcKiS`!Sr1Sx8B`tNBM;P&B2q; z2b~m~V#olZqb)um8~zl6b!sqO=ifSlsohWj`{^OWUUgFAc$)idAIuW>QP1frOrv)5 zG&7sm3&XS<G{ALuAx>o2#B@o27%`y*1BZQfy1;wLZKN-o-q{=1Z@cSFZ<x)|518Iv z{Fbu90K%Dw!o7&jlBQhU`atb>=+#!|@HF^+y+~a+{bJHaSDY{XMJ{Br$~B}yuci4D z(e&pO0-WsIr1B&8(mqxN6e2mV0Xr;C+^S=`#H{4FW9SwJy{X{v=!Mc1%`hf7u+zBp zS(J|g8Svt<jBfK1iuCD5L@lE9=S&U5JMPjEbNkM!ooj&Bghd3CCIXn}6q0ZeO3D+7 zfUTL_uJ3kLd2I35i+)2_YyELQ+p#UmDxW`C`{jol*8KZVZ1gg>(`N3{tsTI#A7nc0 zFMl^sAxTbW(6XgbkZwv}jOCJcOOtLGe!<1%4`Q#JQA*49*2Q~hck4Ab<tqu82uf-> z#|a_7`~6xiwnYtHhAAJCQfT5mM(rHL^$_#zB0Uzs`Kxg2%V?)j9nRNnGv@VBgD<cE zY7=cWhKWL*hezga?}N%#O%0nov-{7!8^c0*YY&9kre5af4U~PPeI`rS43x0LRHFx< zh&nhdQJz#&n$$tfSQ{aXkaj6-r~Z-H+r(u>sztsht(`Poy^DV^&2M-y=Ib*Kc`Zf* z{DirjwQGRGyAOmR^;?dAfUf&9`0yD6)K4=YWt+banQOKa5bNXt!6(~TMGX^J9%4Uq z!Dm`^jX_pf^*?3;PAkyqpI>7x5HqO=cljEnD=rwQ+GA9IJA-8&v`~#ebf7VR5iuLW zpam8nWYi<}6=}o?E5pU@5-kO5zQ?R=C#uBqwO!+Z!_W~an%c|PZV=q5_xoa!kID0W z9qVa2OHia?&0K{ZCc0`RLK}6j!p?ff(v2dM?mL}~4ML2cbY^Jq<(mPxJ6`YgJSC{c zis-c!{TW&X&c*!>^5XPcw4I~Z_bP}OQIdYAyBG8m($(JI@&oZrIe%(-i>0Gf0Y$mq zNkmLsT`W*hoh}8>kLG{c>eV+B_U>;&evr+`Ay?2)%nMY2sjW&^hxCuXaulNrG9AL! zoOu;I&lba8ck+TfK`CL-K6olOZ%2-)IHYt*&$;Bc^+xKQSFLZ){b_H{d{D83V8A^J z9d~EW@b)Hc>98lYdEz|j{O?kWZ-MniTe320@yvAo?f&6!YDR&W2cUyBHwP~ll>Nhh ztlR3uzBO_>ZoXE1tgga|OWDu7_};-o^mtp0--zg*0dMpL#@t9s@Hy6tbtZ^?Ps*}4 z{194`N01~egYFRILJXcFI~wtsUIlyPhUn>_Cegbw4~|~H0ytAb^u=CzV!02A&Ru*{ zbVMiulkDkjZPe)WL1Cy~e<7N?Sp+`a`6R|E%yJWoW4iB!$wqwD0nIT6>|*!ux}&<l zDg%zCd~4JSIu~hqu%4rZ8C^eG7Bd}Y9`W*?^cHUPRoqSKYFZ&DtgMi?1+S~nvzVZ? z{)9)~e@_zXB6@#Rm!{-%P;y3}5wXe*`2;#Q)CaAXPg<ijp>RVtPVUa!ZimfRTii+< ze0$5fM(azs<!C1vc=Z$TmYAwv(Y~F;U)gqk<H@7-W)EvOqu~rs--R#$NuLa~EB~Lf z=BtlXu%;SD{Lc<fw`;&{kc$Mn)pDhWI@D3T)I&wwO4z}ahkue+AI~~dN5QKh_Jz)A zCXFy{r}zU2JlI4WYCZX+UAJpG`};Fny4#1oM72<#A=#|es3%c>eoEr2JGfeeUx}A0 zar&X%0_+=eFM`%PZ*{)>4MaC!B4{Oh7kgrff9DDnL2o7q#q`Q6c?Uolqwa+Stl7tI z&frYTt22sv`C#`Zi<HY9qdyctC)z$nEnfp}a1rdeteb?&>zYU>+X82zChW;s5Eorl zT7O_qAO;@gj+x%e5(-22e{Xy1*yVYwhk{nqvZMPU>k*MrI}>267yIqKNFzUNIF34= z1<bur;j3<~@}BT?W@M$&=g<vVx_<mS7s?P~(3@1@eqwJu_~BmLIPSagmdeMQc`44| z?yqu^nn0$4j8sSou@0fZW9u3)KZ$<QhR+T(VOTJ#vf4-P-x}aExZ50E<U08NnF1%| z%S*i5$7X9aD1ll6g0WGTe4>ty`+^rTLDfw4ts?zKqKE}ge+1v!Cr61BP-C@c_$$l3 z=bkY;!cqo70qRN^=$gs<Ec6VwDC#D34IBP`?oRe8Rc8MIbw$T5Ov)Nj4LR8RHmz^_ zKWZ#~H0$}D&xh2!CxYfxwK5@~wS#55)yA3odTM$pzET)=90o&l+iWpU5nc*CQQTA8 zwNs*7FQhnbrQZk1dMit(ebD^=lPq_N5X109`JyHkwE7KN7X)2rAT>bgJZ><E3^sI~ zG<UTGy8RM*nf7+CU!NGh2G?lXd+jKH-=7!EE7vaJZ);3lGeh4jj61D7j$dYr=>s$1 zbPASuvsRu>Za2JP9bjOylj#dxFQGwC;gs>&oq<>#oa{Y$l64V28>n7(4j#!xSrtW1 z7|Hr3F>k%LS)oLi&tLyAu1<6xwk2{=$(hLJzlek{d}g<wQ&?Bjrt12`A+Y+=hz<13 zW5Wj{V9{B+%R*e&V#gAP2gRR7opeh-KWQ>m-(uTO=>|Que?^$9qXIkEBzW5oQR=1z z?59&Gb2q~f_W$&Ll(NX1;e2UoO)UZ)@5#SEA-0rm`)pL<X;Z}_4^P<n1u)O9q2nDI zB)#mq4H583iJ`l4vOEplRvOS_N7UX7vpmSgF%fHSanjZKtIffGC1~I8+(as(e*>$8 z?mDy<?fV9pRm+X2PxuIiV_ls`RhtFPJrQcuXIs@bGciTi0CLtWb9^<<o5D6|?pD<p zxUhS2-}J8EaV=IX0HH=Ps+8~LW1PTu4R~(13ou?h?Ts=f^ns`&lu(W6QPjPoLYigQ z9I?M!&Ghxj_Y5-7c|YDOUA`3uHmUfH&Gfwvy`;FOv~O<-{v#bFIFBJkXEjV7i$4`p zHE<Nq>~NW{5Vv^Vtm^dfKBfP9m0PWtiY@df<`1H@pyo@b`!!&};2}P1dqPzFOl2h4 zd}=-PYogG}t4DUyPCV}n{ObKFg*aVy#x$!H)=mBm(s8zvMYX8x_x0C+TYs331(qMu zcDEjT`n@+?jhs+s(2t+Lis>YJO3vT~pYG0j{Af{0Z}DP?OAoVD!YDMrw~o3<h#c{f z!q@MEM&H_WM+(o`ANBJSADl{KR|f;?K}hymaI)%SB%+6r`J|*VO~UK%^OuFGPqXY_ zZMCf+z{H5jvxZbFpd15UXAfC1Xz2dF8zhfztSoTKpv->%2SGDzQfk#IR4bORMx1&J zjE>hDC}Ex@MRsRm9>`?fpPj_|+v8KvyNx&GX=C9Z1v^+5;J8qN++u_grV(+Ra8X3K z?d9=oy0js9fxA$OZwazY^M!0j8o(v;eld<<2R)I~u5Gb`Q2LN`3>@woen_Xn+Fb+C zk#2}B`wx+&OIT9@OTgCLov_rYL^T+i8WMcywpwz_6F%Pz$E)bs2NSJ>4%iQ?Tqkn4 zP&u2f76rZrm`AW+DakX?bx7re+4Kul=oLD>154caKJ-x@j6_Da!M@Kn5+3!wc9e*} z(lVg%lAqT69rEFjvUKo42Qkp*QCVMP5S}63ai4y7V<*ciChMIH#IUS%k9jE6MXiqh zos&pwwY1a=88dj^Beqz{P=ML(u7{i15Ubs`$7?BC-Qq^W990ABA(vVNV2Z==x-Q`f z{i{H`Ez$3HBW32xjkpgktj5~3QcXstp~WEq&ro+^X%3#RA823fB%RBBKQe;9z^KLJ z7@2R<j7Zp5MWAY8@Xh7kq`Bn`_UMsF%~d$P!5Z{tue0osXhEHnh6Wk>qK2OM$BJ$> z5AF8mDZY677Y6*ghWuN}x1pb+)GFM)Y(Mv(Ub4J#N{%@;2Qq%ptq^qJmmFQ>eD&#J zTFj;8D+}pnDjo#?bbG+6imq7TyHa0zW=plG^U(Z^B72X<hs#}a+n<Q3{+pCj=$a6W z$Esc%hl8)Tpq{t5eycV#P%2+$rOL1}$tch5@)9=mPAb(Sc|uSV^#Fr##Y(3tZ~TL} zoN-ksHfpMQ=u7W=Wz?rGxW{?ZYlbvck_G3{2NM~DU}iSpT6AaS1mIuB2y1g8qkw#} zL`|aWe)>F$HqhWiW`c>_Bf>s&IOoNEV}rMpc7Jo%=;f^=XDl@yR{kUE?F&O5+UNLj z7_dDf*r%&!+_(nJ72yM=YlO_Fs^9iSOsmobmpf*pw(l8vXtn%m%kur|y7B7w<8(6% zcPX){m_#JcWMZ8f$Bw7YeN}FeA4t){XPX-R0!}lu9-P^?MW6IJe>kHNX+w@?%IEor z=xd0E-R!Y2-}vb1a_`$$oP~%&*D=fgQPNe1Mb&*>N>D(MZbk(ODd}cF8U>`Kkq+t3 zp*sX51xBPr96BThrMtU9I)@x!X8hgv`~Df8XP(2HbMHNOpS{;!du`*U<>2Rg{EQa< zc5H3E2RFyi>f)$SZ&&;%Ndq6XrI5S`v;3`Y|28TZ%M;)Ii%Q}x@Utt}i}4j+@Q2<M zcN^D7YN7$4r{Q4ewn0=@D+tkdCH|6!yKQV}iaxFHsI{dG|K+PDkR52bPc125RP;`s zBv5BslDL>i0>D3h<zm8R7)gwA$L`J1g1A*2S}Dl0VlQu#wl^OM5M@TP2<9f(Ej?DM zF=KGC+&;5liX*3<s(I#$EkSWoVlHQ8biUdP7hH=jYRR2%d|2#)YBJ%enM}*YEmsv` zd6)LGKRsf%p4I)O;DdcxEbd0`(AH=T20Q{zRLz$~IK=3Iu)BBso!tzl15kPMicIa2 zrX!UoTcxFS%>3_RCYiRaL-Q=U>@6N<uFG$W$I3@?U!vb5Hso*oR_;3_eD|+ll63W& zRy;;y<2Rs)v<#%q2A&kvq;uHat&?fQ3M+qI{|1@T8~#qJT_~YzC(>#IUwN5z;+S=; zRiQZEoS|yvlAl(ufbwy>vc~+@1&pua@{!5Wl{#;qS(CXqwfxKr`3q7vMXNsilnqK! z!P_P#T~XeUhz3g}mFq|DVnbAS+!y|$f{1ya@64ik`9>_zTTAdIiviP-D1*KI!KzT( z40bZhwXr9PBgE=TXoR81H}?(p4&7IvOxGnK__4=6?*kP(R{A|vGMAXzJ&BdZD#y7e zirY0G)%YV?K~)BmJGCj@xuLSm=Nj*~#NJ``LSF7-KqjfBqket)cg~c*m?ok0jxHJ^ zi2z)S4YMV>@j`2+SE2$i(7yqX+x}q*;`UdXIe3shCF!jp*Y-H@XAIMF448Va6fXQ= zo+4A4Yh0^kL;U?xE7@|nA*Db;c+H6rOWVWZZo8kDZ{_v{&vUOgp5@4Wgl4-Nk9b~W z{O)IRG8VH}oQ|iyZp<}NT!}vOuy%n***dQBY)4gy_3^Ha>x+~@xGzL*xaIn)cj{g^ zhbChh;C%X4WAhEpn}I{B!<C%r1^OCtKcm;orckPn8e85acQKm)jwxn)utW7${as+h zLt^8dV~uy3y1KU45><Acb*~MNOjPoHTJ|r6AEZP*tC9Eq-f<T5jP_XW>Z(GDZ<F(+ ziZ{(6u|W2LM@U;p#-9TWd)sWuil?B6U?c${!DNj?E<h&dd-|)+pwWJjH&n?FCu8TK z>OfzK-%k1_Q5Bo!rN2nHKfxym;bp&TadVPMHP-p-SrUmaY{0E$;MM1gG!wGGW>@}2 zEVwkpa`jX6THTfJ+Urcaf4QMZ1bd6kpbC~ua{$E;av9FnDls7@`G@uF2Wa8_4@liy z*o=~F?Wm^7Z6c(~dM3w|6rhPGruBe(;B?}toz6yEW%oNRa&23KdR~~ze5dcoACm)! zH$9_Ov;=z1Ea0p0InHP5Ywh}WS1BcyHxilMRXcc+lfoL?67h+&B>b#7WAbl6nI`_0 ziXlCBx^Ot2&9|#VZNZzYYwy;kcI1PzO()-F=vm79mm4?hu}{dL<x&Pkc7(t0QafR3 z@bxcXigiR&Cy_I`Q>;eCMr(9U8WmVHEyS;wWjvY-sw;feh<o!aWkdJ!6}VuGc`;wI z7xS#Hd5v=1k%mly`THLwJbn68ps?!$T_DY&xf5myT$7dZ5yNvB!h4n(1&*y}a#>#$ z*hl2pHs&DO&0YzHFFZ|5b{fGv#QcGf%Wxn&Cf5wlt_wG+$X<Y)+ozwsqLNkGR&;q| z71qlUn9IrfbBuSU11CsnqK(gCQ}PtwvBqBX70;mKlf}Be?MA{HuKcfmz59&T83vVJ zT7M#2gnu(-QE8a)a^ewq7~0Sn_Ecrw?%{XJknj!@bh{Mp*_bSnZWBiC$V@Q-*?4B3 zMnp9KRmJXJzM4>;W1w^3>F!f)@+{9?AR}qUunA7_DFD}6{03i5&mBAoE_0B&n*%~C z^4D6RZWvRtC=(k6^xo0w3fG_8gOgu+KFeVIH}|_YLJr)Wx9)XVBgxH72R3e21cfpg zxBGx&WIKB*)an|YRJQWQ!Hcae)g~^UER6c$(<`cDP&N3NJVX@5n%t$=D(DB3(`)Du zQ2nJk2Vz}5m&3)oi#Sw_+6iXbOtRhTx)UBjmu7fZy&<-l9Ub|kf~4zQ?zDx|!kxwz zcY8qf25}@g<wgS=Yb5*W%}o=O`I~YXeEb+ri9{=+r512QB$U<qcn2;HUoV5#MLscJ z3erAXiFC7x>S$r)tmkJZTYe(ByKS|`_4<L+K~T><!Qd<qr=@hwVko=?cJtPk`XvpH z8&OS@@FxJalf{pj`G-ZSF=>39W(`?-Bxv3^+?7Vk7A@{#?bq5TK@fWBFKkZc*tp2{ zg&{I<XaPszM*xmymHVT6t)S-_qCE(Pu9%d&hrQq`AWCn7L<T8u!4{U@kE2A3mz^Z? zXGR*A0zb4=vl45pqPfm7=JW6^`WDi&Ln8;tV_lZB+lsV?6)240x(KNfm4RXP`zUZN z@!77dO!y3hqP*FJMRc$nVDL1F{o?yfMcysvENSN0=&o9EWts{26i8QgTA-6U1Z@(* zBv-|q0|E+Ptq{VgTYL*mo6s;Xt|Tk-Gnc~BeV=(jQ%%|hW(|B5nbJsYwR`9rAcg5B z!-H)5dxGi4vck0Tgp{PFAYg-l;K>UT$cCq18Q%I{jMzS=h3iT%M2s!^ZIj(@ABw62 z*bB8Gj7u~hC^Y?_VYz3#2cXjNq!7379ovN8{kLY}T0rDk0w<LEfRO3y?D}H{YM;yP zHHJxl+!CN9VOdncMW>q!q5wk^9uV{v;hN+Xhterj-GGzy38?!D|Bc%bz<H#YNbcdD zEQ>2Nn3!e+tppQ&bAm*#QYEDf=jwgG>_gQW?Yl53ww3fhs@|2!F1Lu6w0|D|id?Ky zPmdN0JCxr9bc~CjCXIsNOPOyvSU<cD2!h+~o@yM{J_8(x+R2rik3T}hgRmb$8+^lN zrRzGS^sw|nz2CMXkY`Re&YC#z2Vk24sj)?ajXIItPsr%uG!1MSd)R7d=lF<C%NDpX z(E)r^hj_;L9d@nLXxMm8r*b0RPlYsEb=hhZ8<SQK*~To%gKJ^kknEpAtAuyAabd^; zFg@zkC;67zT03x;`bRNu##=1^uk2-6t8g3Ore!CBH$Dp`0^%8;GERJnAwxP-vv9g` zEYkE0Y1ASbp!0^?@s2G>%1NqacC@pm|3+VUNW<?gy*|jq%#<|4dO%2yTb+9|zu_7i zX1&<{Q%oFH$P9&fJp4>+r0cpJQQC`_{ll{r)3#X=%QKc;_elKW#fV{3+6kThdo8N* zXak+_Vy~yyGFPC}7=r|=J3!U|ZwLuKs|3m<BZG81IM1S@+c%||5p;IbqAD^YLhrS< zGZ)<^1_sOo#J}^jl7);y&U9Dg|Iq9Gj6fK_X_;M*<aRq;44LwHLTqV2fb$yM@sPcl zJ@+2E@ek|R<}771TWjN#*@1@UaoDwSPREdp<_E^s_ZY01B))4CB)IsQv1W7uwXFZ` zWw|*NNuG-u18zbbW+XSI3lyJ@gvy>BSH*-i*d%tLzhJ%RDbpo-E>Ql5n#JwN!@Xb3 zNRY1+4KXmJdD$7U%s8b2>jlq)H&45hShir1DDjOEWqtTK?B^_xyjq%4?u7H*0NZST zV)>8@t&~*<*R`9cYUQK-BCsTQz5E|m-Op5ln2(s3_Kie#<yDJ|PWTJ2>MFxoauA)* zLSF}-((Rk){(S?z(lR&(-dwBqwUhs_tWT+b`@Uptnlv(A;v&xaWWt)we6N+V?u0NM z#yhXY;8f5&{=xl~^r~-2y6xu`Q8px6RrR<aLxTGE`Kuy$zCv_xndcvaW`f+uq#w}{ zO^_~QB&AAfsM%ll!)rr#^I#w{RQkks1h2G-H9zKhD$AI<lX4i3LZc(Cqrr<?ovd8p zcFnlH6;0_>cObxsGXgIsal_Bl2J_=tc7TCC<^AJV-UV{(Yn#lEMe00d)IA`)@RhJ7 z@2so*P*;kd?H?A2!;;KiQ(^@4`hmJPtDEfP+wKQLR-nl`d-seh_5!ipq%;MRDioeI znF%O1gwD{BzwORAIDU(rA9VFLBp*)LIV~gg{b1GfXMuI?+i2g9l7V4M2$;geRf4mp zMnhYuM32CU=@tQ^!l`9EKSgFjhC=A#$KucfT`=O9BKWit66NZ&%6|p~eoLU*zU|w5 z?a?I$I7qYN$5^5n-*k|0>3mn&poLQf9kZ;A#aExpL$e3oGB^JDi>kC~hNG&&T8buz zC^>|y*(@Jk;|+mExX7S9Hej?;0`}TO5v5!MX-j53El>FtH$i}P@biH^^B>rSH`uAO zk9sVi0u2-_Vs~Uh5z1Za480S=S6`H!__tl0-Sjm*BtW|+(NSk=?jANXCwk6gHMOMh zr<jZ$KlYwqSus~%RE|zoEHkZ@qgs?6)J(SHZe_(^sgrT@aGyN>;p@0#1zP=RVI}=* zHvVvhqRv;+Sy1n6Eaqo)T-lJ*gVE(%H6>5X#EFx;-0QDR!~$vsg62#Nr57F^#y<mh z+Q-(*;!dxUBrucb`(?(a1v+r<ue&VZ(C?qQqjUD7RC2!T{@%hZ<-(u+v&cs;yvZrh z#^AT744-m6G!~@EVAXv=8Fr!npnj4)?(?Aae9f_J*Z1S&<J_|gw(07BSXYRUx2Ijs z;4}ERYl<+DG^4SpNd#*b*F!Ao-JjB8F#ee!EzinK1IcG&L$rGY@G5U8?O$|nHUMP~ zsq)_vUU;V$f-^z_p*rS^g6V6T10c<;k}E&B`SAWFAN8`sz2&FdYcx*HZ5Db8%~jPz zuN?ob7W#5u>3vGZnY6NI-)h?*5$xKBJzlGXpPBS#TG&{S=Uh84r&PuJlv0#G?-9h+ zw=?}QTq26Xb9q)xDxDIrU+)~SrngBmfa|F|UgghPGhoH_qkN*^ceL2gy3W*Lw#@ZE ze?&~UtgvRO9OUGo<#_@5t_i$2NW1ro-`*OjVR7Z9#WeW!b=@8Vga%6?J#GRN3ysSA ziwnF@plO5ZLqh9uVOltx=$s!t$<-_K;5Gnu<mCEsQf1>ZVUMw5JH$bG-)JMh{K6*> z%n3;y6I&?(Dstp6bZ!>J;#tN566-BexdtczWfw}7XG1t?yX+-0f*e}gw10d^XW@lp zXE@ym7v?u@qu^+b3=UD&JUOhpDOLwUNHLW?n&nUn+c~90bo(t<z4&tnYvuo!X(>z8 zY<ksZAL_=sQKN_}Xj=RjsMO$}QgF9oTa-Ul85D)|!CZ}eE~bvNuP=WPQoRBL{!Y=| z>8ZvF9}3m$01d3TH=k;F`c7ieYBdatY!@TFCev^ydA85p!5uR2$}do<_5IK7Nq8M} z81L5e<t0ngQ-fVPt331%gKEqeq@L&Ix4QNQYgj`*`B{W?y>r7i_lc=S_oa3ZOU_@Z z8j?kmod!|#NxBPA>yTk{iph&VBCBL`CoHuHrC3Pa>Y)AtYiz{BK@x#i{Cy>X--n5; zgx8;8=tCyy-x`%9#(ICIGtOq{pXLEIX{a#YQkhNlc8DScM3A}SQdS!_w3yj?&CAvg z|FG0`kTLE48d4)m%JX-z_ti!#z8E;T|Bh>fxuF-ilH<)`^D+p|!HZcK*o3bC!-@@{ zNfA12vd{fYb9U*<(_tf%*ska@!tL2@<@Ph_xBg%Hs3PHpQ9P3rBllknj+nX)fu7Q- zHG+z$v2&pj_CM#%q(S$}=A0y&n@)w&#LF5}8!MfrY(9r^nvf4hzk(3$+Z#4?6rVuN z>-7D#zf1+@<?);tgBxeWQR=0BE~}VbgO2##C4cB>eswz*i%gpr%#nBcgK(|gz$i`6 zZ1JUs##)5r{7xr9h{|bhS;hNcIKk-BQv#O&##x#elzN$8`kSU{ugc=~+H9K_iKx=X zqG_ThUsRX`&3?EvC=U<SJ!W|u82H)WoVaZxAjEq-_^TM0Px`TqqCgEnsaOS39lzvR z^VVwB!O1X&s&HUcoVQE*AaasGpD;kn-A&)_amLfU2*au6V*{3q>!0bFe?3<!UeHo3 z)(Jnti<f2MoLu2}Fsl0Frdi435vx@^b8c?wXypb<X%ooP?6R;DrxgCwF&#hg;>;dm z{=mMS;je=M)TY38WGey{4^6N%-|Az^`)`#^5lwnh5hmyDN3PWVW;r(Q<zunmp2^)G zxqWLFShS9(dRO)mi=B4FV1cRjd897xSK7_&n+LiNcJnN}f8-~ni<vLtzB><jj2v=W zZ~XG=?`40FK04P|@r>a&i?6zP$SEW{7je2Iy17?>b{T>@@egbA%GqRd`<Y~}Slu5B zUn{ebv!S=pPIJO~Cgyu<3WvJ@?p@zU=O-W0lCyk<?-zpDcc9&L<PZ=tO`fR6S;@ow zAC@V7&AVz4%MUK}+@X;fXM4&!ghrk3<HdT4)i<mk3G{eXgmdbA+4um^yXnwm%(LdB zN>A)<iJ`$SJ{_&&1Tf<8g&5n~?T2e1OqZ7C1U@y3&MR;iAU5Dd>icUqB-Cm1VaAD& z@n?}=1qBaRxY?0e;ND_<=4O`mkP(zPvT$Q8!Hm2SK@imtXsX@oMzUw(np86=ai!1n z8`g;<ZFvDO6*CJO#{EP$Y2sv<4qgN2rxAer#<=tu9{r@3UOUC^3Vv7`=iX6viO+UE zWB6;A==4<6aKh^8D{jqq{)gtDR)NBc@GO+o_@>Gg(;F28tyb6zbZoL*-%TM0>E>g{ z1JIc+G(j}Ly{Ue(P0~h2gO8_*mHjKoyO`@vXM8LJT4{9BYPGS#d#F7PtGYZSvQJD~ zHt8oLbMsIICxs{gDcA;XFf+=XBw^$BMb__MER^ALpZM7JrmXJUvzFM~{l<Do7YR0L zdJX0MTDzO>BC*07NAGz)B}XcJWeY~+UL5Z>EMjm{9i_(rp_uh_?3f;Nde2Du=M)E| zdCdUNBO0_#M=ZzmYi`~A4=9;g07>)H%n?I8O#+4Zx;Wc3pKHHEoapy5lFcX!9|}Nz zE67Ny$b+a^iLrqCdE2EY?gzwvUp07Ii}v`CTyc0o{NP}p16)E$%w~r+IxR$e><o8H zDGAmV0|<*mWmdSN5A9gk56XyTvQJIcdO?f0z5lS7dA%0e>^3Q9K$^;LEHZ0k%W1=x zpC_h=4P3&c%*4-wPOs7SoIKoPdj)gvnr1#)v^J#LHWmoyit5}<e5PVKcx;Kh`9ts8 z4JL5J(9L`^{3z^X(3oLdu1~ux{qTUaoC>+HzP6OIB^nyUU*-o;xvVpPX+UXGU9v<z zz15Z(Y9Ft`{W`GjRR!$Z2SmtCYE9(NXOg`nUP~WS+|S+Y1^?Ri9j%=KN8SeLc<Za5 zfu6qqWtG|vS-r>MU)AmA>!%fW^ysip&bK+$q$MHb%K*hzx*b_(gLvtz=+b6xkJDF9 zWIz6d^6TKsC@?2WNdQwHic)zizbhQWk-SWNCWI7$!Uo>D@IY%jb4YcN(`r5z)m^@$ zp5{q>z>*#zcQ)L&Vy%{@T)sHpZId`80AJ!DPhKe}ngYpHdT$u`mM|k~aBLx?xr=kG zKd`0`r;X<NsC%szmK;qS(H|A3Q;-gLZeSx65U9jN1bOw&B0}Q=T%2W={$VA}(j)^Z zptS^Zaw(qRjgi1!2j8OA(t+d2KM&h_`o)&Z8OoXVV_2lSFppH-w^3FIZ4!C=)@CMt z0Z39v(aCWuK?SVyGzv^7Wq$U?6l!qhedv&N@yB^P?{(TE7FH3$U#W@Z!iTsR!pDdy zaaWpH4_}vHi6uIKDeQH_kkCGHFUs&CJ0dJuQ!Sv;&DS~?^&$Pgu_N%Epje7AdYkGo zjC^qm@U8(X|J7)(89#5M7H3%#W_<AKb3J>S@=<il=3~)6i`I9UH4x`ghsHhY+?^9G zM*E@)Za>%{-xB<KAYrSc1Qgl!(w6zr)b@qZdZGR_I~_J+TB$`+?r{3LZ)8;x*}i2S z=b6){w`r=QH?T~7w_orIvY`13jBOI@p@|Ak84NEXavak^XKJi1N^bl#c_MtM`I%Sq z?)M_xKRwKR^fa<fuL8-?LvI)BW#N2fD&p1B(7ed-G2VmZ;ZyYEV8*pGZD?{85sT9` z^{~owozmAT>xraU%xI21@&uPXG$*=|iQuRT!Qd5Qj~Ur;F9_=XeIUUI`U5BK>ZjfG z(kZw)#emVjLU>VXXUUZtRlYqUb^AuemJHb&QyX#dBx=!mc(`G?x5%dl&Tj(m#&va! z<KKYq{;*vxEW&Nz>p9exQ`g#)pk0vtv@2WJB_Nd9l;WCoF%lvaPV@DiujSNi?hJO_ zhb%iY|D%O;`V;apzE36DAm>@;C|!KrdLvOqXaA_Q>em<4$5uB^O~S}JU@Nl4456z~ z`opDiFWM7A+u;*H@Ka)r<TU6DbE(M>m{}$dT080&6$u2T(=vCp`|)+J#jQR^wrnws zQTmnMAJfmw%klh9(s9!x{Q5E!P*CnHt|w1u8Kg=G=P72s0^YltwPQN>dr_2W!|VyG zC^K`rW{u-@s>c{M3rW#EqG?!KNtq5ts1LrlCT(DV>`(8`<_bATlkRnO6|hdC%)c!< z(et1?%1TyxS;J3ex_S=+!(U$Yv>CXy>GY;6Y!Uzb8ZO-vf`j5hf9-f0M3JU{W*2vY z5~UnwHnv{kCa<O)QaI2p2-xfhABV4h2hm<OEBIDzv^zATw?_*QaM#=2=gA@Y`^Gg1 z2{m_9MSgb5XJ=pTxzuW>f_B!}7oNUvYUIyc#Mi+3JCm=h(=f?h+S=BfJUdIp$2ujZ zpva`k9?Es@c#0uxM+5|lKTD81n`x`cZz5ZKYv@0QUBa@IY7P!EMwemOf?T@I_z<Sc zjTR^LL4h9{$E>!$Vx=B<_?J1mbbq~8xrQM*M2~F<`dn${HXtN|s_SS%y9JLJu3*ok z(hrzFiBVSr(mg?m%<ueKQZ7q@lucQKbTxqyArQc4J=d%fwEhv5PAteFDibX;gBu(3 zd{Gg+D&AR9*HjdozBHSf{YiNVp!L-qswQ4T=PmV90J=)Zh>!<q{qV!yfTaQRLI6uC z&vad|GylYCnKdge6EUU*2pN32=AGsia$SUW`Ua#X|Cw=FklNQAYTvTfDp=s=x?;Z` zLIzi$G|_od#$WeRbFSEuC9|KKy^ZFieoavEOoNNfZN{f!yYPUS&Mzj~3(9Q~oXq_2 zAC`sosw^)qfeV(HOb)C7ZaJ3nDaZ<GXlLac06)vHk8cb}Dvo^QRz$?MTKq)(W+WJU z=fsCQM3?bG$BB^VN=jZEDgRTx^0@Kb#ktf{arC%Q`CcBjZC1BY#fKq7lPq?t@6zf5 z)#X;xvr%1C7VDuUet3HBtWktTkJ~+ub*u_i3v}*f)euYe#!yc>*0H}_y{vg+ta-c; z34n;XNc(C^C=L*&fn^>EaCN=-WeVpUGiz|4Ul0gPD52}Z?yIsH@xynY8^0+X@gmWL zQRNGvRq>l5ss&x;TmNCjwMY8_(y%G1y)qxnW)P6y5?S#NzRZ8jI3~NGU=-YCBHb_p zjxO%S9VnyPWKDD8u~vF$=QXUVr%Sc1ssDJ29X9!0V{}jDR#j-JcUm#57J6KKd``%; zaA(kh;yiP{i4wZszrsl!@}i9W^tV)S`tHIs=+kr69cLY`pw?^D{N)I_iO?fTchc;< zq_y(WzY7jDQL~-%1bM-yv(+6FtgD=g`dqZ;TK&I^5#|Z?(1&|X5(QQMkE8Oi=w9T6 zVim0J)JZYG43VXJb3*t1eD%ADw+2rd^};S;`NMW2=8u(Lo)%!@*jx5LWVL8(HYAQE z(iuDR)B#xYU#{V_Etho-|3kB(&6~#Qt>j5pUPW$=ImW+Rg-8CND*qkW`fSsSA8+^{ zgoP{JHXlZqV;5{by`bx9uexQ~cO#tlTkcM_D8jAyS@+uzGqG0FSWC4^fHfmc@W)wz z_2%}S|C7FOSwJjhH~yFhkJ`Q12N6j$gZK^0hM9@DCzq9s|C${)Id<4k)$@PX6*h*a zSDGEIkoXEWB6&4q2wB#bD;gn`Bh2Kf8>3mD<T1jPm_E<J&I)~N@EM#e<&S7Dj`%}; z?kD(ra>E)yT|&JylyTLRQVm{}X&8G$Dp9lRn#onUgdsXNO6TNgmA+>Z1wh$aQUX7Z z!>$g{r-Kf$>2K#B>su8a*j}UPXgS0PA4zSM@Mc&!oe^D|N`$m{SOxOD=-!6<iwc}P z=TEfT39`ESfwV&U-*fNL&?g-sN-n!wO_t&L<*V=(F#o{7(YFp+G?1rsXgA-=n{YTJ zcfc?=eIBBQ(!JRJ_=H)0IV=ymb1dL4ua2kS!+=_%QE`dC`hK97c~aBrY0Zvh&66%O zosg?~^SP^eM58}#4b8*0OR@5WcWKs9J1$50j~PS&cq0zAH^4{~2H>=B(OlO$n_+rX za9;{zxLtb5n~slG$L>~V<pZo1BiFDyJ2hQK$XC#4cI5Nt-2=G8|FG8Hu1{zZyN9{) z^vZ1XQNGg_G%Q-_nc6I%LIA#Ee=xGd1`0l~+~0qf6-i=~B^*lnq3INe*h#M?Ctc(L zsa4I_o|xjC;Gor+rxd=?FY(#t01Z1`p`@^+wLLf>okT(6pR09Q#*P+1p91;oFd8ps zpHo01QuNNHLOTD5n_j%o^2bBi_YU%qh4aW5b;L}O3TeOads*-eg1`TY<s6oFJ+{hG zqvaBV2^cceEul|XRW>D7HxX=O&i@7ay4cjE&ecP%xCxI5nDq12_uQ!(&E2T78<VtF z+{*JrRcdM=5#@d&=h9r8wwYdU;ut;}&E(Q?+ug7RcU{4vWI#ch2%4@0gy+WLEt%l` zl7F)0rvNHU!_{t=>!NZOi0X(&9-)^fLQ`8h@bp*Lk_n?{c*y?UT)uYV*M^x8_VMvv z?VraqL%b`XtMibuiAMTv`lNba>LxOirG8P?>Smh{2M;SrE99LS-Uua7st8PqW9tT_ zn@c)^38WO)|J;CyP)1(HoEY2527L0R3h6CNT9^yx#}Eo6yf?~V(>KBF{%usPP(BCu zyRqbx1MCmS@q_$Hu#v*$UCHxvNepPN{}Lbl^&?6S2KnH}{s!9P`&^Ex2W9>u11_~= z7MUVvmLBMUUs<YZ^L@eC<hNU^b+jHy%n~%<cB#+2-ZxB!Xn$=!gr+8Z^I+M+(BV5d zEl`);M|XALv<+qqnPe75oV4H<d2bR8VLP+uI60No#B-4Nb%Olv^X4j|^EOJ_r*;9{ zsNzS->CY8uNF}tWgCnLp1axMdisY3fXlsf^7p$I9nfTx`+D!@XLP-8$IdK^Z$D(); zgd-@XO}9VNb6TI9vah?C3FgFL^nk>@>#}RpRGTYZOGG4QCd#dAWt=4BTSwYl5Z}6M ziVR)S&$KzSDQoi;69pyYKdcp(@4=OGrG@R_=G)vEM~%V8#zVAAKu`ODO5Aga+UCLj zVk+PvY*s1yRtJsb8T3Ee&;*o+Y=)Noi~^xde*8+ts=r>G@DvfS_Fe9lZJWW*>aIi2 zpgn(CG~xHu<vFTel~dcJF>rz^7pRi^pvcU}fT{yyM?!^xhE|C)MfbbWEN_b+dj($7 zzI^XwGNyQjo-G<AZdFnAPm;wfwj+$#t*C$ccXRQUaK_W-WAeEI)z5-nJ^b6jW(%+w zxNelEZ+^xxi={R`z$)-b^gPtFYd^;*-p1`|ikEH&V{=g}yrvEBiyimUTPLh|(f^|3 z!g+lb6esne%+F)s)Z1y^>riEmPq;gblJw&ZtUyZfUK1I!Nm3>fah4$KtTla<Zqlax zG-buJZxixzP-7|oNkZyLhzv4kV=N}ucoi7~nA8-4p`_$}Ynj-5^`Ki%gy*I~UqYP~ zfOD&*cbPFR>zn$%yEUAX*4?@^fd(v`nIFw(8CCjaZ7O|T<wa1&_=RPEvDX|w2ZV|P z4Rp2u;YADyQu!m#&$7g2rR;>awYYwlcqEj;PBgxi<NHaOi?yWD0EicZB9J(wNmGR( zQ)H}vW&Fb$rfS#IB)XEC%L$n_uYa6K|9C7)3jAF$xWbHr>L~NLSrO#DEH<zo8erQN zvsrd5zX^@Q3FHw6+}3(d{Mn|s>T}ZTrHVT*7@bX4+Ch9-C7;pm=gV3N7W}JE58ONJ z-)b}Rt$tpDp75#JKk?0V%)!lIR^yIC?+45h$c_)X$1MWzhtyJG*+&n^)&!?!PW^3c zZ2p2oe5`OYyP&!(i6wSdzlG}wpWN%u?AtkI(y1}{#qWAN$+;5%U8UaCruCduEy-GM z%7^AqOwiOtDYa?0R4*>NXOA=L`1e07^H&uH{&L&TRq}H+O2d*EJR`G5*OpzP^BVx1 zYJ$V<0NSRIBv}tsLk+WFjNfu#9~p=_B(g$qE-B;Xz}(RQRtShH%?-a4d9Ko)bC;{M ziY@s3TR`7zHc`xfrWehbRBtCJq<o(+u1(<zy{glVuRX>Wo0zHt>!{%AYs(lu?t-}A z>4XD1oUB%e(&k`zhi;Oz)uC22(4V2S^tsaFqv2yR%=#XO5*{kqh2j2(SXud}lr$ml zqmk)Jnd7oiy(CCG$OwxNj=ED;=WdZKvmd)5kb7$Y$etQH>Ipu<QDy*i{nc^lTUBov zm!T&O9Hda>rRHcHRR$!elKie`wg?{!GN&#}Y8iUrh5()LxjO3o{lExR+SQ^f*44vm zIR>w74;<1cnr=E3I%>SXzW!_h-kNwIL^=Ani~XLZLDUO$v1pW|FwgKjDXT^rn5voe z$jSrq3ti#Ua%lfKZCl9}=h-|k5h=c3fg_f?^{K~RFxI|WF*8}m#1XpUA65s3wutK> zAXilk)Pch%Powiz78j^bXDQ8;1CBM`j;}tY5iWxF`%&s~t%}r=6tkatc^OVX^>;DH zZyHiizxq^e-$|hqBxzfx{Ub1e!w#Xx0GKy6l=4ASzBLkfZTd{n6|&8JPr8-cMc$S( zhdjSLZ$;ZbIfsn__kFc!HUDJAp|FrWuCxLHw*P>#$Bq{b9=n9y+-v>!92Ib9<NW#x zf?%5L@Y(FgaN2^8*JJXsB!iH#rHK6zar}_=dxMJf2C1rEv1t0_*Oa8-8}_D*)lg<F zU?0s2-!Ofb?hja%erhjxKEf&e-LwgS&vYJR3FB|v*Id^epexj>2}H_^?z<X9%s;0{ zWox>=%qA9Ru+8{VE&Uiven+_KkLH8R8g&K&Wu3ulalDY{a8s}qba7V&Ik%o9sXE)> z_Y|?6>n}>}k;1(awf+WV+utj@E51c_%ip-3a`j}|U7a`ImulK`z{;0`Al_J?qhHxg z`RR1Mjdm`y;%*C(axFE1l823KX<|F-APM@y5{Jqis%jZx4)3QKJ(p8vo2%Hbix6X- zf%Em?WDKKiZJHb-GvCCxbX!4zWir7=#Id<_5I%rZBp{1Accv5&9jBCgvOg@ZvYh`C zO=aSelfq=KZb+j#UZSMYg;IR(%sK8>o6>^z#v?KZ+_kt1Tkfe>eOp>qS*sECsY`xN zeP$rUbpmtc23mj4U~1>Dx-*A2bKia0{7epM+B~sH6HbRV0($hN3MDzqjxgvv_HiX% zVH^;RDf{$=EBRiRnP41aS%oCM9tdC4*Caw|Pq3X4#N&_Gt`rfyDax}kN#wX0V7?L& zHaZGs52U22Zf_rUUzY76rL1fwGZWr|gp-+6t{^?+Tsc|4h!1dH>MZS>)#06)8WVl- z-^vxo|C>ob{8RFYGM=uwfXjzwYTN?xQX{)Qqn?hU!nH5zN{ep{=f3yzL*3_7+)ddd zLl_P^xHH9Bm1?S8f^H46Ku55EJFvkNcY_Wo)Zy{(*K|zdB2&k?Nj6I|Gj0R*>)44_ z4MwToY-u8;D2kCv0*&v;Jal$`eX?0X9A8q6`^Q_`+Aa?zlH>?8tYqkkF=*%}dYUOC ze6KUlAiu|FvzmA+{i0=q^65KIGg2)2@>{?u4K$q0t?nU>zf1hTCBI-O7GNq2R%QPR z%MW=GGCK>aN+Ck=PyR*B#TyRN@hCZ4-0(`=Uou~H&HG7irW{MV&4q}yX8kt9XAd%Z zkwDelY_>FTd|-S=b@Gcey6w?D*zdJ@O_$9^C7$N$%HX_%^c!(NK}_$o=9^Mhq?fd3 zH|7aoSR?OxI~_fq(MSa0y&+(|`EYug=>0Q%dEQS)9y3<m5KiRecirWLt%sGjZq*P3 zK_pxs-7C=0Yj*AB8-}Iao9#bjUlo#;DLaQj0iv@U>h+mOtMHwpYo(kgdycn5xr()F zif8&D)ZI+aMCh#E_KeJI;_y@yHU`m%vF1`Lp8T<rWp&gJzK#j+>Sj?xtmd;vH0V30 zs(TR`4a2({wNj_(#?-Ff|NM}<!j`;m+ms>qnBoJY^T9*Z-P~x$WAs-U<{;;4b)xP& z@1I}FHIPn37^_d$=YQ7&?wG@?mI3KQ->%E%tc{eoX@~oSpHY?knG15eH!dE^w>$9X zJsY17RW13{Dt&|I+<lL(oDgPqvlGx?dD45guILaM<q0m2YWZEs*bSmg2NFtBZKwV= zIRr-C*c{pgC8__tx#DhYwZdZAJAUJvE+%$K)&D+76q$pNdMLw!j9(p6Fc_Gs2d{id zb3d0vg!O3z&iuooL3snEIrpWi8!Lo^k6e#C$@Z@~aEjcAYXb_<sz3HDz8wU<e6yr` z3<3m608xMkJ5DbfQ>38Wf$f;n!|}aKP^A8>FZe7Ir9P`;KFi|DufO*rAUKC{Q*4Y8 z0tD(37b%IL#+j=4p%OphA9Y*Sx!nVw&F#|}(VC22urDF3LAD6?9%qH2?+4^k40Y5{ zX6;q*w;P$=+$|gv(p#&?Az`5#4a1eTqy=y6VNnp%#w(dXvRqeUfhMT=;oW%4Pp8GQ zcyI9r9*s>?qjTGp7c<je@>8~^_H}&(66?8e0Bf%(74LNG=+4#Vx~x2|U6`1saLV-$ z%SZE<(+LX|Wf7Hi3U(8_PgekB?C3M1IVE$&&ir<-FS9JF8Fc=KLQBn(BxrzH^rYqz zr1niYcp@{(IR<rUrp~sPf`Y5wP0(Zx<7u43Z>;yVQ{71KV(qcX-X~W58kLB#8u(UZ zMZL+IrVw(F|9~=H$^Tr`ihR0LJyc#1IZ45Xx=BO;nVt5w$h-J%0yPQ$<vV{p(482| z_7`D}cSZaubp;qZNQsy~{Njq516x#czDGU%lN6$LY7jhHL`3c1lrH?7(QXiAcXc5- zjt6Nzs<WH@0Vx(myyk2z0l;L{#CyVoC(v8p%ups4V$46R9qBgM;oHX#E#AGYnxBpp zfqVzsU6K3V=`^V+sdrlk5LyI)!{PQIW<T=ZKYj?Su-93oKHhxv8j<|yuh)LAYa-kp z!sIvfmfokNYTz-{oLv*=sd6DpUZ8E;G&kVhrTD*8V09;>#!UMDK<DuVGJy@Nh6YBD zUgI&;;<aAnHC4SI=?%FQE9T+6pChY2A<)sHjFB={HDc`g+v_Rv#^?N(f$`byW?!rf z%>mf)3{&X&5rnpB&FkX0wAn|_vE>mfDB%7YSk2FQC6~|Wi`y====<71*ftn(7IWP_ z5oC8A4DQAjlD0s7Gk`3s1%E+m&i>+y1K_!_7#TLxpLMn)8~?D#v41fcYe<TwjyE%k z&Q*oDIRojn(-#4!e_R)Jdd!LGc&OJ8B-s3?PP5YrN<|LfgTJ;6rP-1>Hx_Ry>h|t6 z6Fa1l#MgJO-N6FEc3p#i#H3U$O68J6Re}RAMgrjxsNf>M8&&$~sLC$L#}Gs;YUpTa zn*L%97iD?o+UxwR>UqJV7diYgSw8rfJXBdU^Jd#2koT$0)Avntgp+zN!HG<VRnuna z7M{5l>ZF<)I5>P4_qSYYFOtcJYReI)QFrrKaQ{8l!>wSwgyA9M?hPI8%nJWuJ-i7$ zg7${6eY$mY9&c#lIq5pJT1pAHI0jw20MW(^kq$P*@sNG-&Ksw|3O0w}+GWz&_AJ@6 zxrh!TKet=+593vzL+%c?JJaNoOHx?xLq5Yed4%ZSCEpbo7NPL}(;hJN9!oG98l#ge z8b2ytq7UR}B>lR(+Wy8EK^oqHZ|{Cvx};Do7kkVzcaxUqMJR4{;`FD31GD&uaHItJ zd|=6e!`mtQ0_ryokhX6Ph9!36yj>|Bwbu>;66Zv<8x2p^JVWUAq@z3si$4^5+vz$C z1`H_#!h86ZXp9i=GQ0kas}{a*)LrIZk%~A(fns*eu-!d_gC$3#hJ;Q$CRKWJQd)!` z8j|=9rtx{3m4;TQ-1=m;l(6%RmiH)IcqM|?T<icj*<cP$4$+fYS#;B7S^0+>CJXZu zxRLf)IK5s*;P)%x2S5O<3hsHV{PZ;>xCIK&n*7p8F}rA#`i29&oB)^=_q%ca)Z4(A z&#a{LaLwM*=j+VX@lLMZU4yk{UK*u2+ppW5Z7}s%DcdLLGf#F1-^m1Rg4=my*gvfO zvXu&KZ%}Khg;_sZ5wBnFf=yKi$nwepK4tMgtPn<0qi9Vo_lu_b{9%Ys_$M*|<(b?? zl$B*u{LOf7ej*~kfg?6}!mQ%$YAB)GX>zrKjdEbD<GgrbnEqeC3RwX2k(qqQZ$3y8 zGy-Ti1#{|HfLlmlhwLk5N~1-O1Z3M&@8b1`I4@WYKY72u%f)hYN?)Z<N|YSSW93^L z+JC!*Eq2cek9Pdf#!GIU6v%Q#*)1R)nZoV|xpSB-0omjJ03|8)<S6GJ0>u?RGW8>$ zK({_wlvuF8C+PK0aNuGmdnv?Y{%?3e$sbf5tJ8vUd9kHR_fK9LV2Od_0AfA~Zhx#W zLbAzZ&9_{p<}xq%-(_MNUh&mG$QA3earqXO7+V2uCT75V@v6{Wwn!Vtcr%bIpPJg4 zp8%1RJ~PxNYhO0%1Gc59t?h|HX>i5((bx$t7i7xp^R|QXO3o7>{XWV$%dVSIVA7f^ zO6+H%GSwLGNB81jvFs*~b}*qx*W#>sH+_~@o^yeaStl@rQP%pFjsTN;Spk_8y!qP0 z-(l1JgO}jO>Oguw>I3NfkT=-P9vke&uw$tDpRi7#K*%Uz0mfNOD9o=wm?`X7-Dd?; zhki;DE;HR3;=(^mrUj}a_o%b$kkG0n2XD=4&K3|i;~tZR?e}1@8q%E$NC%xjqg20y zhFnrHgwK;h>q-8|tQpy>fOmmrETI%4fAfAUTvt55YNTaCo$dn^9H-dO%l^$T>|#Ju z3u&p2Y3ye-(!-#za`42j45-Ysa|{S^$N`quj?QWymJLjOi}%|99?aa~dRf8mM!?1x z>?r<f?GQ2<3^Z&UskXyNZ;x4xa$-S>AU>AT4hY<_h3N5sTli!i{W>&r=cQ9V(4_}H z8BA<ijw64a7}U$?+h+vBB(1PL&-=zaJ6UlhzFE2=ib5-ZUs{MTQ^r2jS{pq?>eR@P z>_jGSIKZO89XcL?w0DHI&$LCB2Fs>*aYE^hmhRK1Q(Xu{Mqk6+MNOu<YYSv%X!hTx z6D#KeQZbgtvUmxS5$%Os%X~&P8*Aj|NWu3pdgI<iXm+j0ZC+<<j;{Hw@@rvTZrMa* zRR$khM#4|^ec*j9tFvN)CCCHF`nOt>VtVE7R?qEqCE-@F>-1A@t6SK%`8&runl2y@ zLGcG}*K8`<V<Z%D<JrBj2=@MP@eJ0tuw@9It!S31xulu`+^3>VNMu0gbP!LusY4p0 ze<~>Vk*qWmDW0xa-g$9T-1YJ4@3lDdI-#ip2(h<u3N=z4Gz{$ms_&#y%iLn%Ouc}4 zrPu%;TW#>gO+FTITV+59<frZ3K~I)^-G0my?9VpyML?UHqT4L2rcgHYNGHQj--)u5 z55+Y-3o6E7%s>MrDhwWybW1-sH@eUUbR8z^e3dU8{+8gKF9~h1W3U|Gj<lRLMZL%C ze^?xh#0V2;H#lw;gfuP82l_F6rVo0kLbyD@chAwT3d`I@5+F|H+a*FGw)T@#$dAJh zw%(;lS1uU3X@uk%r~^g*AD7pZf1tGHT!I{aDlNn>+BxuixD<2k2x(@X_NQ)tYihhD z+MTkfy|)h`xokRvMy|xafgKR)+nH_iPwm08VQ-M;_aaE;je=th1WD^AK11=Ww_wZk z%}dgU68HBrWAR`HDVj68xACLb-f1Ud*ImW)PX(+RWj6?z)PuBuDCG;nyvN_Vag8_O z+wLP9+$Xe<DW&zMsj>zmr7wa9nt(g09ED--<IUIr9N5To<3vgxz(6WR!51N$EE5n3 zBz%*gN0TZ@XFBPmsiI*JC#cfy)+#pOr5DJop+7U*t2O5Gn{3r^4bZP5L?*-Gy#>Y{ zPi-RmKJtDoN)eNga^<;GP)Q4B<s<U(1-6yY+Qk(W{}TpRe&vj6C5cA?bEQFG<o%Xr zjDGaw;x)tJlULPdoLK<-!}n8gwcp>lJh9ghe+CTzw@)c7HVsYTWshr>yrdd3f2>T! ztahetW;=Z_{SD}%I(!AE!b}$kAT&PT`L~#g(6F}7D{iZFCR+KZ;_jPi6W7{gWTmIs zg85}i(}RFzFgyG#?-S_00N+d%7Li63MkXXZ<S3hesb68ZTKrQSHC{HtUk@~Sb9{E~ zG9WCCgCo_POO3g|q<ZEL-#vMGAn-uInOQ559gt%w9RA`i(glKWpr-rCYKBvVPFJQ1 zOJrjqzC^%AT1)@>72k3R<P(siubvaz%W}LEeA*j21-%VOxGY~A0=irj*q-c<k3T!z zq3Z6Tm)YcPV0Ml<)6_`ha9!@5Jx1RW;FNTC0&SfB0{SfvSKV?Fh8`u0LUZGzGNrrQ zc(?#jQF_jBPJwU_XHJh5nOVvJ%gXvm@(>@?!JQnPW^=nVSKc=qUq1F@zsqCwhk`wY zl!rBcU;0DXJoDRZD|x!VLRUpKjVugT*DkIfJd*_E|4M=-^|Ft*z~>_Y0eXR_m)@FO zK&!{5#Hs4&C>=nXB@$$=W|DW|Bd8a7{zS&-@7-+Lk|OlV=~f%30%!n?RdSy^-3pxS zLxtu+mu2RVqEFA!^DOMHRBuhxRPdF6o}}C-EEsdF5^<NJWAkH@85^EWarENlWw|il zvKk(wl|Y=R=M_sQFc)(aWbyK*>_i%-sBid}8{6k;9<!5b)we}>t66ZltX}U%CI~2t zw)ZKfW#UnTG!ztEHbM8!u|fU(d3;njZ;zjc{|$E!2WT?cYZrF}8}cF>gJ>Wh?dP82 zSna&IfT@DKgau-f2U%{hkJ{eh&C=W$ssA<b3Gt4ae#<NwYf|})={MEsDj~Y&YK21W zp1PG%;)0!Qg@)|S6f&74q~W4ir+@NgmgS@0c(cD2ItNwbJo{W7%Ln@2r-~_=lgoT+ zLpPnItz>DQjg8bF@%Xmj25w*rUz{cf1;bDZGsV-w1H~B&af$<E3g88^nJCD898TXk z@3>o=F3^BMEq-*k`25lL4AnPE14&|ix>0?am%ndy{@~6EdO<o~t}Sei-8G=TXG|yI zZLnA-B*(kIvsWws&jHwBL7xX`H793<7dB=5&CtuPW-k=>TIxyp?>W(7cQIRuvfr;y zT5yh~ZbPQz7r%JD6>v`cY_2F)UYN0}sPAJVEhp6dUVxG8x>N92rJv+c!ZG+bzPb@1 z`hFTirM;ghaQs?JcJDDR^Q-LVq^v-ED8HEBeuu6n3|~~v+$Wo_r5H@_F?X_$uo^N6 z=D?}rJ*r7KCcp#)jLXP(v&{ql@H#-(pteo0R;lNS7f$A^Qm(gw<>8(^8QTs!2K<0+ zIlmVq1q{<Ps&@X?_uqAvOv5OXV|ysQur{;FogYG`|0~P@=FKnx{;Z>4aw$8-h4=T& z5k!kqxgJe;NHz3LCOqhmC8%o2gKjbHe|>337Mug$Ej)fVBG|*J>k%)3<uL0Z-2L0e z@^J3)$Wu0eKY4*9*j8U8@^rCf#~1|wmbSJl{l4LF-*C<YSZfj0J3p)`92@P3*p3m* z!cG!Um<NuyEdQ|`7}u!QGX?T0c!_9?1t=_YlL^@G!_w4SzMyMX6QiESCY9aWer?WG z+4VB80e)n<@vRFR=QG|g&uDQ<EcB5lCi~&l=BHzJjC5kz{q5nY{_Ns&&6BzF9|OB- z;wyR!x{O$)YWVN9@qG#bl;`6=td}1BT^Muat@!wf;i(6ovP`^O98o@>n%-xnINB?! zw}^|BzV=@$=(x;dSGecIAWpSROx`e_d_VdwhQ<8(5MPw{kG3@}J8<1E$oT=1#ze}W z)W%POj@IBc0$988y^u-BaX^6n$MpW%PfVdquL9mNq?a#h%!t5`nJ-(Hq|8z#zgYD8 z)2ak@;=3)+Y&bn~vD6$|4COr1xQ-h88E`+|tof@Hh)?`(zMq?@MMkBD65!&OPO1LN zi0mH3`HR03%4qF+izYZP?xVYZ_5por)R;M8$83br%X%?f$%4&-MS?Z*iU&4yqr5;0 z4<M=rA@1O6>XK+S(^||KF)-(V^9T8EHL)=@AF4q)ImU&w;9!SaB4D`SAxcm0r%kU^ zZ*Q<;Pt2YCtE`()ua!|wV)IwPW|{9{plQ!xpA&Yk`oP4Z)mLII+})aT%5YI;!COIe zqf#gR8}ss=vH1OaR~PZp{jTF@!|=9V{?<IbDJL3po&e_Q_XeD|vZTlh7DVw%9U!Qp za4miCW#ug?c{R%MI`7+ohydm+qW8pI<?97Q*%EG``v@CF=*N^fVVA)7dL`YCuYkUt z?@v8B0IF!x?G!m5{vw<Uoq|qB=|<K_tpE{>-P|J7;@g)0Xa7iG-7no;pXfgq#<RmC z#Hy@;?Dp>-s*(Ihy|e<YNTUyGm(`SldJhi`xF=km^Ke`+_y{adJsEpd&}69zs2xNB zFn<=s?aYGnxA!@bj<m$#53C!eSET0l4^?bx&MzUgklMie$?a@UFILbp=B9!AsfmJ- z+z#Uw&lr_M)uyq>2IVW0zl2y{ulIJpP}~AX_Y3q_sSjr%JFHXQEWBy7bV6Uwt>a>X z+o#T8JT&B6XsZzK!VmPzyf!%U2g{SSmUatMn6*2_l{O2c$KG2?^5@N37rwYl!d)m8 zbQ4N$lL6OiBmY@Ft9N&kcD4W5ecOkSwz<))%uih(O<D9T9^n!8(U9laDg()kB<eS> zwM~g`vYI5KhMPo1UDz`cB;PLO44kO`on}oFZ=oQ)-2o>omenM=JYV4;7f~7VaIg&* z+w@T&?6iI&p+~9zuw|zc+MDHWMr~dT40ePqz5tz1z$M1(lkCEb6iK=ZjMHD!QEx6Y zK&2pK{3u<23(srd2Ij0Ma~MwGRMX*+DB21SHv>8#Yxy|KjU=mh-=-mBf^X8gzJ!SZ zc}^>2#Wg?cS!SwyQ>BN)+>_#0nTij)3MsMiXTaxwArfw^#E*Kafq`}ny7vkI0}=Qg zdt-&P&L0O%DcZ~9A_~U7`0FN+DgM=T3-I|SL?YK-n`0#vr+QEJ_Ya_|@+||}3FGy! z`H=?R<}xtzV!Ho_6fu*O+a1a2Yj@VON|nO-D{esr#E(~XN`<t{mA}g@p1z+Gzb6AH ziK!^7cH?6F@AO!FUx5zIFRHlSYrm&j!R0?t8F`k9e`HI;g7HtjjG{?=4;n3QQw*oE zpJpLBc;y(|@>!Hz^zBvYCHeF(#&SYlYAWCwta0OC8oy`Br8OKEd^Nz{PI*KF{<rWy D9WV|S literal 0 HcmV?d00001 From 568bdb39ab08e3ba33f147e1e8dc14faa854b139 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 23 Feb 2021 16:12:05 +0300 Subject: [PATCH 013/222] ref #539 Add credits in readme --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d9d08e2..29d3b48 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,18 @@ The Building or installation instructions see on wiki [page](https://github.com/ Join the development fund and support QuasarApp to help with the development of our projects. -Our patrons list +<a href="https://www.patreon.com/bePatron?u=9304737"><img src="https://img.shields.io/badge/ become a patron-red?&style=for-the-badge&logo=patreon&logoColor=white" height=30 width=180></a> + + + +If you would like to use bitcoins to support us, you can transfer coins to these address. If you want to be included in the patron list, send an e-mail message - QuasarApp@yandex.by +you must send a message signed with address of the bitcoin wallet from which the payment was made. + + + +bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 + +## Our patrons list: ### Silver Membership Patrons: @@ -108,12 +119,6 @@ Our patrons list *** -## Support us -### Support with bitcoin - - - -bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 ## Thanks * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. From 28b1b5142e7684a6d79a5cb62c449205c4c4319a Mon Sep 17 00:00:00 2001 From: Oleg-designer <78071329+Oleg-designer@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:21:37 +0300 Subject: [PATCH 014/222] Update README.md Co-authored-by: Andrei Yankovich <EndrIIMail@gmail.com> --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29d3b48..ed1b5fd 100644 --- a/README.md +++ b/README.md @@ -104,8 +104,8 @@ Join the development fund and support QuasarApp to help with the development of -If you would like to use bitcoins to support us, you can transfer coins to these address. If you want to be included in the patron list, send an e-mail message - QuasarApp@yandex.by -you must send a message signed with address of the bitcoin wallet from which the payment was made. +If you would like to use bitcoins to support us, you can transfer coins to these address. If you want to be included in the patron list, send an e-mail message - QuasarApp@yandex.by. +**Note**: You must send a message signed with address of the bitcoin wallet from which the payment was made.  From c4b544f18118301819a5a659d7c70730b1fde645 Mon Sep 17 00:00:00 2001 From: Oleg-designer <78071329+Oleg-designer@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:46:25 +0300 Subject: [PATCH 015/222] Update README.md Co-authored-by: Andrei Yankovich <EndrIIMail@gmail.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed1b5fd..723d423 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,7 @@ Join the development fund and support QuasarApp to help with the development of If you would like to use bitcoins to support us, you can transfer coins to these address. If you want to be included in the patron list, send an e-mail message - QuasarApp@yandex.by. + **Note**: You must send a message signed with address of the bitcoin wallet from which the payment was made.  From d6ec8ca521d6c221a1249c7b136f30213085db98 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 23 Feb 2021 18:01:21 +0300 Subject: [PATCH 016/222] ref #542 remove russian text in readme --- README.md | 103 ------------------------------------------------------ 1 file changed, 103 deletions(-) diff --git a/README.md b/README.md index 723d423..2cb5737 100644 --- a/README.md +++ b/README.md @@ -125,106 +125,3 @@ bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. *************************** -*************************** -*************************** - - - -**CQtDeployer** - это приложение преднознаена для извлечения всех зависимых библиотек исполняемого файла и создания сценария запуска для вашего приложения. - -Основные отличия этой программы: -* Производительность - эта программа развертывает приложение в несколько раз быстрее (до 10 секунд) -* Гибкость - это приложение имеет флаги, которые помогут вам настроить деплоинг под ваши нужды и нужды вашего проекта -* Crossdeploy: приложение поддерживает Windows и дистрибутивы Linux, это означает, что вы можете использовать его не только для развертывания проекта для вашей платформы, но и для развертывания проекта в Linux для Windows и наоборот. -* Быстрое создание установщиков. По завершении развертывания вы получите автономный установщик вашего дистрибутива. - -## Поддержите проект -Если вам нравится то, что мы делаем, и это приносит вам пользу, вы можете поддержать проект на официальной странице [QuasarApp в Patreon](https://www.patreon.com/QuasarApp) - -## Поддерживаемые платформы: -* <img src="https://user-images.githubusercontent.com/12465465/67766480-929b5000-fa5f-11e9-8ae7-377d9ddb7c65.png" height="100"> -* <img src="https://upload.wikimedia.org/wikipedia/commons/8/8d/Windows_darkblue_2012.svg" height="100"> - -## Поддержка архитектур процессоров: -* x86 -* x86-64 -* ARM -* ARM64 - -## Как использовать -#### пример : cqtdeployer <-bin [params]> [options] -Смотрите список всех опций [здесь](https://github.com/QuasarApp/CQtDeployer/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B -) - -#### пример: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.12.4/gcc_64/bin/qmake clear - -## Еще примеры -#### Стуктура проекта после развертывания: -``` bash - #linux - cqtdeployer -bin Guitar - - #windows - cqtdeployer -bin Guitar.exe -qmake /path/to/qmake.exe - -``` -<img src="https://user-images.githubusercontent.com/12465465/81007195-7ab2e780-8e59-11ea-9793-1eeeb0025b96.png" height="400"> - -#### Установщик проекта после использования опции qif. -``` bash - #linux - cqtdeployer -bin Application qif - - #windows - cqtdeployer -bin Application.exe -qmake /path/to/qmake.exe qif - -``` -<img src="https://user-images.githubusercontent.com/12465465/78639719-197a1180-78b7-11ea-9e82-a03dd43f4bd2.png" height="400"> - -#### Установщик проекта после использования опции qif c пользовательским стилем. -``` bash - #linux - cqtdeployer -bin Application qif -qifStyle quasar - - #windows - cqtdeployer -bin Application.exe -qmake /path/to/qmake.exe qif -qifStyle quasar - -``` -<img src="https://user-images.githubusercontent.com/12465465/78639720-1aab3e80-78b7-11ea-9604-3dcdd7c78482.png" height="400"> - -``` bash - #linux - cqtdeployer -bin Application qif -qifStyle path/to/myStyle.css - - #windows - cqtdeployer -bin Application.exe -qmake /path/to/qmake.exe qif -qifStyle path/to/myStyle.css - -``` -<img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"> - -## Сборка и установка -Инструкции по сборке или установке см. В [вики](https://github.com/QuasarApp/CQtDeployer/wiki/%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0-%D0%B8-%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0) - - -## Проекты использующие CQtDeployer : - -- [QAmigo](https://github.com/QAmigo/QAmigo) -- [QtSecret](https://github.com/QuasarApp/Qt-Secret) -- [Hanoi-Towers](https://github.com/QuasarApp/Hanoi-Towers) -- [distbuilder](https://github.com/BuvinJT/distbuilder) -- [Manager_v2](https://github.com/dimkatsi91/Manager_v2) -- [IDE65XX](https://github.com/emartisoft/IDE65XX) -- [Tanks](https://github.com/anevero/tanks) -- [stegano](https://github.com/taskmaster9001/stegano) - -## Благодарность - * Большое спасибо [Trail of Bits](https://github.com/trailofbits) за их библиотеку [pe-parser](https://github.com/trailofbits/pe-parse). Все работает отлично. - - -## Поддержкать нас -### с помощью bitcoin - - - - -bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 From cd0f09039ac8e8c3d09f63b2c5ab2d1a79d5f2b5 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 23 Feb 2021 18:09:43 +0300 Subject: [PATCH 017/222] fix #542 add link to index.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 2cb5737..84bd6df 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,10 @@ The Building or installation instructions see on wiki [page](https://github.com/ - [stegano](https://github.com/taskmaster9001/stegano) - Bit-level Image Manipulation Software with Qt Framework - Steganography Pet Project +*** + +### If you want to get more information see our documentations [here](docs/index.md) + *** ##  From 635d6c7e6dc5f187b149f26aa1fcf730e8605f84 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Sat, 10 Apr 2021 16:36:18 +0300 Subject: [PATCH 018/222] fix #562 change qr code --- README.md | 6 +++--- res/qr.png | Bin 0 -> 7288 bytes 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 res/qr.png diff --git a/README.md b/README.md index 84bd6df..711f83b 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ The Building or installation instructions see on wiki [page](https://github.com/ *** -##  +<p align="center"><img src="res/Credits.jpg" alt="Credits"></p> Join the development fund and support QuasarApp to help with the development of our projects. @@ -112,9 +112,9 @@ If you would like to use bitcoins to support us, you can transfer coins to these **Note**: You must send a message signed with address of the bitcoin wallet from which the payment was made. - +<p align="center"><img src="res/qr.png" alt="qrcode"></p> -bitcoin:bc1q4wnp58plhx4fwnfnzz3e4slulv2gzzts89w2f7 +<p align="center">bitcoin: bc1qzuymq7jc9q2x04wcwstr45tu8klm46zfl20wyp</p> ## Our patrons list: diff --git a/res/qr.png b/res/qr.png new file mode 100644 index 0000000000000000000000000000000000000000..6544d8b9f17f155a3e231fd54f21e360e79fc974 GIT binary patch literal 7288 zcmbuE2{hDu{P$HirNULpPK3x7vSclnkY%h{$H;o^``AsAEBjU`%apYcNg50$lzqw8 z#MpPkAR5CkJYSvXo=3Omod0vq^F3#dbNKpxKfllC{ds-fGZU?+t4@1{^$Zmi6|JU* zssR<%F{8uR>EqxxKh_PW!4Dcw4Kp7qD!NaHuVYVz=-8;J*sp1--Zl!zB8-LVUBvF3 zTCcZxAhdmcPN#7_MOD9#P3n9c?cdXnBVXv}waDcfrhGGHVSxS9mBDI`Gm5)|V;$hd zt5)>gFn%HJY*=z5;RY}Dg+}W8R6-l(jOV{U<ROt-dpv>{j<?PQ^sH9(k~X6vg8h4M z`is#=h05-hexC9apt=R&syszSHGgaU#GjFqr!Jpqq`$@Zkn4fKAIenvr^Bdn|J<We z<=#H_Sml4(fOiQ=zZ9zmXX=@YwygDeZTX2gZl6^>B;M1%+y6Kb<JA%#m)h>GcaWpV zG53&CA+g2SpM9<cJJ{6qpDVRBwrl=OS(wz#Y1d`+LJ8)}-@%f7a#dvgx${F=cC=Q< zcbJn@?VA7le_fF6nxte0+xKE2b1X94SMJXaG25n9;FIOKTR)OkEo(33I7pIk^H$dL zM;;V~p2vu_nU*wT`DX+uC`ml*6rZi}Ia^-x1jmGiHq60RwCg`PhzV+fIF4%>ZD=Dh z;}lt#hlPjRCH37ls@B|>9aqn0?EIRpCpf-6?XJ=5-Ws|60U;&BmTe6el9L5z_kFhw zBKVbzZ)0|4u#cY|NqQG%K0Va&X;Q4`7O`fX?X%sJMlbH!GNlGbo->;4ZEbJbOyP4q z*Ej!DvkT|L=0#&B(QMipB5ssZ-V^T}Y*?HqH}$!%Bq!(3uC6LY9=%1l1=jUe?EMc| z%6BO5CP5G{++OB!rA`cvB}0<eZPdvanMX<bvTZ+XRDXLU8X9G3ZYSyClRnjJq-lA* zZGAG^eIF!_B{GYLr8C?vKVGfzzxC0sE=kN*m=PNKq@&Ss_aIzuKv`n^brNpHZlPXv z==g=Omep3{X#ZbgT%GA3Yr^`q35<2iei@DR%obZ(dx%a+Y_v;MZ8<T*``aa5Vl(!h zQ0HNYiwsJhQoZK4>;z%y#a~D<9ZK{dCZk2h`sgK(X!{wat@Y&0v|gJ%??f>h3)YWh z%fPuRWSTwJUac~(d+Peu6KLfq^KS{jJzaIUj>1dlF+>P;wS_gjSSKpikEA9hWuD%V zXc$FSFTIR9n(V_qdWLC&AnvGYoD^l*-iTGfD=s0TcNv!y!bjszBQ#znZCxB+<5>-V z=_^CU{KvnIxGA(#J&8{5nIun0oPHfMlhYahO})Kgo@vAPI>k+*+M=85zxwPTtl}>i z_?iV=$<29JxarE4^%y^7{U|kgdJg?vAC6C^rBSB3e)?#egWhQuNaB5zq{;{@)Z0p3 zusp3<>6Q2__+(Dc>Z7bvJ`>rzM|05e=&q8A^IL%pEOZe@%Two>1jLFm7qt86#4w)S zb4@$<8b8Y~i9Upg_p*c)slTTl)w|d^swOK}sY9L4ZJP>RkM+7dF}!T-FQ-23epJ>^ zc4W4$w}mYRVNHTZ1|H1ug&3o{MaH^6ruSJR<eG$b-qQ5GskSJ+f3%|y(KRo&F(sNI z!n?$ir-br+=fNnsy{hS>wY(nxC{w=Zg!pf*(-Bay1eu{RTP*b9bq&$H>)w=J-Y%=A zvZ`vArA^Xo9mo6<7fxiO4{<qS{pu~68k5BCNsF&P26o0HODp>kFXC41gsGZmYN<XF zE*~Lh$KE5Zh-0r=hdp3z7v_mGovhC-^0n_+={UYi+s*2HCE%!Vw2<~;OYXx%=HJ{T z+C&9KW(aLovsY%DQ!1?gX`Fn2He#t_{`gTHAEsC0WlG{JXAzZEX<Iv@ol%B^Cz5zm z)a{H|tlg?P6U9S)n-FI@dxFaS*uUaBOcg)x-nO^(8Oh3~`WP(@7O|=2EoQ<pB3gc+ zeNkmglA-&}QXxj38~J!?NBNfk_h)J!S?;t6yb-a3#v~Dy`7h1hi-XQK*O$hw>E2$I zXJ9$kphf(Zwm)lgb<fhX99`{CZA3eO(baU!B&Ry6bQql#jQ(8Tp@q2eF10E|yLY|j z<9`V<DmvvD<d)}Nq0Uz)@nnCsng$VejKr2s3HgJ2M~x|@m+8|PWh&3J{|>Hau-eSs zTf-Mib?QnW@J4p&hGHp|GpAVeqAd?vJN)JI;uQIQBZzQ|BS&?mFm?JTZ=^Z2NeD0_ z!lQH$Q`i=n^i)A(``Ck<{|-fospm+YtpdRb6*~RA^H$`R2MVWQQ<odGV5@hStJxR~ z+%1(A%Fa@qdw6uTZZhpuCxw>hB!$qEeh$OkWIr;E*|PT<RH$Bad&xC_xkQn{KwQ&k zn2&dl>f_~qALnO{5s}D762AR%Nc{6xXTHkeo>WjLc<|=drq-vVctB2URM$T|%AL_w zFKExUvj(YHM@c1z%|mqRs-Z@XiV+`I%SYxb$rZKj*=GfQYajPe6E6Qum7G?7TdBv% zY8|TeUO)gn$%~F3GyK9jM*WG;awwmVmIpK(gSW`Fd<KeGyD2Ttj1@z+-Dn(dK3#2` z@Hv=2+2qU;Opy<5(+~aaG9bW5c9XRY*Yf?d#oC!^CUU6lqJ8I??1c-b`DYp8LZXca z1_H>x{oj20D*XO*Ww+fEM>z5h^SSD5{e_%S7TIBXm%)k0jsB4Fv%l&U8aj%NQQ<`P zV5Lae7ILK7hP_m%OiSBc)s@w1(kwb<!D@Eq|2kGx?nP*@#sy0ROkIHS_fOvLsOC=e zu%<R~WIFv@6CRW)4U+=e18%%H%MEe&aqzsWjgWsQ^qQsylhi%A>ia>gIM(VH)$v<y z`d|an`p~-6j4{cSklVv^E%plQkgfJ7-z(mon!k4xJwM&qW@mtxq=dcws))-wrdiJg zCZbGkY8-C?ZeEqhB|zhF#JEWuJV&Cf-X*bi^~8IYQ+tgYwmJU^Pxj7cilQ#nV%XRd zb{w@$gYsnW-W|_AyZehb`rmjs*I)wCaN?l+@V}bZ1&4%I(3piZh35FpTV5O|-c;#{ zh+BERRCDWSvJbsv$KJ&-l{Sr%)3AmX_teDwa2i1~zWg7|dGhIFb_gAz(B9~q ze5POGoq9g;po%um?@C-_TXl-ecDNq-`&eaL1OLLJ`GJ<`qkQHcseKJgf>giXr=~=$ zuwxl;MWtU^rT8DORH%d2f%g?|`rg!R1<6S?V*&cu|LLY@i0(C&ZB`m?RKp^y*7jDi zM>fEo=IICz`1y^;;?lz;hWp9%R2e6Z!qPo`JyoZT%s!mhXiIO<_MC^}+hE4Bj9`X( zVtd7_-_u>&p?ZM3eZ(ve9)vX|)-!fZE)*=4`@PxZ<NoOt{fZ6*NP)H76Saz?L#K`) z8Te7Au({^Yzc^tGoZOIz^u|dW^|(mQRUaQV(p+sL^4CFpXxN|Z&|r3X);{arr9nur zlYEvUOM9n;qCYD-P}FH)kD4hTm8nUZj^h`P=K0Xj+j}iM`h%)1;wUiwW!wK~_zySm z@o!_xpqbg(BKd+S?;neO$i3OC4vEJZ)%0_7bMbh57Rs{PlUrE03x`A3)r~$lW@KWb zuBJxIdSh{KXS0PQ8qp_t@Hv*r*4CCQU@|=76g}&xAEdv(U-+PRV4yND@2_CNYuE6R zOjg!hVGBLkOt28I$&cX|__be^mfEeDnVK?la1fT4<^Ax3o#|qgnPVT^a1V~1Xo+WA z=yz~)do$!LHMtV`=#eb)40Tkqc-UUR0y1TMd>p@%b<>AmJu{fJ$|3D)s;Bp5bqvjd zj^~j7P+W}v-pYlQY;$ilyLayr2ZvjgIk-9)+f2_co0OF`Iy$=d%{Eay2v+56eCyUN zYwJl1kNN_)x*#HcCQ*5Hd3iS$wx_c2H?6hrdT>xsnPrWHpkVuC7|VFbrVe_{9fjN6 z+$_?~9zm@kgjk~@BXzRno`!C>av?0u%*-q-(5}Pps$8%VTcsr>oo#IbVq!>Huj%Jf zF3iFAjEr2zYOAWN1Nw5+mcPF733J+<?@m<MXd9b&8t(1wZK*QS+Y3=FK<sZKgK;CI z2?R1NEe(l0_{;>WBjZazxl(0%__Wd#4)!*mK7G1EuWM{*c!7bz3p*AP5~8%bQVCI} z_<}<xLN?=Ty_)}_rJ<oo7lj6`)ssXmt3S$weP`z>HLIL2NVnP`k&ri>`iDwPst5@3 z0FpCsHu)4+$aNv1&cK5Lt@N<%si+YI=3syKnWQ5f>kR=uKKt>yKzvK05?Mg@a0PsM zaU0alM21ryF3iWLMv;@1HKp)KN%<Y@Q}Ed6=;)oD9X!)Op-yacv{_w%myywvF?SPx zQ#Aa|h_$u#i%zsDCXBKcMv^CByu7@Q9Xn=@Elx>E$;ik!c7nR=nWXwyN={CL3sy9$ zx$o;&Y0t@9Zjd|be0+RY)Dw&_<CTuRiHJShsAhdAl!Jw3cw_|cDGMiz5Icm*W!V$v z=jXvOzHoT4Ja%vp9Ow9b`ZInQ?Yq=J08xG;wL4@2>&{U`<Gducy4u@WltQ*A8zW5K zm>0OWcXpnor6sPfpQb%rZca}6C?-ZmUS8g=Y<d61FE2|>%J0d*;c%tRE=e59!(T~% zL_Kfm15n8RdNaL?Bf7M-Ys%Be$Vm0honkg*z;tvuX5X9=)RiG#RaF%qAFr>kKXM0% z+P;I4cxxz4#G+99*?D&MI`^^K7cX9%WfJ{yqX#56kyCM`Pfc4pjvS9If*?mm%zvih z5-aNn1_9Q=moHyD8g>ec#<RPT%CKF2`g7+>%gg;`*_W1<GG#pAvh2#_zQq0SiHN`D zd!I{{yn6NO<;(k@9y8$6#2U73M&3K&vC^4@xpY|0_4`fz1zPfQa<znnh_}xUK$8QJ zfh6~Ibs3>7YrOeHL`1~IAoZp;>}a2bo}{Ftk&zKHImm4WY%Te@uIgsVx_lLGnF7^s zP2@6REU2%ifWJbNcJgZ#B_#*2SpTo3W*4sN8kG+y0U2ZViRB0TBusNt)9Pr=Ouw$K zZi0_GcvSdK)xeaeu<2Xtv06VJ9UZN7QG#5`TElKxP0daj2NdWDBomMAOcN0j6a=6N zB7%A%D8w)dSun=H%#4MTvjId|SjZ27^#1b?wcmowc)%4A5gnI>sVFXZLx_N&V8yWO zSVCoy;zhOgwl>+o4ZG0LdU$y1lP5;T#uphGjjXJ!jE$wNKT;7sVh$*4Lib8vy?(8! zqhpL>zv;~@E&a8%wRKKGRaI4iIA{n9B@RJxz6_k4ob2qD1_lQD`hBCL3O1ik6ABU% z5>B4IWar?Jz$Q~x)O=AbIx!J3_teCFwEBAsn+LmM(EB2<uw4S`<;#~KS9XAD0EX`g zCr_Rn8X7`uH*@9Y<()VV;QW1Kqqw;EuCDIk?vmo-mIRK@MQC1V2OLcS<RlOXK#z%! zAM2IRxJp}SYDRzXF*6%p?8~E2D5vN-OZgcRxRi4;G8RM3d$Q%ReSOK9nI%R3ijPhn zG)0~b4G95(>t@RpxbJkr_9YPed-{2Ih|AcuDCIrwnQsF{5HX7nU?Rxhyg58qu(Gmp z$P8}oaIfvb*M_}WHwT7?1LwP*aqUf>8d)QNr{U)2zJLGzUr}^!&dvt%=5MWU13C=B zxU$#;MMbxWL=L48*}S~|egiSF@*1CoEdtJeYh@VUvbeaY3}h?gJ{qu)?N9!(WQ)QL za{w*40H7>m%S{ekDoo)k-zoyWPYaop30qd{js1<n?Gl&$!7SU@@aEz|f(E!2V_;}# zXkc)jjjcp#s0hLZdZw_jFmQ8zZeamd7obnOR5r8X1o5L<=tZJTg~i3i<49$!QqF^t zy$X2(cLM^da|P(4Y;hmlz%9PRga~>iSulwV4Ei^FmCGf)CS3s)K?n7zb9J}1t#568 z{ZLd?l*oQ_qYS$MRVKN&0xkt@%(i!D$}nBJ1p0gECdzwvi!eB7L_9$tOd4~AZQnOF z%^=%0xuY!Je2s~T86CAG3>ZZmjMn&k|Nb409_#Gv92hXvfAZ<mC)?Hp!5Hu9Pc#dY zCgo33Q&M!1O5HN~WuSgZ+<y%sh6dgU+=W7+o}O=WY%`xfA8e-V?PZ~0m@v?OKCKBH zE6w$Fb*|F5bXeHZM)NxeQV9qakHMo}eC-1#Smu;^Z?E6qT4PeI&jV?SjEtn^QrZKd zG&VLiG&HOvd@X~@JN9H<%?VJ!NjUZAfA}E1u;x@U6a)qjh^{+BJg=(CnBsR?NXUhV z9}=y{xqg_Qo+gvYfF;hGfvA}kI7Cf<Ja8eKLms}pyL+&O!q{U%)$}c&cXxNkM@O?L z1ibBZ_nGfv5x4n7CN6`3gEG&FiHMB7cQOnN+?nf4M-WS3H@U{YeG9-3zP3QQS6D2P zYy9PPfr`X!TMpZiUh&75A4>zh+44p8@9jI&mIjJkie90vUAq<r=Ih~L!z13@D;aZ7 zjEw~r<jIy(aU%jq?_h61`Sa(`Bjqj5>!|ndZ``;681C#w$1bZ!F^Me?zAC&uBrYW- z<#ddlk<pikH&$$=<5Vz}9}Nt?12#J2-`;P2F9OJcZw;Jjp<Pf!hHedmyo8dMibR*} z<K-yM98fg8+g=3>oVU`?NclMbL6pbD7}_5c2}&8NKpgDHCD3um8JU}tM_kHpqSp6! z*B}|!?*k_@l6i)n-sEa7Fa}#&aAJBd$ZUQ-Z|rApV6D_*FU`%)3dGn{4tx9fTsVKe zqqDQzvL@Fdzm~%h6?`oQbU`ra&O?Lo?Afy(6M-?^AW;3D0})Zt@mjx<&o+Te1?gc2 zyA$%TlvfIhiY#tQ>mN^KXJ_NFBf$q-IFGB49QI3>E}cIw5x6ni)TH8e02m->ShzPY zgYk08UygiwM{#E?Ve@4aXMdQeh46uhEmU9sd*dmtzfH<rp}`(5E*90EQ)N)}!-o$C zMedahVX-Fla6_?0Mm3r<XPjMKg+)cJ-r2P`Mx3hRx-rw5C?+H%AM|4}jzuyn)6Lb@ z=zu`ZOUryasqDL`=i;)QqZphMMt1Vkvay*~=L-E%j-Yh9qk!pB8C&#}1p^9<6`$QL zH-dVArR8Wt=<Wy(M<U>gq=0YKGcx)yfZQLfN&oUiPbzY={VGz{1EQhv4THd-P$&#W z*)|Cn6MXq1+J6n6lQh(+MTE$n1Mb7s#YNtGRzqDqDy`Ms#YO1awc?TzEeHguj8MwU zi)9i6VE5|HQAD|qIeU1R$Vkh`INICSQ?_vJ?d>BI;SOCH$?54PhK8G~=(U~<@xR=r zJP^B?&x`agg!L+tvT_BaGj(XAdwO(XFqmI2fCwQcCU<sz9#p9l_jBF+0Eph%(edr7 z9WZ+Mr19Xjde9gi6Ae)PC-2_9+uPf7!Is%OI>ONKLpl*&>(JBF$A0er_RSOueKYq_ zJ%Jr~a8nBl+~A<^){5D}ALyv4)<T`k@t|c95t`he@JlmW9FkR!XC3<TWgVD=uR}xG z3V{GW(fA%P4cj_83=k3MlCt`8(+V5VJOH0~QcbNF5E;1D`R~8Cw`UTov?gEv6=eko zBrOdG^zXsgYiCNk&9uaerq==!?*@_yyq%?GR!;a5x9~Ps@Jhw{`a1CHNXm*MK5eQw z$^-X-Fzkq=rK8&?FP9I+0}ptwL`q&BjG;h)dwk1NArq^HkedPm0>Z-DF6*D7FMuuK z;o)InVIwdb9v&Vr8<{R%G&VAt9S!#M^aNqd%*+f&WGMu0080F&qJm#u&c^fsaOW<R zCtix3`||RyLvs>!j^&;Inw8%Sn5#@8=8T-2<0B)*I!t45-|h7&@NOq5>CciOR%Yf` zhb5ocnCk>%x_@8*9OS*!&qs7Cv#OVqkno;p2(|d&djFgg7+JtarSj{rirYL&Q(b{) zjjg^G=m0uCe*8FafgAIg9&)HUhi+D)NC;`n-(OL($9=qRXF67lj!jxvNN5?jRD6Le z#H|eQ0t}YduV0V&Bkb&Ei;YWK61lioSazDuidEb3{6oh<-slwb`1bZTE(HK1IeBV% z83#fx@d^qEsM}pdA4;v;0q7PR){!Oa#ly$<x%cPVDbhyOZZ!ZgVXcC@ovX~>+#}q@ zr(^c)0oZ`wxqCMzP0VPM71R(NxLN3PMp9h7qPBKq&Z8@IcZ>GixpSva>me3nx$(W! zDj{3Ljw48NkdTs6!;2TU4)&o3$Fat`x;-6Fg?3s7N)o7U0G|UUU5|yUbS7C{y<%Ve z>lUoWy8z%<PR`u55{cNa35uk)&Y<j)Vzb7Bw=jS11qKEJ6Af&&9Er=Jwxhir9I!K+ z3P}?-<0;m8fR2fd78Dk~F^{I}#h<v0M}W_usOXM<9QXh9F8TlOi?zcmh=>bzi`ftU Tm;hfPQc-ED>8h5gSU>z<lzC(M literal 0 HcmV?d00001 From 7d4406c9f7f96ac05762627a09fcddb0c6ffaa49 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Sat, 17 Apr 2021 09:07:05 +0300 Subject: [PATCH 019/222] ref #571 readme update --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 711f83b..15d5654 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,7 @@ If you would like to use bitcoins to support us, you can transfer coins to these ### Silver Membership Patrons: - Rustem Husnutdinov +- Semih Ufuk Güler *** From d7228358d7152ac902ffe186b3ba02a3e469c93f Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Sun, 23 May 2021 09:45:25 +0300 Subject: [PATCH 020/222] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 15d5654..575ef0c 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Key differences of this program: #### Example: cqtdeployer <-bin [params]> [options] -See list of all options [here](https://github.com/QuasarApp/CQtDeployer/wiki/Options) +See list of all options [here](md/en/Options.md) #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.12.4/gcc_64/bin/qmake clear @@ -80,7 +80,7 @@ See list of all options [here](https://github.com/QuasarApp/CQtDeployer/wiki/Opt <img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"> ## Build and install -The Building or installation instructions see on wiki [page](https://github.com/QuasarApp/CQtDeployer/wiki/Build-and-Install) +The Building or installation instructions see on wiki [page](md/en/Build-and-Install.md) ## Projects using CQtDeployer: From 863e4364e8a9cae4941937741c204f358625fcf4 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Sun, 23 May 2021 09:46:38 +0300 Subject: [PATCH 021/222] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 575ef0c..0563575 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ The Building or installation instructions see on wiki [page](md/en/Build-and-Ins *** -### If you want to get more information see our documentations [here](docs/index.md) +### If you want to get more information see our documentations [here](md/index.md) *** From 3d6ef828b5d5ef4f181f167944ec992e7fe19b34 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 24 May 2021 18:35:22 +0300 Subject: [PATCH 022/222] fix #614 --- Deploy/Deploy.pro | 2 +- Deploy/deploycore.cpp | 25 +++++++++++++------ Deploy/deploycore.h | 13 ++++++++++ Deploy/libinfo.cpp | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- .../packages/cqtdeployer.1_5/meta/package.xml | 2 +- UnitTests/tst_deploytest.cpp | 4 +-- snap/gui/cqtdeployer.desktop | 4 +-- snap/snapcraft.yaml | 2 +- 10 files changed, 40 insertions(+), 18 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index be4d306..46415e9 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.36 +VERSION = 1.5.0.37 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index ed71b0f..8d5a3dd 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -588,10 +588,23 @@ QString DeployCore::getMSVCVersion(MSVCVersion msvc) { QtMajorVersion DeployCore::isQtLib(const QString &lib) { QFileInfo info(lib); -/* - * Task https://github.com/QuasarApp/CQtDeployer/issues/422 - * All qt libs need to contains the Qt label. -*/ + + QtMajorVersion isQt = isQtLibName(lib); + + if (_config && !_config->qtDir.isQt(info.absoluteFilePath())) { + return QtMajorVersion::NoQt; + } + + return isQt; +} + +QtMajorVersion DeployCore::isQtLibName(const QString &lib) { + QFileInfo info(lib); + + /* + * Task https://github.com/QuasarApp/CQtDeployer/issues/422 + * All qt libs need to contains the Qt label. + */ QtMajorVersion isQt = QtMajorVersion::NoQt; if (!isLib(info)) { @@ -607,10 +620,6 @@ QtMajorVersion DeployCore::isQtLib(const QString &lib) { isQt = QtMajorVersion::Qt6; } - if (_config && !_config->qtDir.isQt(info.absoluteFilePath())) { - return QtMajorVersion::NoQt; - } - if (isQt && QuasarAppUtils::Params::isEndable("noQt") && !QuasarAppUtils::Params::isEndable("qmake")) { return QtMajorVersion::NoQt; diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index dabe42a..e47790f 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -194,7 +194,20 @@ public: static MSVCVersion getMSVC(const QString & _qtBin); static QString getVCredist(const QString & _qtBin); + /** + * @brief isQtLib This method check full path of the library. If the @a @lib contains only name then this method retun QtMajorVersion::NoQt enum. For validate @a lib by name only use the DeployCore::isQtLibName method. + * @param lib This is library full path.. + * @return major version of the Qt. + */ static QtMajorVersion isQtLib(const QString &lib); + + /** + * @brief isQtLib This method check name of the library. + * @param lib This is library full path.. + * @return major version of the Qt. + */ + static QtMajorVersion isQtLibName(const QString &lib); + static bool isExtraLib(const QString &lib); static QChar getSeparator(int lvl); static bool isAlienLib(const QString &lib); diff --git a/Deploy/libinfo.cpp b/Deploy/libinfo.cpp index afa87e8..235a2fc 100644 --- a/Deploy/libinfo.cpp +++ b/Deploy/libinfo.cpp @@ -104,7 +104,7 @@ void LibInfo::setWinApi(WinAPI winApi) { QtMajorVersion LibInfo::isDependetOfQt() const { for (const auto& i : _dependncies) { - if (QtMajorVersion result = DeployCore::isQtLib(i)) { + if (QtMajorVersion result = DeployCore::isQtLibName(i)) { return result; } } diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 099c63a..c93ec47 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.0.36</Version> + <Version>1.5.0.37</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index fbdb678..0ca5675 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.0.36</Version> + <Version>1.5.0.37</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 541a5b0..75c6941 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.0.36</Version> + <Version>1.5.0.37</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 336f430..be9d532 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1465,8 +1465,8 @@ void deploytest::testMd5() { } void deploytest::customTest() { -// runTestParams({"-confFile", "path", -// "qifFromSystem"}); + runTestParams({"-confFile", "/home/andrei/Qt/Examples/Qt-6.1.0/quick3d/build-particles3d-Desktop_Qt_6_1_0_GCC_64bit-Release/CQtDeployer.json", + "qifFromSystem"}); } void deploytest::testQmlExtrct() { diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 737e9bc..e510669 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.36 +Version=1.5.0.37 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.36 +X-GNOME-Bugzilla-Version=1.5.0.37 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index f749d1e..75bbfdb 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.0.36' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.0.37' # 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 35918d8007998714253bed398763d69f65e20dcc Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 24 May 2021 18:47:10 +0300 Subject: [PATCH 023/222] Update UnitTests/tst_deploytest.cpp --- UnitTests/tst_deploytest.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index be9d532..a67a6bb 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1465,8 +1465,8 @@ void deploytest::testMd5() { } void deploytest::customTest() { - runTestParams({"-confFile", "/home/andrei/Qt/Examples/Qt-6.1.0/quick3d/build-particles3d-Desktop_Qt_6_1_0_GCC_64bit-Release/CQtDeployer.json", - "qifFromSystem"}); + //runTestParams({"-confFile", "", + // "qifFromSystem"}); } void deploytest::testQmlExtrct() { From 3c5c4722e0a06848e79946f04c6b33f2a8f7227d Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 25 May 2021 10:09:40 +0300 Subject: [PATCH 024/222] ref #560 documentation correction --- Deploy/deploycore.h | 2 +- md/en/ExtraFiles.md | 2 +- md/en/ExtractDefaultsTemplates.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index e47790f..47e8b9e 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -195,7 +195,7 @@ public: static QString getVCredist(const QString & _qtBin); /** - * @brief isQtLib This method check full path of the library. If the @a @lib contains only name then this method retun QtMajorVersion::NoQt enum. For validate @a lib by name only use the DeployCore::isQtLibName method. + * @brief isQtLib This method check full path of the library. If the @a lib contains only name then this method retun QtMajorVersion::NoQt enum. For validate @a lib by name only use the DeployCore::isQtLibName method. * @param lib This is library full path.. * @return major version of the Qt. */ diff --git a/md/en/ExtraFiles.md b/md/en/ExtraFiles.md index a7ec079..08b7091 100644 --- a/md/en/ExtraFiles.md +++ b/md/en/ExtraFiles.md @@ -68,7 +68,7 @@ Or in configFile.json ``` ## Packages -extraData and extraDataOut options have support to work with packages. See the packaging [page](Pacakges.md) to get more information about packages. +extraData and extraDataOut options have support to work with packages. See the packaging [page](Packing.md) to get more information about packages. Sometimes we need to create a multipackages application. For example create a installer for client-server application with the client and server applications. The client and server have a own default configuration files. We add config files using the extraData option. diff --git a/md/en/ExtractDefaultsTemplates.md b/md/en/ExtractDefaultsTemplates.md index 892fe99..f2cba79 100644 --- a/md/en/ExtractDefaultsTemplates.md +++ b/md/en/ExtractDefaultsTemplates.md @@ -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). +If you want get more information about available packages see the packing [page](Packing.md). From 269153227c6f0229f0dd1723d54312febaf9ad6d Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 25 May 2021 10:58:33 +0300 Subject: [PATCH 025/222] ref #560 en Guide.md correction --- md/en/Guide.md | 486 ++++++++++++++++++++++++------------------------- 1 file changed, 242 insertions(+), 244 deletions(-) diff --git a/md/en/Guide.md b/md/en/Guide.md index 834b1fa..0f2a550 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -50,46 +50,46 @@ Done!!! ### Deploy your executable file. * For Linux systems: -``` bash -cqtdeployer -bin myexecutable +```bash + cqtdeployer -bin myexecutable ``` * For Windows systems: -``` bash -cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe +```bash + cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe ``` * For crossplatform build (Linux -> Windows) -``` bash -cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake +```bash + cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake ``` ## Extra options If you use extra libraries, just add path for cqtdeployer to used libs. -``` bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs +```bash + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs ``` If you want find libraries recursively from libDir path, just add recursive Depth option. -``` bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 +```bash + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 ``` If you application use qml, just add qmlDir option -``` bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources +```bash + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` If you want create simple installer for your application just add gif option. ``` -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif ``` If cqtdeployer not found qmake then add the -qmake option to an invoke command. ``` -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake ``` @@ -98,24 +98,22 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 1. Build the project as a release 1. Run qmake with the -r option for release build - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . ``` 2. Call your make * For Linux: ```bash - make -j${nproc} + make -j${nproc} ``` * For Windows ```bash Qt/Tools/QtCreator/bin/jom.exe ``` - - ``` bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} + ```bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp @@ -126,8 +124,8 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 3. Find our resulting executable file If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder In my case, the executable file is located in the root directory of the project. - ``` bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree + ```bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . ├── animation # Here it is. ├── animation.pro @@ -179,288 +177,288 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 4. Call cqtdeployer to form the base distribution For Linux: - ``` bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + ```bash + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` For Windows: - ``` bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe + ```bash + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` - ``` bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - Info: Deploy ... - Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit - Info: target deploy started!! - Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir - Info: platform : libqvnc is disabled - Info: platform : libqvnc is disabled - Info: platform : libqwebgl is disabled - Info: platform : libqwebgl is disabled - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 - Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm - Info: try deploy msvc - Info: deploy done! - Info: copy ::/shared/Distributions/Templates/Icon.png - Error: not exits - Info: [0] Parsed arguments, ok. + ```bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + Info: Deploy ... + Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit + Info: target deploy started!! + Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir + Info: platform : libqvnc is disabled + Info: platform : libqvnc is disabled + Info: platform : libqwebgl is disabled + Info: platform : libqwebgl is disabled + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 + Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm + Info: try deploy msvc + Info: deploy done! + Info: copy ::/shared/Distributions/Templates/Icon.png + Error: not exits + Info: [0] Parsed arguments, ok. - Info: [2] Collecting information about available packages... + Info: [2] Collecting information about available packages... - Info: [4] Found subdirectory "Application" + Info: [4] Found subdirectory "Application" - Info: [4] - it provides the package "Application" - "1.0" + Info: [4] - it provides the package "Application" - "1.0" - Info: [4] Copying component data for "Application" + Info: [4] Copying component data for "Application" - Info: [5] Compressing data directory "bin" + Info: [5] Compressing data directory "bin" - Info: [21] Compressing data directory "icons" + Info: [21] Compressing data directory "icons" - Info: [31] Compressing data directory "lib" + Info: [31] Compressing data directory "lib" - Info: [11111] Compressing data directory "plugins" + Info: [11111] Compressing data directory "plugins" - Info: [11740] Compressing data directory "qml" + Info: [11740] Compressing data directory "qml" - Info: [11786] Compressing data directory "translations" + Info: [11786] Compressing data directory "translations" - Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") + Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") - Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" - [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" + Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" + [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" - Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" + Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" - Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" + Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" - Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" + Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" - Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" - [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" + Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" + [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" - Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" + Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" - Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" + Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" - Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" + Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" - [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" + [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" - Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" + Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" - Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" + Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" - Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" + Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" - Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" + Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" - Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" + Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" - Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" + Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" - Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" + Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" - Info: [12360] done. + Info: [12360] done. - Info: [12360] Begin to copy configuration file and data. + Info: [12360] Begin to copy configuration file and data. - Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" + Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" - Info: [12360] done. + Info: [12360] done. - Info: [12360] Read dom element: <Name>animation</Name>. + Info: [12360] Read dom element: <Name>animation</Name>. - Info: [12360] Read dom element: <Version>1.0</Version>. + Info: [12360] Read dom element: <Version>1.0</Version>. - Info: [12360] Read dom element: <Title>animation</Title>. + Info: [12360] Read dom element: <Title>animation</Title>. - Info: [12360] Read dom element: <Publisher>Company</Publisher>. - [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. - [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. + Info: [12360] Read dom element: <Publisher>Company</Publisher>. + [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. + [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. - Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. - [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. + Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. + [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. - Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. + Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. - Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" + Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" - Info: [12360] done. + Info: [12360] done. - Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. - [12360] Read dom element: <ProductUrl></ProductUrl>. + Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. + [12360] Read dom element: <ProductUrl></ProductUrl>. - Info: [12360] done. + Info: [12360] done. - Info: [12362] Creating the binary + Info: [12362] Creating the binary - Info: [12407] Creating resource archive for "Application" + Info: [12407] Creating resource archive for "Application" - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") - Info: [12449] Cleaning up... + Info: [12449] Cleaning up... ``` 5. Done. The distribution has been saved to the **DistributionKit** folder ```bash -andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run ```  From e1a8cef5c7c471382457181e34ae6d0b4d4d79cc Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 25 May 2021 11:30:50 +0300 Subject: [PATCH 026/222] ref #560 documentation correction --- md/en/Build-and-Install.md | 4 ++-- md/en/Changelog.md | 2 +- md/en/Options.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/md/en/Build-and-Install.md b/md/en/Build-and-Install.md index 1851c6f..00fc179 100644 --- a/md/en/Build-and-Install.md +++ b/md/en/Build-and-Install.md @@ -10,7 +10,7 @@ - Example: ~/Qt/5.15.0/gcc_64/bin/qmake -r - make -j$(nproc) - make deploy - - #this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) + - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - ./Distro/CQtDeployerInstaller.run ## Build for Windows (CMD) @@ -25,7 +25,7 @@ - Example: C:/Qt/5.15.0/mingw81_64/bin/qmake.exe -r - migw32-make -j8 - migw32-make deploy - - #this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) + - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - ./Distro/CQtDeployerInstaller.exe --- diff --git a/md/en/Changelog.md b/md/en/Changelog.md index a58ed05..5a4f5ec 100755 --- a/md/en/Changelog.md +++ b/md/en/Changelog.md @@ -107,7 +107,7 @@ - Optimized project deployment performance. 60% faster. - Optimized output size of distributions. Size reduced by 25%. - Fixed display of shortcuts after installing deployed applications. -- Fixed launching applications with spaces in the name. Thanks @ahndee (#384) +- Fixed launching applications with spaces in the name. Thanks ahndee (#384) - Fixed deployment of the Renderer plugin. - Minor bug fixes and improvements. diff --git a/md/en/Options.md b/md/en/Options.md index 24a32c2..6f4bdb4 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -20,8 +20,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 **System environments** - paths of directories containing the system libraries. * Windows: * Paths defined in the PATH variable. - * C:\Windows\System32 - * C:\Windows\SysWOW64 + * C:/Windows/System32 + * C:/Windows/SysWOW64 * Linux: * Paths defined in the LD_LIBRARY_PATH and PATH variables. * /usr/lib From c2aee26c04c42386667f6c301be312f07bcfb669 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 25 May 2021 13:05:29 +0300 Subject: [PATCH 027/222] ref #560 documentation correction --- Deploy/deploycore.h | 4 ++-- md/ru/Changelog.md | 2 +- md/ru/DisableShortcats.md | 8 ++++---- md/ru/ExtraFiles.md | 2 +- md/ru/ExtractDefaultsTemplates.md | 2 +- md/ru/Options.md | 5 +++-- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 47e8b9e..7639b91 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -234,7 +234,7 @@ public: /** * @brief containsModule This method compare lib name and module of qt. - * @param muduleIndex this is name of module library + * @param moduleLibrary this is name of module library * @param lib This is library name * @return true if library has some module that as muduleIndex */ @@ -275,7 +275,7 @@ public: /** * @brief getLibCoreName This method remove platfomr specificly prefixes and sufixes of the librarry. * Example : getLibCoreName(libTest.so) return Test - * @param baseName This is information about checked library. + * @param info This is information about checked library. * @return return core name of the library. */ static QString getLibCoreName(const QFileInfo& info); diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index fad9fd5..1b2aee7 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -37,7 +37,7 @@ - Оптимизирована производительность развертывания проектов. На 60% быстрее. - Оптимизирован выходной размер дистрибутивов. Размер уменьшен на 25%. - Исправлено отображение ярлыков после установки развернутых приложений. -- Исправлен запуск приложений с пробелами в имени. спасибо @ahndee (#384) +- Исправлен запуск приложений с пробелами в имени. спасибо ahndee (#384) - Исправлено развертывание плагина Renderer. - Незначительные исправления и улучшения. diff --git a/md/ru/DisableShortcats.md b/md/ru/DisableShortcats.md index 0d63e58..e22bab2 100644 --- a/md/ru/DisableShortcats.md +++ b/md/ru/DisableShortcats.md @@ -9,7 +9,7 @@ У меня есть дистрибутив, развернутый с помощью следующей команды: -``` bash +```bash cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif ``` ### где: @@ -25,7 +25,7 @@ cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif 1. Извлеките шаблон по умолчанию. Для извлечения шаблона по умолчанию вам необходимо добавить в свою команду параметр getDefaultTemplate. Также вам следует добавить опцию targetDir для установки пути к выходным файлам. - ``` bash + ```bash cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif getDefaultTemplate -targetDir qifTemplate ``` @@ -34,7 +34,7 @@ cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif * **getDefaultTemplate** - опция для извлечения шаблона по умолчанию. Итак, после этого вы получите шаблон qif по умолчанию в targetDir. - ``` bash + ```bash ~/qifTemplate$ tree . └── defaultQIFWTemplate @@ -127,7 +127,7 @@ cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif ``` 3. Добавьте измененный шаблон в команду развертывания. - ``` bash + ```bash cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif qifTemplate/defaultQIFWTemplate ``` diff --git a/md/ru/ExtraFiles.md b/md/ru/ExtraFiles.md index d5dc99c..8f87a33 100644 --- a/md/ru/ExtraFiles.md +++ b/md/ru/ExtraFiles.md @@ -68,7 +68,7 @@ cqtdeployer -extraData /path/to/myScripts.sh,/another/path/to/myScripts.sh -extr ``` ## Пакеты -Опции extraData и extraDataOut поддерживают работу с пакетами. Дополнительную информацию о пакетах см. На [странице](Pacakges.md) упаковки. +Опции extraData и extraDataOut поддерживают работу с пакетами. Дополнительную информацию о пакетах см. На [странице](Packing.md) упаковки. Иногда нам нужно создать многопакетное приложение. Например, создайте установщик для приложения client-server с клиентскими и серверными приложениями. Клиент и сервер имеют собственные файлы конфигурации по умолчанию. Мы добавляем файлы config с помощью опции extraData. diff --git a/md/ru/ExtractDefaultsTemplates.md b/md/ru/ExtractDefaultsTemplates.md index 779c96d..d570b0b 100644 --- a/md/ru/ExtractDefaultsTemplates.md +++ b/md/ru/ExtractDefaultsTemplates.md @@ -49,4 +49,4 @@ cqtdeployer getDefaultTemplate qif -confFile "path/to/configFile.json" ## Запись Эта опция поддерживает работу со всеми пакетами, кроме zip. -Если вы хотите получить больше информации о доступных пакетах, смотрите упаковку [страница](Package.md). \ No newline at end of file +Если вы хотите получить больше информации о доступных пакетах, смотрите упаковку [страница](Packing.md). \ No newline at end of file diff --git a/md/ru/Options.md b/md/ru/Options.md index 8a41025..263f90e 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -22,8 +22,9 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 **Системное окружение** - пути к системным библиотекам. * Windows: * Пути, определенные в переменной PATH. - * C:\Windows\System32 - * C:\Windows\SysWOW64 + * C:/Windows/System32 + * C:/Windows/SysWOW64 + * Linux: * Пути, определенные в переменных LD_LIBRARY_PATH и PATH. * /usr/lib From d302684d5f04b9df07ff674f94656f83740e0490 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 25 May 2021 14:50:06 +0300 Subject: [PATCH 028/222] ref #560 deleted ru md files for doxygen test --- md/ru/1_4.md | 407 --------------------- md/ru/1_5.md | 155 -------- md/ru/Build-and-Install.md | 50 --- md/ru/Changelog.md | 242 ------------- md/ru/CompareFeatures.md | 14 - md/ru/DEB.md | 46 --- md/ru/DeployConfigFile.md | 222 ------------ md/ru/Description.md | 9 - md/ru/DisableShortcats.md | 136 ------- md/ru/EnvironmentVariables.md | 43 --- md/ru/ExtraFiles.md | 104 ------ md/ru/ExtractDefaultsTemplates.md | 52 --- md/ru/Guide.md | 580 ------------------------------ md/ru/Home.md | 25 -- md/ru/Options.md | 148 -------- md/ru/Packing.md | 130 ------- md/ru/QIF.md | 109 ------ md/ru/QuickGuide.md | 81 ----- md/ru/ReleaseReviews.md | 3 - md/ru/ZIP.md | 44 --- 20 files changed, 2600 deletions(-) delete mode 100755 md/ru/1_4.md delete mode 100755 md/ru/1_5.md delete mode 100644 md/ru/Build-and-Install.md delete mode 100755 md/ru/Changelog.md delete mode 100644 md/ru/CompareFeatures.md delete mode 100644 md/ru/DEB.md delete mode 100644 md/ru/DeployConfigFile.md delete mode 100644 md/ru/Description.md delete mode 100644 md/ru/DisableShortcats.md delete mode 100644 md/ru/EnvironmentVariables.md delete mode 100644 md/ru/ExtraFiles.md delete mode 100644 md/ru/ExtractDefaultsTemplates.md delete mode 100644 md/ru/Guide.md delete mode 100644 md/ru/Home.md delete mode 100644 md/ru/Options.md delete mode 100644 md/ru/Packing.md delete mode 100644 md/ru/QIF.md delete mode 100644 md/ru/QuickGuide.md delete mode 100755 md/ru/ReleaseReviews.md delete mode 100644 md/ru/ZIP.md diff --git a/md/ru/1_4.md b/md/ru/1_4.md deleted file mode 100755 index 3fe8494..0000000 --- a/md/ru/1_4.md +++ /dev/null @@ -1,407 +0,0 @@ -# Релиз утилиты развертывания С++/Qt и QML приложений CQtDeployer v1.4.0 (Binary Box) - -Спустя почти полгода, вышло мажорное обновление утилиты развёртывания CQtDeployer. -В данном обновлении множество нововведений, но основной упор в сделан на создание пакетов. - -## Полный список всех изменений - -### Исправления -- Исправлен вывод справки в консоли, теперь перед выводом пересчитывается реальный размер консоли, что позволяет выполнять переносы текста правильно. -- Исправлена работа с развертыванием плагинов Qt. Теперь плагины не тянут за собой все системные зависимости, а только qt. Захват системных зависимостей приводил к падению приложений из-за несовместимости библиотек плагинов. -- Мелкие исправления и улучшения. -### Нововведения -- Добавлена поддержка поиска qmake из системного окружения. -- Добавлена возможность инициализировать репозиторий для дальнейшей упаковки аналогично git init. -- Добавлена поддержка Qt Install Framework пакетов. Теперь можно запаковать дистрибутив в инсталлятор. -- Добавлена возможность разбивать конечный дистрибутив на несколько пакетов. -- Добавлен механизм, позволяющий унифицировать создание пакетов для конечного дистрибутива. -- Добавлена поддержка добавления пользовательских скриптов в скрипты запуска приложений. -- Добавлена поддержка сборки системных зависимостей для Windows. -- Добавлена поддержка RPATH для Linux. Теперь cqtdeployer может самостоятельно определить нужный qmake для развертывания приложения. -- Добавлена поддержка поиска необходимой зависимости по имени библиотеки. -- Добавлена поддержка Qt библиотек из репозиториев Linux дистрибутивов. -### Новые опции -- init - инициализирует файл cqtdeployer.json (файл конфигурации). Например: «cqtdeployer init» - для инициализации конфигурации одного пакета. "cqtdeployer -init multiPackage" - для инициализации конфигурации нескольких пакетов. -- noCheckRPATH - отключает автоматический поиск путей к qmake в исполняемых файлах (Только Linux). -- noCheckPATH - отключает автоматический поиск путей к qmake в системном окружении. -- extractPlugins - заставляет извлекать все зависимости плагинов. -- qif - создает инсталлятор в конце развертывания. -- extraLibs - добавляет шаблон дополнительной библиотеки, которая должна будет попасть в дистрибутив. -- customScript - добавляет пользовательский скрипт в скрип запуска приложения. -- -targetPackage [package;tar1,package;tar2] - используется для формирования пакетов, обозначает списки целевых файлов для определенных пакетов. -- recOut - указывает в какую папку будут складываться ресурсы после развертывания. -- name - устанавливает имя пакета. -- description - устанавливает описание пакета -- deployVersion - устанавливает версию пакета -- releaseDate - дата релиза пакета. -- icon - иконка пакета. -- publisher - издатель пакета. -- qifStyle - Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar -- qifBanner - Устанавливает путь к png-файлу баннера. -- qifLogo - Устанавливает путь к файлу логотипа png. - -## Подробный разбор самых интересных изменений. - -Первое, на что стоит обратить внимание, это то что CQtDeployer научился работать с RPATH (Только Linux) и PATH. Это значит, что если ваше приложение собранно с поддержкой RPATH (а RPATH в qt включен по молчанию) или ваш qmake прописан в PATH, то вам не нужно указывать путь к qmakе. CQtDeployer сам найдет нужный ему qmake. -Давайте проверим это на практике. -Я написал простое консольное приложение с использованием Qt. -``` cpp -#include <QString> -#include <QDebug> -int main(int, char *[]) -{ - QString str = "hello CQtDeployer 1.4"; - qInfo() << str; - return 0; -} -``` - -Я буду использовать сборочную систему cmake, так как она более актуальная чем qmake. - -``` bash -andrei@HP:~/Hello$ tree -. -├── CMakeLists.txt -├── CMakeLists.txt.user -└── main.cpp - -0 directories, 3 files -``` - -Создадим папку для сборки. -``` bash -andrei@HP:~/Hello$ mkdir build -``` - -Выполним в созданной папке cmake. - -``` bash -andrei@HP:~/Hello/build$ cmake .. -DCMAKE_PREFIX_PATH=~/Qt/5.14.1/gcc_64 --- Configuring done --- Generating done --- Build files have been written to: /home/andrei/Hello/build -``` - -Выполняем сборку. - -``` bash -andrei@HP:~/Hello/build$ make -Scanning dependencies of target Hello_autogen -[ 25%] Automatic MOC and UIC for target Hello -[ 25%] Built target Hello_autogen -Scanning dependencies of target Hello -[ 50%] Building CXX object CMakeFiles/Hello.dir/Hello_autogen/mocs_compilation.cpp.o -[ 75%] Building CXX object CMakeFiles/Hello.dir/main.cpp.o -[100%] Linking CXX executable Hello -[100%] Built target Hello -``` - -Проверяем нашу программу. -``` bash -andrei@HP:~/Hello/build$ ls -CMakeCache.txt CMakeFiles cmake_install.cmake Hello Hello_autogen Makefile -``` -И запускаем cqtdeployer передав ему программу без qmake. -``` bash -andrei@HP:~/Hello/build$ cqtdeployer -bin Hello -Deploy ... -flag targetDir not used. use default target dir : "/home/andrei/Hello/build/DistributionKit" -target deploy started!! -copy : "/home/andrei/Hello/build/Hello" -extract lib : "/home/andrei/Hello/build/DistributionKit//bin//Hello" -copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libQt5Core.so.5" -copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libicuuc.so.56" -copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libicui18n.so.56" -copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libicudata.so.56" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ar.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_bg.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ca.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_cs.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_da.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_de.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_en.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_es.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_fi.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_fr.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_gd.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_he.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_hu.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_it.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ja.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ko.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_lv.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_pl.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ru.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_sk.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_uk.qm" -copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_zh_TW.qm" -try deploy msvc -deploy done! -``` - -О чудо, теперь наше приложение полностью автономно. -Проверяем это. - -``` bash -andrei@HP:~/Hello/build$ cd DistributionKit/ -andrei@HP:~/Hello/build/DistributionKit$ tree -. -├── bin -│ ├── Hello -│ └── qt.conf -├── Hello.sh -├── lib -│ ├── libicudata.so.56 -│ ├── libicui18n.so.56 -│ ├── libicuuc.so.56 -│ └── libQt5Core.so.5 -└── translations - ├── qtbase_ar.qm - ├── qtbase_bg.qm - ├── qtbase_ca.qm - ├── qtbase_cs.qm - ├── qtbase_da.qm - ├── qtbase_de.qm - ├── qtbase_en.qm - ├── qtbase_es.qm - ├── qtbase_fi.qm - ├── qtbase_fr.qm - ├── qtbase_gd.qm - ├── qtbase_he.qm - ├── qtbase_hu.qm - ├── qtbase_it.qm - ├── qtbase_ja.qm - ├── qtbase_ko.qm - ├── qtbase_lv.qm - ├── qtbase_pl.qm - ├── qtbase_ru.qm - ├── qtbase_sk.qm - ├── qtbase_uk.qm - └── qtbase_zh_TW.qm - -3 directories, 29 files -andrei@HP:~/Hello/build/DistributionKit$ -``` -Корень программы: - - - -Библиотеки,нужные для работы программы: - - - - -Как видно из примера, приложение полностью собрано. - -## Qt Installer Framework -Второе нововведение, о котором стоит знать, это возможность из коробки формировать установщики QIF. Все, что нужно для нашего примера, это добавить в команду на упаковку опцию qif. - -Пример использования. - -``` -andrei@HP:~/Hello/build$ cqtdeployer -bin Hello qif -``` - -Всего одна простая команда и программа получает презентабельный вид. - - - -Этот установщик поддерживает минимальную интеграцию Linux дистрибутивами и Windows. А именно: создание ярлыков, и регистрация приложения в OС. -Если по каким то причинам вас не устраивает внешний вид данного установщика, его можно изменить при помощи флага qifStyle . На момент версии 1.4 cqtdeployer поддерживает всего 2 стиля (native и quasar). - -Пример стиля quasar: - - - -Вы также можете использовать свою собственную таблицу стилей qss. Для этого вместо названия стиля передайте путь к вашему qss или css файлу. -Для примера можно рассмотреть следующую таблицу стилей qss. - -Style.qss: -``` css -QWidget -{ - color: white; - background-color: rgb(65, 65, 65); -} - -QPushButton -{ - background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(150, 150, 150, 60%), stop:1 rgba(50, 50, 50, 60%)); - border-color: rgb(60, 60, 60); - border-style: solid; - border-width: 2px; - border-radius: 9px; - min-height: 20px; - max-height: 20px; - min-width: 60px; - max-width: 60px; - padding-left: 15px; - padding-right: 15px; -} - -QPushButton:pressed, QPushButton:checked -{ - background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(50, 50, 50, 60%), stop:1 rgba(150, 150, 150, 60%)); -} -``` - -Давайте проверим, что у нас получится в таком случае. -``` bash -cqtdeployer -bin Hello qif -qifStyle ./../style.qss -``` - - - -Вот,собственно, и тёмная тема установщика. - -## Разбиение на пакеты -И,наверное, последнее важное обновление, о котором стоит знать — это возможность разделять большой многобинарный проект на подпроекты. - -Эта возможность самая сложная из всех перечисленных, так как требует много текста для ее использования. Так что я рекоммендую использовать файл конфигураций. - -Для начала усложним наш проект, добавив в него ещё 2 исполняемого файла. Я не стал заморачиваться и просто сделал 2 копии моей Hello утилиты. - -Для упрощения работы с пакетами нужно инициализировать директорию. - -``` bash -cqtdeployer init -``` - -Это еще одна новая функция, которая создаёт CQtDeployer.json файл, в котором мы и будем писать наши конфигурации, вместо передачи опций в утилиту. - -``` js -{ - "binDir": ".", - "clear": true, - "libDir": "./", - "recursiveDepth": 5 -} -``` - -Теперь давайте сделаем 2 пакета из 3х наших программ. Для этого нужно указать: -```js -{ - "binDir": ".", - "clear": true, - "libDir": "./", - "recursiveDepth": 5, - "targetPackage": [ - ["Dstro1", "Hello1"], - ["Dstro2", "Hello2"], - ["Dstro2", "Hello3"] - ] -} -``` - -Обратите внимание на то, что мне пришлось явно указать привязку для Dstro2 к Hello2 Hello3, К сожалению, на момент версии 1.4 cqtdeployer не умеет парсить перечисления целей. Обратите внимание, что если я напишу вместо Hello1 Hello, то выборка будет сделана по всем совпадениям и будут выбраны все 3 программы. -Итак, смотрим что получилось. - -``` bash -cqtdeployer - -. -├── Dstro1 -│ ├── bin -│ │ ├── Hello1 -│ │ └── qt.conf -│ ├── Hello1.sh -│ ├── lib -│ │ ├── libicudata.so.56 -│ │ ├── libicui18n.so.56 -│ │ ├── libicuuc.so.56 -│ │ └── libQt5Core.so.5 -│ └── translations -│ ├── qtbase_ar.qm -│ ├── qtbase_bg.qm -│ ├── qtbase_ca.qm -│ ├── qtbase_cs.qm -│ ├── qtbase_da.qm -│ ├── qtbase_de.qm -│ ├── qtbase_en.qm -│ ├── qtbase_es.qm -│ ├── qtbase_fi.qm -│ ├── qtbase_fr.qm -│ ├── qtbase_gd.qm -│ ├── qtbase_he.qm -│ ├── qtbase_hu.qm -│ ├── qtbase_it.qm -│ ├── qtbase_ja.qm -│ ├── qtbase_ko.qm -│ ├── qtbase_lv.qm -│ ├── qtbase_pl.qm -│ ├── qtbase_ru.qm -│ ├── qtbase_sk.qm -│ ├── qtbase_uk.qm -│ └── qtbase_zh_TW.qm -└── Dstro2 - ├── bin - │ ├── Hello2 - │ ├── Hello3 - │ └── qt.conf - ├── Hello2.sh - ├── Hello3.sh - ├── lib - │ ├── libicudata.so.56 - │ ├── libicui18n.so.56 - │ ├── libicuuc.so.56 - │ └── libQt5Core.so.5 - └── translations - ├── qtbase_ar.qm - ├── qtbase_bg.qm - ├── qtbase_ca.qm - ├── qtbase_cs.qm - ├── qtbase_da.qm - ├── qtbase_de.qm - ├── qtbase_en.qm - ├── qtbase_es.qm - ├── qtbase_fi.qm - ├── qtbase_fr.qm - ├── qtbase_gd.qm - ├── qtbase_he.qm - ├── qtbase_hu.qm - ├── qtbase_it.qm - ├── qtbase_ja.qm - ├── qtbase_ko.qm - ├── qtbase_lv.qm - ├── qtbase_pl.qm - ├── qtbase_ru.qm - ├── qtbase_sk.qm - ├── qtbase_uk.qm - └── qtbase_zh_TW.qm - -8 directories, 60 files -``` - -Как видно из дерева результата, у нас получилось 2 дистрибутива. -1. Dstro1 — содержит в себе приложение Hello1 -2. Distro2 — содержит оставшиеся 2. - -А теперь давайте проверим, что будет, если все это запаковать а установщик. Добавим в CQtDeployer.json опцию qif **"qif": true,**. - -``` js -{ - "binDir": ".", - "clear": true, - "qif": true, - "libDir": "./", - "recursiveDepth": 5, - "targetPackage": [ - ["Dstro1", "Hello1"], - ["Dstro2", "Hello2"], - ["Dstro2", "Hello3"] - ] -``` - - - -Кака видно из скриншота, теперь у нас 2 пакета при установке. - -## Новые алиасы - -И последнее небольшое но приятное дополнение: теперь в cqtdeployer добавлены новые команды. -* сqt — бывстрый способ задеплоить ваше приложение. Он упрощает вызов развертывания. - * Пример: - **cqt myApp** — это тоже самое что и **cqtdeployer -bin myApp**. -* cqtdeployer.cqt — тоже что и cqt но для snap пакета. -* В windows-версии теперь не нужно добовлять знак % для вызова утилиты. -Теперь вызов выглядит так, как и в Linux. (cqtdeployer) diff --git a/md/ru/1_5.md b/md/ru/1_5.md deleted file mode 100755 index 4e8d42c..0000000 --- a/md/ru/1_5.md +++ /dev/null @@ -1,155 +0,0 @@ -# Выпуск утилиты развертывания приложений C ++ / Qt и QML CQtDeployer v1.5.0 - -Это первое крупное обновление в 2021 году. CQtDeployer 1.5 содержит множество полезных улучшений. Самыми большими улучшениями являются добавление возможности упаковывать пакеты deb и возможность использовать собственный шаблон упаковки для среды установки qt. - -## Полный список всех изменений - -## CQtDeployer 1.5.0 - -### Новые возможности - -- Добавлена новая тема установщика qif "quasarDark". -- Добавлена поддержка работы с кастомным шаблоном для опции qif. -- Добавлена поддержка пакетов debian. -- Добавлены поддержка иконок целей. Теперь опция icon работает с целями, но не с пакетами. -- Добавлена поддержка управления файлами пользовательского перевода. -- Добавлена поддержка развертывания неисполняемых файлов. (опция extraData) -- Добавлены переменные окружения для развернутых приложений. -- Добавлена поддержка создания пакетов deb. -- Добавлена поддержка создания архивов zip. -- Добавлена поддержка создания установщика qif с использованием настраиваемого шаблона. -- Добавлена команда для инициализации шаблонов qif и deb по умолчанию (getDefaulttemplate) -- Добавлена поддержка импорта пользовательских скриптов запуска. -- Добавлена поддержка хэшей md5 пакетов. -- Добавлена поддержка Qt6.1. - -### Исправления - -- Исправлена стабильность для опции deploySystem в Windows. -- Исправлен подробный журнал. -- Исправлен общий журнал вывода. -- Исправлены опечатки в логе. -- Исправлено кросс-развертывание под платформу ARM -- Исправлено развертывание Qt6 qml -- Исправлены команды PowerShell в Windows. -- исправления ошибок и улучшения. - - -### Новые переменные окружения - -- CQT_RUN_FILE - Эта переменная содержит путь к сценарию выполнения используемого приложения. -- CQT_PKG_ROOT - эта переменная содержит путь к корню текущего пакета. - -### Новые параметры - -- zip - создать ZIP-архив для развертываемой программы -- deb - Создать пакет deb для развертываемой программы -- homepage - Устанавливает URL-адрес домашней страницы для пакета -- noQt - игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует фреймворк qt -- allowEmptyPackages - позволяет настраивать пустые пакеты. -- getDefaultTemplate - Извлекает шаблоны deb или qif по умолчанию. -- tr - Добавляет qm файлы в папку переводов. -- extraData - добавляет дополнительные файлы или каталоги как цель. Выбранный каталог будет скопирован в папку extraDataOut с сохранением собственной структуры. -- extraDataOut - Устанавливает путь к каталогу с дополнительными файлами данных. -- prefix - Устанавливает префикс для пакета относительно целевого каталога -- homePage - Устанавливает URL-адрес домашней страницы для пакета -- binPrefix - устанавливает префикс для опции bin. -- noHashSum - отключает хэши кампутных пакетов - -### Устаревшие и удаленные параметры - -- deploySystem-with-libc - вместо этого параметра используйте параметр deploySystem. -- allQmlDependes - вместо этого параметра используйте параметр qmlDir. - - -## Подробный разбор наиболее интересных изменений. - -### Пакеты Debian -Эта функция очень удобна, если вы хотите создать серверное приложение. -Например, мне нужно создать простой сервер для простой игры. -Мои шаги: -* собрать мое приложение в режиме релиза. -* запустите cqtdeployer с опцией deb. - -```bash -cqtdeployer -bin mySimpleServer deb -qmake ~/Qt/5.15.2/gcc_64/bin/qmake -``` -SimpleServer зависит только от qt, поэтому мне было достаточно указать только путь к qmake для моего приложения. - -Это все!!!. И я получаю рабочий пакет deb. -По умолчанию CQtDeployer создает независимые пакеты debian. - - -### Почтовые архивы -Эта функция позволяет сжать пакеты вашего дистрибутива в zip-архив. - -Пример: - -```bash -cqtdeployer -bin mySimpleServer zip -qmake ~/Qt/5.15.2/gcc_64/bin/qmake -``` - -# Пользовательский Шаблон для QIF -Начиная с Версии CQtDeployer 1.5 вы можете использовать свой собственный шаблон установщика. Для этого вы должны передать в параметр qif путь к вашему шаблону. - -``` -cqtdeployer ... -qif /path/to/my/custom/qif/template -``` - -### Шаблон -Шаблон qif долже содержать 2 папки: -* packages -* config - -### Внимание -Название пакетов в папке packages должны совподать с названием пакетов при развертывание. -Например: -``` json -"targetPackage": [ - [ - "myCustomInstaller", - "tar1" - ] -], -``` - -``` bash -. -├── config -│ ├── config.xml -│ └── style.qss -└── packages - └── myCustomInstaller - └── meta - ├── installscript.qs - └── package.xml - -4 directories, 4 files - -``` - -Если имена папок не совподут с именами пакетов то CQtDeployer будет использовать стандартный пакет для QIF. - -Если у вас только один пакет, вы можете использовать опцию **name** для установки имени приложения. - -``` -cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller -``` - -#### Не забудьте переименовать папку вашего пакета в имя пакета из опции имени. - - -``` bash -. -├── config -│ ├── config.xml -│ └── style.qss -└── packages - └── myCustomInstaller << "This is folder of the your package" - └── meta - ├── installscript.qs - └── package.xml - -4 directories, 4 files - -``` \ No newline at end of file diff --git a/md/ru/Build-and-Install.md b/md/ru/Build-and-Install.md deleted file mode 100644 index f8c388f..0000000 --- a/md/ru/Build-and-Install.md +++ /dev/null @@ -1,50 +0,0 @@ -# Building from source - -## Build для Linux -- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- qmake -r - - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. - - Пример: ~/Qt/5.15.0/gcc_64/bin/qmake -r -- make -j$(nproc) -- make deploy - - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - -## Build для Windows (CMD) -- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- SET PATH=C:/Qt/Tools/mingw810_64/bin;%PATH% - - Здесь важно настроить окружение qt. -- qmake.exe -r - - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. - - Пример: C:/Qt/5.15.0/mingw81_64/bin/qmake.exe -r -- migw32-make -j8 -- migw32-make deploy - - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) -- ./Distro/CQtDeployerInstaller.exe - ---- -# Установка без сборки - -## Snap -[](https://snapcraft.io/cqtdeployer) - -#### Особенности snap версии - -Если вы используете snap версию приложения. Включите все разрешения для cqtdeployer. -это можно сделать в snap-store -Или начиная с ubuntu 20.04 в менеджере настроек приложений ubuntu. - -Если у вас нет графического интерфейса, вы можете включить все разрешения, используя следующие команды: -``` bash -sudo snap connect cqtdeployer:process-control -sudo snap connect cqtdeployer:removable-media -sudo snap connect cqtdeployer:system-backup -``` - -## Установщик -Вы можете загрузить последнюю версию приложения [здесь](https://github.com/QuasarApp/CQtDeployer/releases). diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md deleted file mode 100755 index 1b2aee7..0000000 --- a/md/ru/Changelog.md +++ /dev/null @@ -1,242 +0,0 @@ -# Журнал изменений для всех версий CQtDeployer. - -## CQtDeployer 1.5.0 Alpha -### Исправления -- исправления ошибок и улучшения. - -### Новые особенности -- Добавлена новая тема для установщика qif "quasarDark". - -### Новые параметры -- zip - создать ZIP-архив для развертываемых программ - -## CQtDeployer 1.4.7 -### Исправления -- Исправлено развертывание плагина qxcb. #438 -- Исправлено развертывание модуля qtGui. #446 - -### Новые возможности -- Добавлена поддержка Qt6. #437 -- Добавлена поддержка Qt installer Framework 4 (с улучшенным интерфейсом командной строки)ю #436 - -## CQtDeployer 1.4.6 -### Исправления -- Исправлено развертывание драйверов sql #367. -- Исправлен алгоритм развертывания библиотек. #423 #371 -- Исправлена работа с qt из системного репозитория linux. (только классический установщик) #422 -- Исправлена snap версия cqtdeployer, добавлена поддержка поиска qmake по RPATH #424 #420 -- Исправлен хелп. -- Мелкие исправления и улучшения. -- Удалена устаревшая опция extractPlugins. #371 - -### Новые параметры -- noQt - игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt. - -## CQtDeployer 1.4.5 -### Исправления -- Оптимизирована производительность развертывания проектов. На 60% быстрее. -- Оптимизирован выходной размер дистрибутивов. Размер уменьшен на 25%. -- Исправлено отображение ярлыков после установки развернутых приложений. -- Исправлен запуск приложений с пробелами в имени. спасибо ahndee (#384) -- Исправлено развертывание плагина Renderer. -- Незначительные исправления и улучшения. - -### Новые особенности -- Добавлена новая система управления плагинами развертывания. - -### Новые опции - -- extraPlugin - устанавливает дополнительный путь к сторонним плагина приложения -- enablePlugins - включает дополнительные плагины для распространения. -- disablePlugins - отключает плагины для распространения. - -## CQtDeployer 1.4.4 - -### New options -- qifFromSystem - Принудительно использовать системный инструмент binarycreator из path или qt - -## CQtDeployer 1.4.3 -### Исправления -- Исправленно отображение приложения скаченого из snap store и установщика в меню настроек приложений ubuntu 20.04 - -### Нововведения -- Добавленна поддержка рекурсивного добовления для флага ignoreEnv #356 - -### Новые опции -- noRecursiveiIgnoreEnv - Отключает рекурсивное игнорирование переменной среды для флага ignoreEnv. - - -## CQtDeployer 1.4.2 -### Исправления - -- исправлено #337 (ошибка генерации установщика с произвольным именем) -- исправлено #338 (версия Windows собирает pdb файлы) -- исправлено #339 (ошибка показа всех справочных сообщений) -- исправлено #340 (cqdeployer не добавлял каталоги целей в "ignore") -- исправлено #341 (опция очистки не удаляет старый установщик) - - -## CQtDeployer 1.4.1 - -### Исправления -- Исправлено не развертывание тем платформ (#324) -- Исправлено создание ярлыков на Windows (#322) -- Незначительные улучшения и исправления - -## CQtDeployer 1.4.0 -### Исправления -- Исправлен вывод справки в консоли, теперь перед выводом пересчитывается реальный размер консоли, что позволяет выполнять правильно переносы текста. -- Исправлена работа с развертыванием плагинов Qt. Теперь плагины не тянут за собой все системные зависимости, а только qt. Захват системных зависимостей приводил к падению приложений из-за несовместимости библиотек плагинов. -- Мелкие исправления и улучшения. - -### Нововведения -- Добавлена поддержка поиска qmake из системного окружения. -- Добавлена возможность инициализировать репозиторий для дальнейшей упаковки аналогично git init. -- Добавлена поддержка Qt Install Framework пакетов. Теперь можно запаковать дистрибутив в инсталлятор. -- Добавлена возможность разбивать конечный дистрибутив на несколько пакетов. -- Добавлен механизм позволяющий унифицировать создание пакетов для конечного дистрибутива. -- Добавлена поддержка добавления пользовательских скриптов в скрипты запуска приложений. -- Добавлена поддержка сборки системных зависимостей для Windows. -- Добавлена поддержка RPATH для Linux. Теперь cqtdeployer может самостоятельно определить нужный qmake для развертывания приложения. -- Добавлена поддержка поиска необходимой зависимости по имени библиотеки. -- Добавлена поддержка Qt библиотек из репозиториев Linux дистрибутивов. -- Добавлены новые псевдонимы для команды запуска (cqt и cqtdeployer.cqt) для быстрого развертывания приложений. -- Добавлена поддержка собственного имени команды для windows. Теперь вы можете запустить cqtdeployer написав cqtdeployer в cmd и powershell. - -### Новые опции -- init - инициализирует файл cqtdeployer.json (файл конфигурации). Например: «cqtdeployer init» - для инициализации конфигурации одного пакета. "cqtdeployer -init multi" - для инициализации конфигурации нескольких пакетов. -- noCheckRPATH - отключает автоматический поиск путей к qmake в исполняемых файлах (Только Linux). -- noCheckPATH - отключает автоматический поиск путей к qmake в системном окружении. -- extractPlugins - заставляет извлекать все зависимости плагинов. -- qif - создает инсталлятор в конце развертывания. -- extraLibs - добавляет шаблон дополнительной библиотеки, которая должна будет попасть в дистрибутив. -- customScript - добавляет пользовательский скрипт в скрип запуска приложения. -- -targetPackage [package;tar1,package;tar2] - используется для формирования пакетов, обозначает списки целевых файлов для определенных пакетов. -- recOut - указывает в какую папку будут складываться ресурсы после развертывания. -- name - устанавливает имя пакета. -- description - устанавливает описание пакета -- deployVersion - устанавливает версию пакета -- releaseDate - дата релиза пакета. -- icon - иконка пакета. -- publisher - издатель пакета. -- qifStyle - Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar -- qifBanner - Устанавливает путь к png-файлу баннера. -- qifLogo - Устанавливает путь к файлу логотипа png. - ---- - -## CQtDeployer 1.3.2 -- Исправлено #218 (CQtDeployer добавлял sh-скрипты для целевых библиотек.) -- Исправлено #217 (опция qmake не работала с файлом конфигурации.) ---- - -## CQtDeployer 1.3.1 -- Исправлена задача #191 (команда игнорирования для плагинов) -- Исправлена задача #192 (неверный путь при создании файла развертывания) -- Исправлены абсолютные пути к файлу conf ---- - -## CQtDeployer 1.3.0 -- Добавлена поддержка qt.conf для Linux -- Добавлена поддержка конфигурационного файла для проекта (deploy.json) со всеми правилами развертывания, для создания deploy.json используйте флаг -confFile [./path/to/file.json]. -- Добавлена поддержка выходных каталогов для всех файлов развертывания #145, -- Добавлена поддержка развертывания WebEngine #146. -- Добавлена поддержка нескольких пакетов в установщике cqtdeployer. -- Переименован проект из Console-QtDeployer в CQtDeployer #139 -- Исправлено развертывание системных библиотек в linux #172 -- Добавлены новые тесты приложения -- Удален флаг noLibC и добавлен флаг deploySystem-with-libc. Если вам нужен в программе libc используйте флаг deploySystem-with-libc, а если нет то пользуйтесь deploySystem. -- Заменен флаг always-overwrite на noOverwrite, теперь все файлы по умолчанию перезаписываются, используйте noOverwrite для отключения перезаписи. ---- - -## CQtDeployer 1.2.3 -- Добавлена поддержка qt.conf для сборок Windows #130 -- Исправлена ошибка #129, теперь флаг «очистить» удаляет только скопированные файлы. -- Исправлен флаг ignoreEnv -- Исправлен флаг deploySystem ---- - -## CQtDeployer 1.2.2 -- Добавлен новый флаг noLibc для игнорирования библиотек libc и li-linux -- Исправлена #125 ошибка развертывания системных библиотек (работает с простыми проектами, для больших проектов не рекомендуется) -- Исправлен флаг ignoreEnv ---- - -## CQtDeployer 1.2.1 -- Добавлен новый флаг игнорирования (ignoreEnv). Этот флаг отключает ненужную среду -- Добавлена поддержка QIFW (онлайн-установщик для Windows и других дистрибутивов Linux) -- Добавлено обновление утилиты для Windows и других дистрибутивов Linux (не Snap) -- Исправлена ошибка № 116 (копирование файлов со съемного носителя) -- Исправлена ошибка № 115 (создание цели в папке с русским именем) -- Исправлен большой размер версии msvc -- Исправлено кросс-развертывание Linux >> Windows -- Удалены старые скрипты сборки ---- - -## CQtDeployer 1.2.0 -- Добавлен собственный сканер зависимостей qml. -- Перешел на новый [сканер PE-Lib](https://github.com/QuasarApp/pe-parse/tree/7138bb218a05c81d825728ba8a0a6f6a56c4fdbc). -- Перешел на новый [ELF-lib сканер](https://github.com/qt/qttools/blob/b0147a5d79ce7a7e77a24f36aaddfacb1a1517c8/src/shared/winutils/elfreader.h). -- Добавлены новые юнит-тесты. -- Добавлена поддержка версии Snap (только домашний каталог). -- Добавлен новый флаг qmlExtern - для использования сканера импорта qt qml. -- Добавлена поддержка уровней подробного журнала (0-3). -- Исправлен журнал развертывания приложения. -- Исправлено развертывание приложения в версии Snap. ---- - -## CQtDeployer 1.1.2 -- Добавлена поддержка переводов -- Добавлен флаг для отключения развертывания переводов -- Добавлена strip для Linux -- Добавлены юнит-тесты -- Исправлено развертывание в динамической версией -- Исправлена ошибка развертывания на текущем каталоге с привязкой и статической версией. ---- - -## CQtDeployer 1.1.1 -- Исправлена сборка qml в диномисечкой версии -- Исправленна работа флага -recursiveDepth -- Исправленна работа флага -libDir -- Исправленно копирование библиотек по ссылке -- Почищен вывод приложения, часть лога перенесенна в verbose ---- - -## CQtDeployer 1.1.0 -- Добавлена поддержка windows (только динамическая линковка) -- Добавлена поддержка snap (теперь доступно в snapstore) -- Добавлены сборочные скрипты для snap -- Добавлен флаг binDir позволяющий рекурсивно захватывать exe dll и so -- Изменена логика работы флага bin теперь если выбрать в место файла папку то будет захвачено все ее содержимое -- Изменена и исправлена логика работы флага clear теперь он чистит все развернутое содержимое по определенному таргету. -- Добавлен флаг targetDir который определяет место где будет лежать развернутый проект -- Изменена структура развернутого проекта, теперь все оболочки запуска лежат в корне а бинарники в папке bin, для каждого бинарника создается одноименный скрипт запуска. -- Удален старый флаг runScript из-за смены логики развертывания -- Добавлен флаг verbose для отладки по -- Исправлены ошибки производительности ---- - -## CQtDeployer 1.0.2 -- Добавлен скрипт для сборки (динамический и статический выпуск) -- Добавлен флаг -libDir для установки дополнительного пути для дополнительных библиотек приложения -- Добавлен флаг -extraPlugin для установки дополнительного пути для дополнительных плагинов приложения -- Добавлена сборка только для С библиотек -- Исправленно развертывание -- Исправлен сценарий запуска -- Исправлена статическая сборка ---- - -## CQtDeployer 1.0.1 -- Исправлена ошибка развертывания qml (избыточность) -- Исправлен скрипт запуска приложения - ---- - -## CQtDeployer 1.0.0 -- Добавлен флаг runScript -- Добавлен флаг allQmlDependes -- Исправлена ошибка развертывания qml -- Исправлена ошибка развертывания плагинов -- Добавлена поддержка статической сборки - - diff --git a/md/ru/CompareFeatures.md b/md/ru/CompareFeatures.md deleted file mode 100644 index ffeb071..0000000 --- a/md/ru/CompareFeatures.md +++ /dev/null @@ -1,14 +0,0 @@ -# Сравните особенности дистрибутивов CQtDeployer - - -| Название функции | Классическая версия linux (установщик) | Snap версия | Windows версия | -|---|---|---|----| -| Автоматические обновляется | Нет | Да | Нет | -| Онлайн-обновления | Да | Да | Да | -| Поддержка системных библиотек | Да | Да | Да | -| Поддержка создания установщиков | Да | Да | Да | -| Поддержка создания архивов | Да | Да | Да | -| Поддержка поиска библиотек и cmake из среды | Да | Нет | Да | -| Поддержка поиска qmake из RPATH | Да | Да | Нет -| Поддержка команды 'strip' | Да | Нет | Нет | -| Поддержка работы с qmake из системного репозитория ОС| Да| Нет | Нет | diff --git a/md/ru/DEB.md b/md/ru/DEB.md deleted file mode 100644 index 0070bda..0000000 --- a/md/ru/DEB.md +++ /dev/null @@ -1,46 +0,0 @@ -## Общие правила использования DEB - -#### Доступно с версии CQtDeployer 1.5 - -### Как использовать опцию DEB - -Просто добавьте в cqtdeployer опцию «deb». - -#### Например: - -``` bash - cqtdeployer ... deb -``` - -Где: -* ** ... ** - список других опций. -* ** deb ** - опция для создания deb пакетов. - - -По умолчанию cqtdeployer создает один deb пакет . -Если вы хотите создать несколько пакетов, вы должны использовать [Параметры управления пакетами](Options.md) -Чтобы создать новый пакет, используйте -targetPackage [package; tar1] - -cqtdeployer создает вуи пакет для каждого пакета. - -Где: - -* **package** - это название пакета -* **tar1** - это имя цели, которая должна быть включена в этот пакет. - -Или вы можете описать пакеты в [файле конфигурации](DeployConfigFile.md) - - -```JSON -{ -"targetPackage": [ - [ - "package", - "Tar1" - ], -], -"deb": true -} -``` - -# Использование собственных шаблонов для создания деб пакетов \ No newline at end of file diff --git a/md/ru/DeployConfigFile.md b/md/ru/DeployConfigFile.md deleted file mode 100644 index ccddf55..0000000 --- a/md/ru/DeployConfigFile.md +++ /dev/null @@ -1,222 +0,0 @@ -## Файл развертывания -**Файл развертывания** - это json файл, содержащий в себе параметры для cqtdeployer. Данный файл поддерживает все параметры кроме confFile, так как данный параметр отвечает за подключение и инициализацию самого файла. - -### Структура файла конфигурации -```json -{ - "Флаг": true/false, - "Параметр": "Значение", - "Параметер с поддержкой перечислений": [ - "Значение 1", - "Значение 2", - "Значение 3", - ], - "Параметр с поддержкой многоуровневых перечислений": [ - [ - "Значение A1", - "Значение A2" - ], - [ - "Значение B1", - "Значение B2" - ], - [ - "Значение C1", - "Значение C2" - ], - ] - -} -``` - -Подробно о параметрах cqtdeployer читайте в разделе [Параметры](Options). - -Примеры содержимого данного файла: - -Файл без использования параметров с перечислениями -```json -{ - "noOverwrite": false, - "bin": "./", - "binDir": "./", - "qmlDir": "./", - "deploySystem": false, - "deploySystem-with-libc": false, - "qmake": "my/custom/path/to/qmake", - "ignore": "ignoreLib.dll", - "ignoreEnv": "/my/ignore/path", - "clear": true, - "force-clear": false, - "allQmlDependes": false, - "libDir": "./", - "recursiveDepth": 3, - "extraLibs": "myExtraLib (libssl)", - "extraPlugin": "myExtraPulgin (platforms)", - "targetDir": "./Distro", - "targetPackage": "", - "noStrip": false, - "extractPlugins": false, - "noTranslations": false, - "qmlOut": "qml", - "libOut": "lib", - "trOut": "tr", - "pluginOut": "plug", - "binOut": "bin", - "recOut": "rec", - "verbose": 3, - "qif": false, - "noCheckRPATH": false, - "noCheckPATH": false, - "name": "mainApplication", - "description": "this is description for default package", - "deployVersion": "1.0.0", - "releaseDate": "yyyy-MM-dd", - "icon": "/path/main/icon.png", - "publisher": "main team", - "customScript": "echo 'I am use custom script!!!'" -} - -``` - -Файл с использованием параметров с перечислениями -``` json -{ - "noOverwrite": false, - "bin": "./", - "binDir": "./", - "qmlDir": [ - [ - "package2", - "./TestQMLWidgets/" - ], - [ - "./qml/for/All" - ] - ], - - "deploySystem": false, - "deploySystem-with-libc": false, - "qmake": "this parameter should contain the path to your qmake, for Windows this field is required. On Linux, you can remove it, then qmake will be found by rpath.", - "ignore": "ignoreLib.dll", - "ignoreEnv": "/my/ignore/path", - "clear": true, - "force-clear": false, - "allQmlDependes": false, - "libDir": "./", - "recursiveDepth": 3, - "extraLibs": "myExtraLib (libssl)", - "extraPlugin": "myExtraPulgin (platforms)", - "targetDir": "./Distro", - "targetPackage": [ - [ - "/package1/", - "TestOnlyC" - ], - [ - "/package2/", - "TestQMLWidgets" - ] - ], - "noStrip": false, - "extractPlugins": false, - "noTranslations": false, - "qmlOut": "qml", - "libOut": "lib", - "trOut": "tr", - "pluginOut": "plug", - "binOut": "bin", - "recOut": "rec", - "verbose": 3, - "qif": false, - "noCheckRPATH": false, - "noCheckPATH": false, - "name": [ - [ - "package2", - "package2Application" - ], - [ - "mainApplication" - ] - ], - "description": [ - [ - "package2", - "this is description for package 'package2'" - ], - [ - "this is description for default package" - ] - ], - "deployVersion": [ - [ - "package2", - "1.0.0" - ], - [ - "1.0.0" - ] - ], - "releaseDate": [ - [ - "package2", - "yyyy-MM-dd" - ], - [ - "yyyy-MM-dd" - ] - ], - "icon": [ - [ - "package2", - "/path/icon.png" - ], - [ - "/path/main/icon.png" - ] - ], - "publisher": [ - [ - "package2", - "team of package2" - ], - [ - "main team" - ] - ], - "customScript": "echo 'I am use custom script!!!'" -} - -``` - -Цель файла- упростить вызов cqtdeployer и переместить часть или все параметры в файл. Все параметры, указанные в файле, имеют более низкий приоритет, чем параметры, добавленные в консоль при запуске. - -### Создание файла - -#### Способ 1 - -1. Вызовите `cqtdeployer init` Для инициализации файла для приложения состоящего из одного пакета. - Или `cqtdeployer -init multi` Для инициализации файла для проекта с несколькими пакетами. -2. Откройте CQtDeployer.json и отредактируйте его под свои нужды. -3. Вызовите cqtdeployer в дериктории с файлом CQtDeployer.json, или укажите путь к нему используя флаг -confFile path/to/my/CQtDeployer.json - -#### Способ 2 -Вызовите cqtdeployer с нужным вам набором параметров и укажите путь к файлу при помощи флага -confFile (файл должен отсутствовать). Если файл будет существовать, то cqtdeployer начнет выгружать из него параметры. - -Пример: -``` bash -cqtdeployer -confFile deploy.json -bin CQtDeployerInstaller -targetDir ./test -qmlOut myqml -binOut mybin -libOut mylib -pluginOut myplugins noStrip noTranslations -recursiveDepth 5 -extraPlugin sqldrivers,audio,mediaservice force-clear deploySystem noOverwrite -``` -Где: - -* cqtdeployer - вызов cqtdeployer -* -confFile deploy.json - путь к файлу, который нужно создать -* "-bin CQtDeployerInstaller -targetDir ./test -qmlOut myqml -binOut mybin -libOut mylib -pluginOut myplugins noStrip noTranslations -recursiveDepth 5 -extraPlugin sqldrivers,audio,mediaservice force-clear deploySystem noOverwrite" - необходимые параметры. - - -### Использование файла развертывания. -Чтобы cqtdeployer начал читать параметры из файла, используйте флаг -confFile [путь к файлу] - -#### Пример: -cqtdeployer -qmake ~/Qt/bin/qmake -confFile ./deploy.json - diff --git a/md/ru/Description.md b/md/ru/Description.md deleted file mode 100644 index ef25c92..0000000 --- a/md/ru/Description.md +++ /dev/null @@ -1,9 +0,0 @@ -### Что такое CQtDeployer - -CQtDeployer - это утилита для извлечения всех зависимых библиотек исполняемых файлов и создания сценария запуска для вашего приложения. - -Основные отличия этой программы: -* Производительность - эта программа развертывает приложение в несколько раз быстрее (до 10 секунд) -* Гибкость - эта утилита имеет флаги, которые помогут вам настроить деплоинг под ваши нужды и нужды вашего проекта -* Crossdeploy - приложение поддерживает Windows и дистрибутивы Linux, это означает, что вы можете использовать его не только для развертывания проекта для вашей платформы, но и для развертывания проекта в Linux для Windows и наоборот. -* Упаковка - эта утилита может создавать установочные файлы и пакеты, для вашего приложения. diff --git a/md/ru/DisableShortcats.md b/md/ru/DisableShortcats.md deleted file mode 100644 index e22bab2..0000000 --- a/md/ru/DisableShortcats.md +++ /dev/null @@ -1,136 +0,0 @@ -# Отключение ярлыков для многоцелевого дистрибутива в структуре Qt Installer. - -Иногда нам нужно отключить автоматическое создание ярлыков для некоторых приложений. -Для решения этой проблемы я рекомендую переопределить шаблон фреймворка установщика qt по умолчанию. - -Для этого вам нужно извлечь шаблон по умолчанию для вашего случая. Вы можете получить дополнительную информацию на этой [странице](ExtractDefaultsTemplates.md). - -## Кейс - -У меня есть дистрибутив, развернутый с помощью следующей команды: - -```bash -cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif -``` -### где: -* **-bin myExecutableFile1, myExecutableFile2** - устанавливает исполняемые файлы. -* **-qmake /qmake/path** - устанавливает путь к вашему qmake. -* **qif** - опция для включения дистрибутивов Qt Installer FrameWork. -* **-targetPackage MyDistribution** - устанавливает новое имя для пакета распространения. - -Чтобы добавить myExecutableFile2 в список исключений создания ярлыка, вам необходимо проделать следующие шаги: - - - -1. Извлеките шаблон по умолчанию. - Для извлечения шаблона по умолчанию вам необходимо добавить в свою команду параметр getDefaultTemplate. Также вам следует добавить опцию targetDir для установки пути к выходным файлам. - - ```bash - cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif getDefaultTemplate -targetDir qifTemplate - ``` - - ### где: - * **- targetDir qifTemplate** - устанавливает целевой каталог для tempalte. - * **getDefaultTemplate** - опция для извлечения шаблона по умолчанию. - - Итак, после этого вы получите шаблон qif по умолчанию в targetDir. - ```bash - ~/qifTemplate$ tree - . - └── defaultQIFWTemplate - ├── config - │ ├── config.xml - │ └── controlScript.qs - └── packages - └── Application - └── meta - ├── installscript.qs - └── package.xml - - 5 directories, 4 files - - ``` - -2. Измените шаблон по умолчанию. - Для отключения ярлыков вам необходимо изменить метод generateShortCutCmd вашего пакета. В моем случае это **defaultQIFWTemplate/packages/Application/meta/installscript.qs** - - Это реализация сценария установки по умолчанию: - ``` js - function Component() { - - } - - function extractFileName(path) { - const fullName = path.substring(path.lastIndexOf('/') + 1); - - const index = fullName.lastIndexOf('.'); - if (index >= 0) { - return fullName.substring(0, index) - } - - return fullName; - } - - function generateShortCutCmd(cmd) { - if (systemInfo.kernelType === "winnt") { - - console.log("create icons!!! on Windows"); - - component.addOperation( - "CreateShortcut", - "@TargetDir@/" + cmd + ".bat", - "@DesktopDir@/" + extractFileName(cmd) + ".lnk", - "iconPath=@TargetDir@/icons/Icon.png", - "iconId=0"); - - } - - - if (systemInfo.kernelType === "linux") { - console.log("create icons!!! on LINUX"); - const name = extractFileName(cmd); - component.addOperation("CreateDesktopEntry", - "@HomeDir@/.local/share/applications/" + name + ".desktop", - "Version=@Version@\n - Type=Application\n - Terminal=false\n - Exec=\"@TargetDir@/" + cmd + ".sh\"\n - Name=" + name + "\n - Icon=@TargetDir@/icons/Icon.png\n - Name[en_US]=" + name); - - console.log("create icons!!! on LINUX done"); - } - } - - Component.prototype.createOperations = function() { - // call default implementation to actually install README.txt! - component.createOperations(); - - const cmdArray = []; // will be changed in cqtdeployer - - cmdArray.forEach( function (item){ - generateShortCutCmd(item); - }); - - } - ``` - - Добавьте в начало метода generateShortCutCmd следующие строки для отключения генерации ярлыков приложения *"myExecutableFile2"*: - - ``` js - function generateShortCutCmd(cmd) { - if (cmd.include("myExecutableFile2")) - return; - ... - } - ``` - -3. Добавьте измененный шаблон в команду развертывания. - ```bash - cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif qifTemplate/defaultQIFWTemplate - ``` - -Все сделано. Теперь у вас есть дистрибутив с отключенным ярлыком для приложения myExecutableFile2. - -## Примечание. Если вы используете файл конфигурации или другую команду развертывания, ваша конфигурация развертывания должна соответствовать конфигурации генерации шаблона. \ No newline at end of file diff --git a/md/ru/EnvironmentVariables.md b/md/ru/EnvironmentVariables.md deleted file mode 100644 index 5e777d7..0000000 --- a/md/ru/EnvironmentVariables.md +++ /dev/null @@ -1,43 +0,0 @@ -# Переменные окружения CQtDeployer -Эта страница содержит информацию о переменных содержащихся в скрипте запуска по умолчанию. - -## Инициализация -Все переменные окружения инициализируются в скрипте запуска по умолчанию. Поэтому, если вы используете опцию runScript, вам необходимо вручную воссоздать все необходимые переменные. - - -## Список стандартных переменных - -| Имя переменной | Описание | -| --- | --- | -| CQT_PKG_ROOT | Эта переменная содержит путь к корню текущего пакета. -| CQT_RUN_FILE | Эта переменная содержит путь к скрипту запуска используемого приложения. | - - -## Описания определений - -**корень текущего пакета** - Этот корень является локальным корнем для любых отдельных пакетов. - - -Пример : -``` 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/md/ru/ExtraFiles.md b/md/ru/ExtraFiles.md deleted file mode 100644 index 8f87a33..0000000 --- a/md/ru/ExtraFiles.md +++ /dev/null @@ -1,104 +0,0 @@ -# Добавление дополнительных данных в дистрибутив. - -CQtDeployer поддерживает работу с дополнительными файлами данных. - -Для этого используйте параметры -extraData и -extraDataOut. - -## Примеры: - -### Добавление собственных файлов в корневой каталог дистрибутива. - -``` -cqtdeployer -extraData путь / к / my / customFile -``` - -Или в configFile.json - -``` json -{ - ... - "extraData": "./path/to/my/customFile" - ... -} -``` - -Эта команда поддерживает список аргументов. - - -``` bash -cqtdeployer -extraData path/to/my/customFile,path/to/my/customFile2,path/to/my/customFile3 -``` - -Или в configFile.json - -``` json -{ - ... - "extraData": [ - "./path/to/my/customFile", - "./path/to/my/customFile2", - "./path/to/my/customFile3" - ] - ... -} -``` - -### Изменение расположения дополнительных файлов данных. - -Для изменения местоположения используйте параметры extraDataOut. Эта опция меняет путь назначения относительно корня дистрибутива. - -### Пример. Добавьте пользовательские скрипты в папку скриптов в Distribution. - -``` bash -cqtdeployer -extraData /path/to/myScripts.sh,/another/path/to/myScripts.sh -extraDataOut scripts -``` - -Или в configFile.json - -``` json -{ - ... - "extraData": [ - "./path/to/myScripts.sh", - "./another/path/to/myScripts.sh" - ], - "extraDataOut": "скрипты" - ... -} -``` - -## Пакеты -Опции extraData и extraDataOut поддерживают работу с пакетами. Дополнительную информацию о пакетах см. На [странице](Packing.md) упаковки. - -Иногда нам нужно создать многопакетное приложение. Например, создайте установщик для приложения client-server с клиентскими и серверными приложениями. Клиент и сервер имеют собственные файлы конфигурации по умолчанию. Мы добавляем файлы config с помощью опции extraData. - -Для создания большого дистрибьютора я рекомендую использовать [confFile](DeployConfigFile.md). - -## Пример применения мультиупаковки. - - -``` json -{ - - "корзина": [ - "myClientExecutable", - "myServerExecutable" - ], - - "targetPackage": [ - ["Клиент", "myClientExecutable"], - ["Сервер", "myServerExecutable"] - ], - - "extraData": [ - ["Клиент", "./path/to/clientConfig.conf"], - ["Сервер", "./path/to/serverConfig.conf"] - ], - "extraDataOut": [ - ["Клиент", "defaultConfigurations"], - ["Сервер", "defaultConfigurations"] - ] -} -``` - -Эта конфигурация создает дистрибутив с двумя приложениями (клиент и сервер). Каждое приложение имеет собственный файл конфигурации в папке defaultConfigurations. diff --git a/md/ru/ExtractDefaultsTemplates.md b/md/ru/ExtractDefaultsTemplates.md deleted file mode 100644 index d570b0b..0000000 --- a/md/ru/ExtractDefaultsTemplates.md +++ /dev/null @@ -1,52 +0,0 @@ -# Извлечение шаблонов по умолчанию - -Иногда вам нужно создать свои собственные шаблоны для установщиков или пакетов 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. -Если вы хотите получить больше информации о доступных пакетах, смотрите упаковку [страница](Packing.md). \ No newline at end of file diff --git a/md/ru/Guide.md b/md/ru/Guide.md deleted file mode 100644 index 9fef22f..0000000 --- a/md/ru/Guide.md +++ /dev/null @@ -1,580 +0,0 @@ -# Создания установщика прямо из qt creator. -# Как развернуть приложение C ++ - -В этой статье я описываю процессы развертывания приложения c++/qt с помощью cqtdeployer. - -## Рекомендация -Если вам нужна максимальная стабильность вашего дистрибутива и вы хотите запускать свое приложение в разных дистрибутивах с разными версиями, вам необходимо использовать Qt из официального [build](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5). - -## Кейс -В этом случае мы развертываем приложение Qt GUI для Ubuntu 16.04, Ubuntu 18.04 и Ubuntu 20.04++. - -**Если вы хотите поддерживать все дистрибутивы, начиная с Ubuntu 16.04, вам необходимо собрать и развернуть приложение в более старом дистрибутиве (в моем случае это 16.04)** - -## Установить CQtDeployer -Если вы хотите использовать системный qt из своей ОС, установите [классическую](https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run) версию cqtdeployer. - -``` bash -wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run -``` - -``` -chmod + x LinuxInstaller.run -./LinuxInstaller.run -``` - - -Выберите последнюю стабильную версию (1.4) - - - -Выполнено. - -Если вы используете официальную сборку qt, вы можете использовать snap-версию cqtdeployer. - -``` -sudo snap install cqtdeployer -``` - -После установки добавьте необходимые разрешения. - -``` -sudo snap connect cqtdeployer:process-control -sudo snap connect cqtdeployer:removable-media -sudo snap connect cqtdeployer:system-backup -``` - -Выполнено!!! - -## Развертывание приложения Qt GUI - -### Разверните исполняемый файл. - -* Для систем Linux: -```bash -cqtdeployer -bin myexecutable -``` - -* Для систем Windows: -``` bash -cqtdeployer -bin myexecutable.exe -qmake C: /Qt/5.15.0/min_gw/bin/qmake.exe -``` - -* Для кроссплатформенной сборки (Linux -> Windows) -``` bash -cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/ bin / qmake -``` - -## Дополнительные параметры - -Если вы используете дополнительные библиотеки, просто добавьте путь для cqtdeployer к используемым библиотекам. -``` bash -cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -``` - -Если вы хотите найти библиотеки рекурсивно из пути libDir, просто добавьте параметр рекурсивной глубины. -``` bash -cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -``` - -Если ваше приложение использует qml, просто добавьте опцию qmlDir -``` bash -cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources -``` - -Если вы хотите создать простой установщик для своего приложения, просто добавьте опцию gif. -``` -cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -``` - -Если cqtdeployer не нашел qmake, добавьте параметр -qmake в команду вызова. - -``` -cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake/path/to/my/qmake - -``` - -# На живом примере animation из [Примеров Qt](https://doc.qt.io/qt-5/qtquick-animation-example.html) - - -1. Собираем проект в релизную сборку - 1. Выполняем qmake с опцие -r для релизной сборки. - - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . - ``` - - 2. Вызываем ваш make generator - - * Для Linux: - ```bash - make -j${nproc} - ``` - * Для Windows - ```bash - Qt/Tools/QtCreator/bin/jom.exe - ``` - - ``` bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp - /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp - /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_animation.o qrc_animation.cpp - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp - g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread - ``` -3. Находим наш получившийся исполняемый файл - Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** - В моем случае исполняемый файл лежит в корневом катологе проекта. - ``` bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree - . - ├── animation # Вот он. - ├── animation.pro - ├── animation.qml - ├── animation.qmlproject - ├── animation.qrc - ├── basics - │ ├── animators.qml - │ ├── color-animation.qml - │ ├── images - │ │ ├── face-smile.png - │ │ ├── moon.png - │ │ ├── shadow.png - │ │ ├── star.png - │ │ └── sun.png - │ └── property-animation.qml - ├── behaviors - │ ├── behavior-example.qml - │ ├── FocusRect.qml - │ ├── SideRect.qml - │ ├── tvtennis.qml - │ └── wigglytext.qml - ├── doc - │ ├── images - │ │ └── qml-animations-example.png - │ └── src - │ └── animation.qdoc - ├── easing - │ └── easing.qml - ├── main.cpp - ├── main.o - ├── Makefile - ├── pathanimation - │ └── pathanimation.qml - ├── pathinterpolator - │ └── pathinterpolator.qml - ├── qrc_animation.cpp - ├── qrc_animation.o - ├── qrc_shared.cpp - ├── qrc_shared.o - └── states - ├── qt-logo.png - ├── states.qml - └── transitions.qml - - 10 directories, 33 files - ``` - -4. Вызываем cqtdeployer для формирования Базового Дистрибутива - - Для Linux: - ``` bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - ``` - Для Windows: - ``` bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe - ``` - - ``` bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - Info: Deploy ... - Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit - Info: target deploy started!! - Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir - Info: platform : libqvnc is disabled - Info: platform : libqvnc is disabled - Info: platform : libqwebgl is disabled - Info: platform : libqwebgl is disabled - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 - Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm - Info: try deploy msvc - Info: deploy done! - Info: copy ::/shared/Distributions/Templates/Icon.png - Error: not exits - Info: [0] Parsed arguments, ok. - - Info: [2] Collecting information about available packages... - - Info: [4] Found subdirectory "Application" - - Info: [4] - it provides the package "Application" - "1.0" - - Info: [4] Copying component data for "Application" - - Info: [5] Compressing data directory "bin" - - Info: [21] Compressing data directory "icons" - - Info: [31] Compressing data directory "lib" - - Info: [11111] Compressing data directory "plugins" - - Info: [11740] Compressing data directory "qml" - - Info: [11786] Compressing data directory "translations" - - Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") - - Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" - [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" - - Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" - - Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" - - Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" - - Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" - [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" - - Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" - - Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" - - Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" - [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" - - Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" - - Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" - - Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" - - Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" - - Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" - - Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" - - Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" - - Info: [12360] done. - - Info: [12360] Begin to copy configuration file and data. - - Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" - - Info: [12360] done. - - Info: [12360] Read dom element: <Name>animation</Name>. - - Info: [12360] Read dom element: <Version>1.0</Version>. - - Info: [12360] Read dom element: <Title>animation</Title>. - - Info: [12360] Read dom element: <Publisher>Company</Publisher>. - [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. - [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. - - Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. - [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. - - Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. - - Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" - - Info: [12360] done. - - Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. - [12360] Read dom element: <ProductUrl></ProductUrl>. - - Info: [12360] done. - - - Info: [12362] Creating the binary - - Info: [12407] Creating resource archive for "Application" - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") - - Info: [12449] Cleaning up... - ``` - -5. Готово Дистрибутив был сохранен в папку **DistributionKit** -```bash -andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run -``` - - -После установки буду созданы все необходимые ярлыки. - - - - - - -## Интеграция с QtCreator - -К сожалению, на данный момент нет интеграции с qtcreator. -Единственный способ - включить цель сборки для **qmake** или **cmake** - -### qmake - -```qmake -QT_DIR= $$[QT_HOST_BINS] -win32:QMAKE_BIN= $$QT_DIR/qmake.exe -contains(QMAKE_HOST.os, Linux):{ - QMAKE_BIN= $$QT_DIR/qmake -} - -deploy.commands= cqtdeployer -bin $$DESTDIR/$$TARGET -qmake $$QMAKE_BIN -libDir $$PWD -qmlDir $$PWD -recursiveDepth 5 qif - -QMAKE_EXTRA_TARGETS += deploy - -``` - -### cmake -```cmake - find_program(Q_MAKE_EXE qmake) - - find_program(CQT_EXE cqtdeployer) - - IF(NOT EXISTS ${CQT_EXE}) - message("the cqtdeployer not exits please install the cqtdeployer and run cmake again!") - return() - endif(NOT EXISTS ${CQT_EXE}) - - ADD_CUSTOM_TARGET( - deploy - COMMAND cqtdeployer clear -bin ${CURENT_PROJECT} -qmake ${Q_MAKE_EXE} -libDir ${PROJECT_SOURCE_DIR} -qmlDir ${PROJECT_SOURCE_DIR} -recursiveDepth 5 - COMMENT "Deploy: cqtdeployer clear -bin ${CURENT_PROJECT} -qmake ${Q_MAKE_EXE} -libDir ${PROJECT_SOURCE_DIR} -qmlDir ${PROJECT_SOURCE_DIR} -recursiveDepth 5" - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - ) -``` - -Параметр **libDir** используется для установки путей к каталогам, в которых пути содержат зависимости вашего приложения, а параметр **qmlDir** используется для установки путей к каталогам, содержащих файлы qml, необходимые вашему приложению. В этом примере корень исходного кода приложения выбирается этими двумя параметрами. - -Параметр **recursiveDepth** используется для установки глубины поиска **libDir** и **qmlDir**. - -Параметр **qif** используется для создания установщика с использованием Qt Installer Framework. - - - -## Пример интеграции -1. Создаем тестовый проект - ``` qmake - QT += quick - - CONFIG += c++11 - - # You can make your code fail to compile if it uses deprecated APIs. - # In order to do so, uncomment the following line. - #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 - - SOURCES += \ - main.cpp - - RESOURCES += qml.qrc - - # Additional import path used to resolve QML modules in Qt Creator's code model - QML_IMPORT_PATH = - - # Additional import path used to resolve QML modules just for Qt Quick Designer - QML_DESIGNER_IMPORT_PATH = - - # Default rules for deployment. - qnx: target.path = /tmp/$${TARGET}/bin - else: unix:!android: target.path = /opt/$${TARGET}/bin - !isEmpty(target.path): INSTALLS += target - - - QT_DIR= $$[QT_HOST_BINS] - win32:QMAKE_BIN= $$QT_DIR/qmake.exe - contains(QMAKE_HOST.os, Linux):{ - QMAKE_BIN= $$QT_DIR/qmake - } - - DESTDIR=$$PWD/Build - - deploy.commands= cqtdeployer -bin $$DESTDIR/$$TARGET -qmake $$QMAKE_BIN -libDir $$PWD -qmlDir $$PWD -recursiveDepth 5 qif - - QMAKE_EXTRA_TARGETS += deploy - - ``` - -2. Открываем панель управления проектом -  - -3. Выбираем релизную сборку. -  - - -3. Добавляем "Особый этап сборки" -  - -4. В поле "Make arguments" добавляем наш этап развертывания "Deploy" -  - -5. Сохраняем -6. Запускаем сборку. - -#### На выходе вы получите папку DistributionKit с установщиком вашего приложения. diff --git a/md/ru/Home.md b/md/ru/Home.md deleted file mode 100644 index f33670e..0000000 --- a/md/ru/Home.md +++ /dev/null @@ -1,25 +0,0 @@ -# Добро пожаловать в "C Qt Deployer"! -#  - -*************************** - -# Основные разделы - -* [Описание 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) -* [Отключение стандартных ярлыков](DisableShortcats.md) - - -## Поддержите проект -Если вам нравится то, что мы делаем, и это приносит вам пользу, вы можете поддержать проект на официальной странице [QuasarApp в Patreon](https://www.patreon.com/QuasarApp) \ No newline at end of file diff --git a/md/ru/Options.md b/md/ru/Options.md deleted file mode 100644 index 263f90e..0000000 --- a/md/ru/Options.md +++ /dev/null @@ -1,148 +0,0 @@ - - -## Общие правила использования параметров -``` -cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 -``` - -* Все параметры должны начинается с знака '-' за исключением параметров, из котегории "Флаги". -* После указания нужного параметра нужно в обязательном порядке указать значение -* Некоторые параметры поддерживают перечисления (массивы значений). При инициализации таких параметров укажите список значений через ',' без прабелов. Если вы используете какой либо язык программирования и вызываете процесс cqtdeployer то массив значений должен передаваться как 1 параметр. -* Некоторые параметры поддерживают пересисления с возможностью выбрать цель для которой будет применен флаг. Цель и значения разделяются при помощи знака ';'. Пример -libOut target1;value1,target2;value2,defaultValue. -* Для включения какого либо флага достаточно просто включить в список опций имя флага. - -## Обозначения в таблице - - * **-binDir [params]** - параметр без поддержки массивов. - * **-bin [params,list]** - параметр c поддержкой массивов. В качестве разделителя используется ','. - * **-libOut [package;path,path]** - параметр c поддержкой выбора пакета для которого бутет установленно значение флага. В качестве разделителя используется ';'. Обратитте внимание что для перечисления значений параметра используется правило описанное выше. Последний параметр не имеет значение пакета, это значит что это значение будет установленно для всех не настроенных пакетов по умолчанию. - * **clear** - флаг - -## Определения в описании -**Системное окружение** - пути к системным библиотекам. - * Windows: - * Пути, определенные в переменной PATH. - * C:/Windows/System32 - * C:/Windows/SysWOW64 - - * Linux: - * Пути, определенные в переменных LD_LIBRARY_PATH и PATH. - * /usr/lib - * /lib - -**Развертываемые файлы** - это все файлы, которые будут скопированы в дистрибутив (включая исполняемые файлы) - -**Цели** - это все исполняемые файлы, отмеченные опцией bin. - -**Исполняемые файлы** - это все файлы в форматах PE, ELF и Mach-O. - -## Параметры: - -### Флаги - -| Option | Descriptiion | -|-----------------------------|-----------------------------------------------------------| -| init | проинициализирует файл cqtdeployer.json (файл конфигурации)| -| | Например: «cqtdeployer init» - для инициализации базовой конфигурации пакета| -| | "cqtdeployer -init multi" - для инициализации конфигурации нескольких пакетов| -| | "cqtdeployer -init single" - для инициализации конфигурации одного пакета | -| help / h | Показывает справку | -| clear | Удаляет все старые файлы (с прошлого запуска) | -| force-clear | Удаляет целевую директорию перед развертыванием | -| noStrip | Пропускает шаг strip | -| noTranslations | Пропускает файлы переводов | -| noOverwrite | Запрещает замену уже существующих файлов. | -| noCheckRPATH | Отключает автоматический поиск путей к qmake в исполняемых файлах.| -| noCheckPATH | Отключает автоматический поиск путей к qmake в системном окружении.| -| noRecursiveiIgnoreEnv | Отключает рекурсивное игнорирование переменной среды для флага ignoreEnv. | -| v / version | Показывает версию приложения | -| qif | Создаст установщик QIF для развертываемой программы" | -| | Примеры: cqtdeployer qif | -| | Начиная с версии CQtDeployer 1.5 вы можете указать путь к своему собственному шаблону установщика. | -| | Примеры: cqtdeployer -qif path/to/myCustom/qif. Подробнее можно посмотреть [здесь](QIF.md) | -| deb | Создаст deb пакет для развертываемой программы" | -| | Примеры: cqtdeployer deb | -| | Вы можете указать путь к своему собственному шаблону пакета. | -| | Примеры: cqtdeployer -deb path/to/myCustom/DEBIAN. Подробнее можно посмотреть [здесь](DEB.md) | -| deploySystem | Копирует все библиотеки кроме libc | -| | (не рекомендуется, так как занимает много памяти, возможны конфликты библиотек) | -| deploySystem-with-libc | Копирует все зависимости в том числе и libc, не рекомендуется использовать с gui приложения, в место этого используйте опцию deploySystem | -| noQt | Игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt. | -| allowEmptyPackages | Разрешите настраивать пустые пакеты. | -| getDefaultTemplate | Извлекает deb или qif шаблоны по умолчанию. Для получения дополнительной информации см. [Страницу](ExtractDefaultsTemplates.md) извлечения шаблонов по умолчанию. | -| noHashSum | Отключить вычисление хеш-суммы пакетов | - -### Параметры развертывания: - -| Option | Descriptiion | -|-----------------------------|-----------------------------------------------------------| -| -bin [list,params] | Развертываемый файл или папка. пример -bin ~/my/project/bin/,~/my/project/bin.exe. Для файлов: эти файлы будут безоговорочно скопированы в целевой каталог, независимо от их формата или суффикса. Для папок: CQtDeployer войдет в эти папки и нерекурсивно скопирует все развертываемые файлы в целевой каталог. Затем CQtDeployer извлечет все зависимости скопированных файлов. CQtDeployer будет искать зависимости в системной среде и в путях libDir. | -| -binPrefix [prefixPath] | Устанавливает путь префикса для опции bin. Пример: **-bin path/MyExecutable** - это тоже что и **-bin MyExecutable -binPrefix path** | -| -confFile [params] | Путь к файлу json со всеми конфигурациями развертывания. С помощью этого файла можно добавить нужные опции, тем самым упрастить вызов комманды в консоле. Однако пораметры в кансоле имеют больший приоритет чем в файле. Для получения дополнительной информации об этом флаге см. [Вики](DeployConfigFile) | -| -qmlDir [params] | Папка qml. пример -qmlDir ~/my/project/qml | -| -qmake [params] | Путь к qmake. пример | -| | -qmake ~/Qt/5.14.0/gcc_64/bin/qmake | -| -ignore [list,params] | Список библиотек для игнорирования | -| | Пример -ignore libicudata.so.56,libicudata2.so.56 | -| -ignoreEnv [list,params] | Список путей для игнорирования. | -| | Пример -ignoreEnv /bad/dir,/my/bad/Dir | -| -libDir [list,params] | Устанавливает дополнительные пути к библиотекам | -| | Пример -libDir ~/myLib,~/newLibs | -| -extraLibs [list,params] | Пример: «-extraLib mySql» - заставляет скопировать все библиотеки, имена которых содержат mySql, в папку проекта. Этот параметр не чувствителен к регистру в Windows и чувствителен к регистру на других платформах. Эта опция будет искать библиотеки только в системных средах, подобных **deploySystem**. | -| -customScript [scriptCode] | Установит дополнительный код в скрипты запуска. | -| -extraPlugin [list,params] | Устанавливает дополнительный путь для extraPlugin приложения| -| -recursiveDepth [params] | Устанавливает глубину поиска библиотек и глубину игнорирования окружения для ignoreEnv (по умолчанию 0) | -| -targetDir [params] | Устанавливает целевой каталог (по умолчанию это путь к первому развертываемому файлу)| -| -runScript [list,parems] | заставляет cqtdeployer заменить сценарий запуска по умолчанию на новый из аргументов параметра. Эта опция копирует все содержимое из входного файла и вставляет весь код в runScript.sh или .bat. Пример использования: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh"| -| -verbose [0-3] | Показывает дебаг лога | - -### Параметры управлениями пакетами: - -| Option | Descriptiion | -|-----------------------------|-----------------------------------------------------------| -| -targetPackage [package;tar1,package;tar2]| Создает новый пакет и добавляет в него 'tar1 и tar2'| -| -qmlOut [package;path,path] | Установит путь к папке с qml | -| -libOut [package;path,path] | Установит путь к папке с зависимостями | -| -trOut [package;path,path] | Установит путь к папке с файламми переводов | -| -pluginOut [package;path,path]| Установит путь к папке с плагинами | -| -binOut [package;path,path] | Установит путь к папке с исполняемыми файлами | -| -recOut [package;path,path] | Установит путь к папке с ресурсами | -| -extraDataOut [package;path,path] | Устанавливает путь к каталогу с дополнительными файлами данных. По умолчанию это корневой каталог дистрибутива. | -| -name [package;val,val] | Установит имя пакету. Если указать значение без префикса, то значение будет установленно пакету по умолчанию. | -| -description [package;val,val] | Установит описание пакету | -| -deployVersion [package;val,val]| Установит версию пакету | -| -releaseDate [package;val,val] | Установит дату выпуска пакету | -| -icon [package;val,val] | Установит путь к иконке или логотипу пакету | -| -publisher [package;val,val]| Установит Издательство (автора) пакету | -| -homePage [package;val,val] | Установит URL-адрес домашней страницы для пакета | -| -prefix [package;val,val] | Устанавливает префикс для пакета относительно целевого каталога | -| -extraData [package;val,val]| Добавляет дополнительные файлы или каталоги как цель. Выбранный каталог будет скопирован в расположение extraDataOut с сохранением собственной структуры.| -| -tr [package;val,val] | Добавляет qm файлы в папку переводов. | - -### Параметры управлениями целями: - -| Option | Descriptiion | -|-----------------------------|-----------------------------------------------------------| -| -icon [target;val,val] | Установит путь к иконке или логотипу для целе | - -### Параметры управления плагинами: - -| Option | Descriptiion | -| ----------------------------|---------------------------------------------------------- | -| -extraPlugin [пакет; val1; val2, SingeleVal] | Устанавливает дополнительный путь к стороннему плагину приложения | -| -enablePlugins [пакет; val1; val2, SingeleVal] | Включает дополнительные плагины для распространения. | -| -disablePlugins [пакет; val1; val2, SingeleVal] | Отключает плагины для распространения. | -| | Вы можете отключить любой плагин вашей сборки Qt, просто проверте список доступных плагинов в свой qlFolder/plugins папке. -| | Пример: Если вы хотите отключить плагин qxcb: -disablePlugins qxcb. Обратите внимание, что имя плагина указывается без его расширения. - -### Параметры QtInstallFramework: - -| Option | Descriptiion | -|-----------------------------|-----------------------------------------------------------| -| -qifStyle [path/to/style.css]| Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar | -| -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | -| -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | - - - -#### Пример: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.0/gcc_64/bin/qmake clear diff --git a/md/ru/Packing.md b/md/ru/Packing.md deleted file mode 100644 index e22d32c..0000000 --- a/md/ru/Packing.md +++ /dev/null @@ -1,130 +0,0 @@ -# Общая информация об упаковке ваших дистрибутивов в пакеты. - -## Типы упаковки -* Автоматически -* Вручную - -## Автоматические пакеты -Пакеты с этим типом создаются автоматически. -По умолчанию в дистрибутиве есть один основной пакет. Вы можете настроить его, используя [Параметры управления пакетами](Options.md). - -#### Пример (Установить новое имя для pacakge) -``` -ctdeployer ... -name "MyPackage" -``` - -Если в вашем дистрибутиве есть несколько исполняемых файлов, вы можете создать дистрибутив с несколькими пакетами. - -Один пакет может содержать от 1 до бесконечности исполняемых файлов. - -Для настройки пакета необходимо использовать параметр targetPackage. - -Пример использования: - -``` -cqtdeployer ... -targetPackage myPacage; target1, myPacage2; target2 -``` - -Где myPacage - это имя пакета, а target1 - имя исполняемого файла. -Итак, в этом примере создается 2 пакета из 2 целей. - -В следующем примере создается 2 пакета из 3 целей. -``` -cqtdeployer ... -targetPackage myPacage; target1, myPacage; target2, myPacage2; target3 -``` - - -Вы также можете сделать то же самое в файле конфигурации - -``` -{ -"targetPackage": [ - [ - "myPacage", - "target1" - ], - [ - "myPacage2", - "target2" - ] - ] -} -``` - -``` -{ -"targetPackage": [ - [ - "myPacage", - "target1" - ], - [ - "myPacage", - "target2" - ], - [ - "myPacage2", - "target3" - ] - ] -} -``` - - -## Ручные пакеты -Ручные пакеты - это пакеты, созданные по шаблону пользователя. -Например, у вас есть приложение, которое должно выполнять сложный сценарий в пакете debian или программе установки. -Итак, вам нужно создать свой шаблон и добавить путь к вашему шаблону для варианта пакета. - -пример - -``` -cqtdeployer ... -qif /path/to/my/template/installer -``` - -Папка /path/to/my/template/installer должна содержать папку с именем пакета. -например, я развертываю приложение с именем "MyExample", поэтому мой настраиваемый шаблон должен быть расположен в - /path/to/my/template/installer/MyExample путь. - -Для многопакетных дистрибутивов применяются те же правила. - -Ваша папка с шаблонами должна содержать папки с такими же названиями, что и пакеты. - -Пример: - -``` -{ -"targetPackage": [ - [ - "myPacage", - "target1" - ], - [ - "myPacage", - "target2" - ], - [ - "myPacage2", - "target3" - ] - ] -} -``` - -``` -~/path/to/my/template/installer $ tree -. -├── myPacage -│ └── ... -└── myPacage2 - └── ... - -``` - -### Примечание -Вы так же можете извлечь стандартный шаблон пакета для того что бы его переопределить если вас по каким то причинам не устраевает стандартная реализация. Подробнее как это сделать смотрите на этой [странице](ExtractDefaultsTemplates.md). - -## Доступные пакеты -* [Qt Install Framework](QIF.md) -* [ZIP-архив](ZIP.md) -* [Пакет DEB](DEB.md) diff --git a/md/ru/QIF.md b/md/ru/QIF.md deleted file mode 100644 index 925e322..0000000 --- a/md/ru/QIF.md +++ /dev/null @@ -1,109 +0,0 @@ -## Общие правила использования Qt Installer Framwork - -### Что такое Qt Installer Framwork - -**Qt Installer Framework** (QIF) предоставляет набор инструментов и утилит для создания установщиков для поддерживаемых настольных платформ Qt: Linux, Microsoft Windows и OS X. -В **CQtDeployer** QIF доступен в виде опции qif. - -### Как использовать опцию qif - -Опция qif является булевским параметром для создания Установочного файла. - -#### Пример: - -``` bash - cqtdeployer ... qif -``` - -Где: -* **...** - список других опций. -* **qif** - опция для использования qt installer framework с шаблоном по умолчанию. - - -По умолчанию cqtdeployer создаст установочный файл с одним пакетом в котором будет лежать весь ваш дистрибутив. -Если вы хотите его настроить вы должны использовать [параметр c поддержкой выбора пакета](Options.md) -Для создание нового пакета используйте флаг -targetPackage [package;tar1] - - -Где: - -* **package** - это имя пакета -* **tar1** - это название таргета который должен попасть в этот пакет. - -Или вы можете описать пакеты в [конфигурационном файле](DeployConfigFile.md) - -```json -{ -"targetPackage": [ - [ - "package", - "tar1" - ] -], -} -``` - -# Пользовательский Шаблон для QIF -Начиная с Версии CQtDeployer 1.5 вы можете использовать свой собственный шаблон установщика. Для этого вы должны передать в параметр qif путь к вашему шаблону. - -``` -cqtdeployer ... -qif /path/to/my/custom/qif/template -``` - -### Шаблон -Шаблон qif долже содержать 2 папки: -* packages -* config - -### Внимание -Название пакетов в папке packages должны совподать с названием пакетов при развертывание. -Например: -``` json -"targetPackage": [ - [ - "myCustomInstaller", - "tar1" - ] -], -``` - -``` bash -. -├── config -│ ├── config.xml -│ └── style.qss -└── packages - └── myCustomInstaller - └── meta - ├── installscript.qs - └── package.xml - -4 directories, 4 files - -``` - -Если имена папок не совподут с именами пакетов то CQtDeployer будет использовать стандартный пакет для QIF. - -Если у вас только один пакет, вы можете использовать опцию **name** для установки имени приложения. - -``` -cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller -``` - -#### Не забудьте переименовать папку вашего пакета в имя пакета из опции имени. - - -``` bash -. -├── config -│ ├── config.xml -│ └── style.qss -└── packages - └── myCustomInstaller << "This is folder of the your package" - └── meta - ├── installscript.qs - └── package.xml - -4 directories, 4 files - -``` \ No newline at end of file diff --git a/md/ru/QuickGuide.md b/md/ru/QuickGuide.md deleted file mode 100644 index 06dd37f..0000000 --- a/md/ru/QuickGuide.md +++ /dev/null @@ -1,81 +0,0 @@ - - -Как развернуть приложение с помощью CQtDeployer - -1. Прежде всего вам нужно установить CQtDeployer на вашу платформу - - * Snap (более 14 дистрибутивов Linux): - ``` - sudo snap install cqtdeployer - ``` - или - - Установите из магазина snap и включите все необходимые приложению разрешения. - - [](https://snapcraft.io/cqtdeployer) - - * Другие Linux дистрибутивы [LinuxInstaller.run][1]. - ``` - chmod +x LinuxInstaller.run - ./LinuxInstaller.run - ``` - - * Windows [installer][1] - -2. Скомпилируйте ваш проект в режиме релиза. -3. Разверните ваш исполняемый файл: - - * Для Linux систем: - ``` bash - cqtdeployer -bin myexecutable - ``` - - * Для Windows систем: - ``` bash - cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe - ``` - - * Для кросплатформенной сборки (Linux -> Windows) - ``` bash - cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake - ``` - -## Дополнительные опции - -Если вы используете дополнительные библиотеки, просто добавьте путь к cqtdeployer для используемых библиотек. -``` bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -``` - -Если вы хотите найти библиотеки рекурсивно по пути libDir, просто добавьте рекурсивный параметр Depth. -``` bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -``` - -Если ваше приложение использует qml, просто добавьте опцию qmlDir -``` bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources -``` - -Если вы хотите создать простой установщик для вашего приложения, просто добавьте опцию qif. -``` -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -``` - -Если вы используете системные библиотеки из системного PATH, просто добавьте опцию deploySystem. - -#### Предупреждение: версия Snap не имеет прав доступа к системным файлам. Для развертывания системных библиотек используйте версию cqtdeployer из [установщика][1] - -``` -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif deploySystem -``` - - -### Если у вас есть какие-либо проблемы с использованием cqtdeployer, тогда задавайте вопросы на официальной github [странице][2]. - -### Дополнительные параметры CQtDeployer см. В официальной [документации][3]. - -[1]: https://github.com/QuasarApp/CQtDeployer/releases -[2]: https://github.com/QuasarApp/CQtDeployer/issues -[3]: https://github.com/QuasarApp/CQtDeployer/wiki/Options - diff --git a/md/ru/ReleaseReviews.md b/md/ru/ReleaseReviews.md deleted file mode 100755 index f135d63..0000000 --- a/md/ru/ReleaseReviews.md +++ /dev/null @@ -1,3 +0,0 @@ -# Обзоры на релизы - -* [Обзор v1.4 (Бинарный ящик)](1_4.md) diff --git a/md/ru/ZIP.md b/md/ru/ZIP.md deleted file mode 100644 index 256191e..0000000 --- a/md/ru/ZIP.md +++ /dev/null @@ -1,44 +0,0 @@ -## Общие правила использования ZIP - -#### Доступно с версии CQtDeployer 1.5 - -### Как использовать опцию zip - -Просто добавьте в cqtdeployer опцию «zip». - -#### Например: - -``` bash - cqtdeployer ... zip -``` - -Где: -* ** ... ** - список других опций. -* ** zip ** - опция использования zip архивов. - - -По умолчанию cqtdeployer создает один zip-архив. -Если вы хотите создать рассылку нескольких пакетов, вы должны использовать [Параметры управления пакетами](Options.md) -Чтобы создать новый пакет, используйте -targetPackage [package; tar1] вариант - -cqtdeployer создает zip-архив для каждого пакета. - -Где: - -* **package** - это название пакета -* **tar1** - это имя цели, которая должна быть включена в этот пакет. - -Или вы можете описать пакеты в [файле конфигурации](DeployConfigFile.md) - - -```JSON -{ -"targetPackage": [ - [ - "package", - "Tar1" - ], -], -"zip": true -} -``` From b4bdea1c19ef2e84c3b763916888304427e822e1 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 25 May 2021 14:57:00 +0300 Subject: [PATCH 029/222] Revert "ref #560 deleted ru md files for doxygen test" This reverts commit d302684d5f04b9df07ff674f94656f83740e0490. --- md/ru/1_4.md | 407 +++++++++++++++++++++ md/ru/1_5.md | 155 ++++++++ md/ru/Build-and-Install.md | 50 +++ md/ru/Changelog.md | 242 +++++++++++++ md/ru/CompareFeatures.md | 14 + md/ru/DEB.md | 46 +++ md/ru/DeployConfigFile.md | 222 ++++++++++++ md/ru/Description.md | 9 + md/ru/DisableShortcats.md | 136 +++++++ md/ru/EnvironmentVariables.md | 43 +++ md/ru/ExtraFiles.md | 104 ++++++ md/ru/ExtractDefaultsTemplates.md | 52 +++ md/ru/Guide.md | 580 ++++++++++++++++++++++++++++++ md/ru/Home.md | 25 ++ md/ru/Options.md | 148 ++++++++ md/ru/Packing.md | 130 +++++++ md/ru/QIF.md | 109 ++++++ md/ru/QuickGuide.md | 81 +++++ md/ru/ReleaseReviews.md | 3 + md/ru/ZIP.md | 44 +++ 20 files changed, 2600 insertions(+) create mode 100755 md/ru/1_4.md create mode 100755 md/ru/1_5.md create mode 100644 md/ru/Build-and-Install.md create mode 100755 md/ru/Changelog.md create mode 100644 md/ru/CompareFeatures.md create mode 100644 md/ru/DEB.md create mode 100644 md/ru/DeployConfigFile.md create mode 100644 md/ru/Description.md create mode 100644 md/ru/DisableShortcats.md create mode 100644 md/ru/EnvironmentVariables.md create mode 100644 md/ru/ExtraFiles.md create mode 100644 md/ru/ExtractDefaultsTemplates.md create mode 100644 md/ru/Guide.md create mode 100644 md/ru/Home.md create mode 100644 md/ru/Options.md create mode 100644 md/ru/Packing.md create mode 100644 md/ru/QIF.md create mode 100644 md/ru/QuickGuide.md create mode 100755 md/ru/ReleaseReviews.md create mode 100644 md/ru/ZIP.md diff --git a/md/ru/1_4.md b/md/ru/1_4.md new file mode 100755 index 0000000..3fe8494 --- /dev/null +++ b/md/ru/1_4.md @@ -0,0 +1,407 @@ +# Релиз утилиты развертывания С++/Qt и QML приложений CQtDeployer v1.4.0 (Binary Box) + +Спустя почти полгода, вышло мажорное обновление утилиты развёртывания CQtDeployer. +В данном обновлении множество нововведений, но основной упор в сделан на создание пакетов. + +## Полный список всех изменений + +### Исправления +- Исправлен вывод справки в консоли, теперь перед выводом пересчитывается реальный размер консоли, что позволяет выполнять переносы текста правильно. +- Исправлена работа с развертыванием плагинов Qt. Теперь плагины не тянут за собой все системные зависимости, а только qt. Захват системных зависимостей приводил к падению приложений из-за несовместимости библиотек плагинов. +- Мелкие исправления и улучшения. +### Нововведения +- Добавлена поддержка поиска qmake из системного окружения. +- Добавлена возможность инициализировать репозиторий для дальнейшей упаковки аналогично git init. +- Добавлена поддержка Qt Install Framework пакетов. Теперь можно запаковать дистрибутив в инсталлятор. +- Добавлена возможность разбивать конечный дистрибутив на несколько пакетов. +- Добавлен механизм, позволяющий унифицировать создание пакетов для конечного дистрибутива. +- Добавлена поддержка добавления пользовательских скриптов в скрипты запуска приложений. +- Добавлена поддержка сборки системных зависимостей для Windows. +- Добавлена поддержка RPATH для Linux. Теперь cqtdeployer может самостоятельно определить нужный qmake для развертывания приложения. +- Добавлена поддержка поиска необходимой зависимости по имени библиотеки. +- Добавлена поддержка Qt библиотек из репозиториев Linux дистрибутивов. +### Новые опции +- init - инициализирует файл cqtdeployer.json (файл конфигурации). Например: «cqtdeployer init» - для инициализации конфигурации одного пакета. "cqtdeployer -init multiPackage" - для инициализации конфигурации нескольких пакетов. +- noCheckRPATH - отключает автоматический поиск путей к qmake в исполняемых файлах (Только Linux). +- noCheckPATH - отключает автоматический поиск путей к qmake в системном окружении. +- extractPlugins - заставляет извлекать все зависимости плагинов. +- qif - создает инсталлятор в конце развертывания. +- extraLibs - добавляет шаблон дополнительной библиотеки, которая должна будет попасть в дистрибутив. +- customScript - добавляет пользовательский скрипт в скрип запуска приложения. +- -targetPackage [package;tar1,package;tar2] - используется для формирования пакетов, обозначает списки целевых файлов для определенных пакетов. +- recOut - указывает в какую папку будут складываться ресурсы после развертывания. +- name - устанавливает имя пакета. +- description - устанавливает описание пакета +- deployVersion - устанавливает версию пакета +- releaseDate - дата релиза пакета. +- icon - иконка пакета. +- publisher - издатель пакета. +- qifStyle - Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar +- qifBanner - Устанавливает путь к png-файлу баннера. +- qifLogo - Устанавливает путь к файлу логотипа png. + +## Подробный разбор самых интересных изменений. + +Первое, на что стоит обратить внимание, это то что CQtDeployer научился работать с RPATH (Только Linux) и PATH. Это значит, что если ваше приложение собранно с поддержкой RPATH (а RPATH в qt включен по молчанию) или ваш qmake прописан в PATH, то вам не нужно указывать путь к qmakе. CQtDeployer сам найдет нужный ему qmake. +Давайте проверим это на практике. +Я написал простое консольное приложение с использованием Qt. +``` cpp +#include <QString> +#include <QDebug> +int main(int, char *[]) +{ + QString str = "hello CQtDeployer 1.4"; + qInfo() << str; + return 0; +} +``` + +Я буду использовать сборочную систему cmake, так как она более актуальная чем qmake. + +``` bash +andrei@HP:~/Hello$ tree +. +├── CMakeLists.txt +├── CMakeLists.txt.user +└── main.cpp + +0 directories, 3 files +``` + +Создадим папку для сборки. +``` bash +andrei@HP:~/Hello$ mkdir build +``` + +Выполним в созданной папке cmake. + +``` bash +andrei@HP:~/Hello/build$ cmake .. -DCMAKE_PREFIX_PATH=~/Qt/5.14.1/gcc_64 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/andrei/Hello/build +``` + +Выполняем сборку. + +``` bash +andrei@HP:~/Hello/build$ make +Scanning dependencies of target Hello_autogen +[ 25%] Automatic MOC and UIC for target Hello +[ 25%] Built target Hello_autogen +Scanning dependencies of target Hello +[ 50%] Building CXX object CMakeFiles/Hello.dir/Hello_autogen/mocs_compilation.cpp.o +[ 75%] Building CXX object CMakeFiles/Hello.dir/main.cpp.o +[100%] Linking CXX executable Hello +[100%] Built target Hello +``` + +Проверяем нашу программу. +``` bash +andrei@HP:~/Hello/build$ ls +CMakeCache.txt CMakeFiles cmake_install.cmake Hello Hello_autogen Makefile +``` +И запускаем cqtdeployer передав ему программу без qmake. +``` bash +andrei@HP:~/Hello/build$ cqtdeployer -bin Hello +Deploy ... +flag targetDir not used. use default target dir : "/home/andrei/Hello/build/DistributionKit" +target deploy started!! +copy : "/home/andrei/Hello/build/Hello" +extract lib : "/home/andrei/Hello/build/DistributionKit//bin//Hello" +copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libQt5Core.so.5" +copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libicuuc.so.56" +copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libicui18n.so.56" +copy : "/home/andrei/Qt/5.14.1/gcc_64/lib/libicudata.so.56" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ar.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_bg.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ca.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_cs.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_da.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_de.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_en.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_es.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_fi.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_fr.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_gd.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_he.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_hu.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_it.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ja.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ko.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_lv.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_pl.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_ru.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_sk.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_uk.qm" +copy : "/home/andrei/Qt/5.14.1/gcc_64/translations/qtbase_zh_TW.qm" +try deploy msvc +deploy done! +``` + +О чудо, теперь наше приложение полностью автономно. +Проверяем это. + +``` bash +andrei@HP:~/Hello/build$ cd DistributionKit/ +andrei@HP:~/Hello/build/DistributionKit$ tree +. +├── bin +│ ├── Hello +│ └── qt.conf +├── Hello.sh +├── lib +│ ├── libicudata.so.56 +│ ├── libicui18n.so.56 +│ ├── libicuuc.so.56 +│ └── libQt5Core.so.5 +└── translations + ├── qtbase_ar.qm + ├── qtbase_bg.qm + ├── qtbase_ca.qm + ├── qtbase_cs.qm + ├── qtbase_da.qm + ├── qtbase_de.qm + ├── qtbase_en.qm + ├── qtbase_es.qm + ├── qtbase_fi.qm + ├── qtbase_fr.qm + ├── qtbase_gd.qm + ├── qtbase_he.qm + ├── qtbase_hu.qm + ├── qtbase_it.qm + ├── qtbase_ja.qm + ├── qtbase_ko.qm + ├── qtbase_lv.qm + ├── qtbase_pl.qm + ├── qtbase_ru.qm + ├── qtbase_sk.qm + ├── qtbase_uk.qm + └── qtbase_zh_TW.qm + +3 directories, 29 files +andrei@HP:~/Hello/build/DistributionKit$ +``` +Корень программы: + + + +Библиотеки,нужные для работы программы: + + + + +Как видно из примера, приложение полностью собрано. + +## Qt Installer Framework +Второе нововведение, о котором стоит знать, это возможность из коробки формировать установщики QIF. Все, что нужно для нашего примера, это добавить в команду на упаковку опцию qif. + +Пример использования. + +``` +andrei@HP:~/Hello/build$ cqtdeployer -bin Hello qif +``` + +Всего одна простая команда и программа получает презентабельный вид. + + + +Этот установщик поддерживает минимальную интеграцию Linux дистрибутивами и Windows. А именно: создание ярлыков, и регистрация приложения в OС. +Если по каким то причинам вас не устраивает внешний вид данного установщика, его можно изменить при помощи флага qifStyle . На момент версии 1.4 cqtdeployer поддерживает всего 2 стиля (native и quasar). + +Пример стиля quasar: + + + +Вы также можете использовать свою собственную таблицу стилей qss. Для этого вместо названия стиля передайте путь к вашему qss или css файлу. +Для примера можно рассмотреть следующую таблицу стилей qss. + +Style.qss: +``` css +QWidget +{ + color: white; + background-color: rgb(65, 65, 65); +} + +QPushButton +{ + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(150, 150, 150, 60%), stop:1 rgba(50, 50, 50, 60%)); + border-color: rgb(60, 60, 60); + border-style: solid; + border-width: 2px; + border-radius: 9px; + min-height: 20px; + max-height: 20px; + min-width: 60px; + max-width: 60px; + padding-left: 15px; + padding-right: 15px; +} + +QPushButton:pressed, QPushButton:checked +{ + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(50, 50, 50, 60%), stop:1 rgba(150, 150, 150, 60%)); +} +``` + +Давайте проверим, что у нас получится в таком случае. +``` bash +cqtdeployer -bin Hello qif -qifStyle ./../style.qss +``` + + + +Вот,собственно, и тёмная тема установщика. + +## Разбиение на пакеты +И,наверное, последнее важное обновление, о котором стоит знать — это возможность разделять большой многобинарный проект на подпроекты. + +Эта возможность самая сложная из всех перечисленных, так как требует много текста для ее использования. Так что я рекоммендую использовать файл конфигураций. + +Для начала усложним наш проект, добавив в него ещё 2 исполняемого файла. Я не стал заморачиваться и просто сделал 2 копии моей Hello утилиты. + +Для упрощения работы с пакетами нужно инициализировать директорию. + +``` bash +cqtdeployer init +``` + +Это еще одна новая функция, которая создаёт CQtDeployer.json файл, в котором мы и будем писать наши конфигурации, вместо передачи опций в утилиту. + +``` js +{ + "binDir": ".", + "clear": true, + "libDir": "./", + "recursiveDepth": 5 +} +``` + +Теперь давайте сделаем 2 пакета из 3х наших программ. Для этого нужно указать: +```js +{ + "binDir": ".", + "clear": true, + "libDir": "./", + "recursiveDepth": 5, + "targetPackage": [ + ["Dstro1", "Hello1"], + ["Dstro2", "Hello2"], + ["Dstro2", "Hello3"] + ] +} +``` + +Обратите внимание на то, что мне пришлось явно указать привязку для Dstro2 к Hello2 Hello3, К сожалению, на момент версии 1.4 cqtdeployer не умеет парсить перечисления целей. Обратите внимание, что если я напишу вместо Hello1 Hello, то выборка будет сделана по всем совпадениям и будут выбраны все 3 программы. +Итак, смотрим что получилось. + +``` bash +cqtdeployer + +. +├── Dstro1 +│ ├── bin +│ │ ├── Hello1 +│ │ └── qt.conf +│ ├── Hello1.sh +│ ├── lib +│ │ ├── libicudata.so.56 +│ │ ├── libicui18n.so.56 +│ │ ├── libicuuc.so.56 +│ │ └── libQt5Core.so.5 +│ └── translations +│ ├── qtbase_ar.qm +│ ├── qtbase_bg.qm +│ ├── qtbase_ca.qm +│ ├── qtbase_cs.qm +│ ├── qtbase_da.qm +│ ├── qtbase_de.qm +│ ├── qtbase_en.qm +│ ├── qtbase_es.qm +│ ├── qtbase_fi.qm +│ ├── qtbase_fr.qm +│ ├── qtbase_gd.qm +│ ├── qtbase_he.qm +│ ├── qtbase_hu.qm +│ ├── qtbase_it.qm +│ ├── qtbase_ja.qm +│ ├── qtbase_ko.qm +│ ├── qtbase_lv.qm +│ ├── qtbase_pl.qm +│ ├── qtbase_ru.qm +│ ├── qtbase_sk.qm +│ ├── qtbase_uk.qm +│ └── qtbase_zh_TW.qm +└── Dstro2 + ├── bin + │ ├── Hello2 + │ ├── Hello3 + │ └── qt.conf + ├── Hello2.sh + ├── Hello3.sh + ├── lib + │ ├── libicudata.so.56 + │ ├── libicui18n.so.56 + │ ├── libicuuc.so.56 + │ └── libQt5Core.so.5 + └── translations + ├── qtbase_ar.qm + ├── qtbase_bg.qm + ├── qtbase_ca.qm + ├── qtbase_cs.qm + ├── qtbase_da.qm + ├── qtbase_de.qm + ├── qtbase_en.qm + ├── qtbase_es.qm + ├── qtbase_fi.qm + ├── qtbase_fr.qm + ├── qtbase_gd.qm + ├── qtbase_he.qm + ├── qtbase_hu.qm + ├── qtbase_it.qm + ├── qtbase_ja.qm + ├── qtbase_ko.qm + ├── qtbase_lv.qm + ├── qtbase_pl.qm + ├── qtbase_ru.qm + ├── qtbase_sk.qm + ├── qtbase_uk.qm + └── qtbase_zh_TW.qm + +8 directories, 60 files +``` + +Как видно из дерева результата, у нас получилось 2 дистрибутива. +1. Dstro1 — содержит в себе приложение Hello1 +2. Distro2 — содержит оставшиеся 2. + +А теперь давайте проверим, что будет, если все это запаковать а установщик. Добавим в CQtDeployer.json опцию qif **"qif": true,**. + +``` js +{ + "binDir": ".", + "clear": true, + "qif": true, + "libDir": "./", + "recursiveDepth": 5, + "targetPackage": [ + ["Dstro1", "Hello1"], + ["Dstro2", "Hello2"], + ["Dstro2", "Hello3"] + ] +``` + + + +Кака видно из скриншота, теперь у нас 2 пакета при установке. + +## Новые алиасы + +И последнее небольшое но приятное дополнение: теперь в cqtdeployer добавлены новые команды. +* сqt — бывстрый способ задеплоить ваше приложение. Он упрощает вызов развертывания. + * Пример: + **cqt myApp** — это тоже самое что и **cqtdeployer -bin myApp**. +* cqtdeployer.cqt — тоже что и cqt но для snap пакета. +* В windows-версии теперь не нужно добовлять знак % для вызова утилиты. +Теперь вызов выглядит так, как и в Linux. (cqtdeployer) diff --git a/md/ru/1_5.md b/md/ru/1_5.md new file mode 100755 index 0000000..4e8d42c --- /dev/null +++ b/md/ru/1_5.md @@ -0,0 +1,155 @@ +# Выпуск утилиты развертывания приложений C ++ / Qt и QML CQtDeployer v1.5.0 + +Это первое крупное обновление в 2021 году. CQtDeployer 1.5 содержит множество полезных улучшений. Самыми большими улучшениями являются добавление возможности упаковывать пакеты deb и возможность использовать собственный шаблон упаковки для среды установки qt. + +## Полный список всех изменений + +## CQtDeployer 1.5.0 + +### Новые возможности + +- Добавлена новая тема установщика qif "quasarDark". +- Добавлена поддержка работы с кастомным шаблоном для опции qif. +- Добавлена поддержка пакетов debian. +- Добавлены поддержка иконок целей. Теперь опция icon работает с целями, но не с пакетами. +- Добавлена поддержка управления файлами пользовательского перевода. +- Добавлена поддержка развертывания неисполняемых файлов. (опция extraData) +- Добавлены переменные окружения для развернутых приложений. +- Добавлена поддержка создания пакетов deb. +- Добавлена поддержка создания архивов zip. +- Добавлена поддержка создания установщика qif с использованием настраиваемого шаблона. +- Добавлена команда для инициализации шаблонов qif и deb по умолчанию (getDefaulttemplate) +- Добавлена поддержка импорта пользовательских скриптов запуска. +- Добавлена поддержка хэшей md5 пакетов. +- Добавлена поддержка Qt6.1. + +### Исправления + +- Исправлена стабильность для опции deploySystem в Windows. +- Исправлен подробный журнал. +- Исправлен общий журнал вывода. +- Исправлены опечатки в логе. +- Исправлено кросс-развертывание под платформу ARM +- Исправлено развертывание Qt6 qml +- Исправлены команды PowerShell в Windows. +- исправления ошибок и улучшения. + + +### Новые переменные окружения + +- CQT_RUN_FILE - Эта переменная содержит путь к сценарию выполнения используемого приложения. +- CQT_PKG_ROOT - эта переменная содержит путь к корню текущего пакета. + +### Новые параметры + +- zip - создать ZIP-архив для развертываемой программы +- deb - Создать пакет deb для развертываемой программы +- homepage - Устанавливает URL-адрес домашней страницы для пакета +- noQt - игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует фреймворк qt +- allowEmptyPackages - позволяет настраивать пустые пакеты. +- getDefaultTemplate - Извлекает шаблоны deb или qif по умолчанию. +- tr - Добавляет qm файлы в папку переводов. +- extraData - добавляет дополнительные файлы или каталоги как цель. Выбранный каталог будет скопирован в папку extraDataOut с сохранением собственной структуры. +- extraDataOut - Устанавливает путь к каталогу с дополнительными файлами данных. +- prefix - Устанавливает префикс для пакета относительно целевого каталога +- homePage - Устанавливает URL-адрес домашней страницы для пакета +- binPrefix - устанавливает префикс для опции bin. +- noHashSum - отключает хэши кампутных пакетов + +### Устаревшие и удаленные параметры + +- deploySystem-with-libc - вместо этого параметра используйте параметр deploySystem. +- allQmlDependes - вместо этого параметра используйте параметр qmlDir. + + +## Подробный разбор наиболее интересных изменений. + +### Пакеты Debian +Эта функция очень удобна, если вы хотите создать серверное приложение. +Например, мне нужно создать простой сервер для простой игры. +Мои шаги: +* собрать мое приложение в режиме релиза. +* запустите cqtdeployer с опцией deb. + +```bash +cqtdeployer -bin mySimpleServer deb -qmake ~/Qt/5.15.2/gcc_64/bin/qmake +``` +SimpleServer зависит только от qt, поэтому мне было достаточно указать только путь к qmake для моего приложения. + +Это все!!!. И я получаю рабочий пакет deb. +По умолчанию CQtDeployer создает независимые пакеты debian. + + +### Почтовые архивы +Эта функция позволяет сжать пакеты вашего дистрибутива в zip-архив. + +Пример: + +```bash +cqtdeployer -bin mySimpleServer zip -qmake ~/Qt/5.15.2/gcc_64/bin/qmake +``` + +# Пользовательский Шаблон для QIF +Начиная с Версии CQtDeployer 1.5 вы можете использовать свой собственный шаблон установщика. Для этого вы должны передать в параметр qif путь к вашему шаблону. + +``` +cqtdeployer ... -qif /path/to/my/custom/qif/template +``` + +### Шаблон +Шаблон qif долже содержать 2 папки: +* packages +* config + +### Внимание +Название пакетов в папке packages должны совподать с названием пакетов при развертывание. +Например: +``` json +"targetPackage": [ + [ + "myCustomInstaller", + "tar1" + ] +], +``` + +``` bash +. +├── config +│ ├── config.xml +│ └── style.qss +└── packages + └── myCustomInstaller + └── meta + ├── installscript.qs + └── package.xml + +4 directories, 4 files + +``` + +Если имена папок не совподут с именами пакетов то CQtDeployer будет использовать стандартный пакет для QIF. + +Если у вас только один пакет, вы можете использовать опцию **name** для установки имени приложения. + +``` +cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller +``` + +#### Не забудьте переименовать папку вашего пакета в имя пакета из опции имени. + + +``` bash +. +├── config +│ ├── config.xml +│ └── style.qss +└── packages + └── myCustomInstaller << "This is folder of the your package" + └── meta + ├── installscript.qs + └── package.xml + +4 directories, 4 files + +``` \ No newline at end of file diff --git a/md/ru/Build-and-Install.md b/md/ru/Build-and-Install.md new file mode 100644 index 0000000..f8c388f --- /dev/null +++ b/md/ru/Build-and-Install.md @@ -0,0 +1,50 @@ +# Building from source + +## Build для Linux +- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) +- git clone https://github.com/QuasarApp/CQtDeployer.git +- cd CQtDeployer +- git submodule update --init --recursive +- qmake -r + - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. + - Пример: ~/Qt/5.15.0/gcc_64/bin/qmake -r +- make -j$(nproc) +- make deploy + - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) + +## Build для Windows (CMD) +- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) +- git clone https://github.com/QuasarApp/CQtDeployer.git +- cd CQtDeployer +- git submodule update --init --recursive +- SET PATH=C:/Qt/Tools/mingw810_64/bin;%PATH% + - Здесь важно настроить окружение qt. +- qmake.exe -r + - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. + - Пример: C:/Qt/5.15.0/mingw81_64/bin/qmake.exe -r +- migw32-make -j8 +- migw32-make deploy + - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) +- ./Distro/CQtDeployerInstaller.exe + +--- +# Установка без сборки + +## Snap +[](https://snapcraft.io/cqtdeployer) + +#### Особенности snap версии + +Если вы используете snap версию приложения. Включите все разрешения для cqtdeployer. +это можно сделать в snap-store +Или начиная с ubuntu 20.04 в менеджере настроек приложений ubuntu. + +Если у вас нет графического интерфейса, вы можете включить все разрешения, используя следующие команды: +``` bash +sudo snap connect cqtdeployer:process-control +sudo snap connect cqtdeployer:removable-media +sudo snap connect cqtdeployer:system-backup +``` + +## Установщик +Вы можете загрузить последнюю версию приложения [здесь](https://github.com/QuasarApp/CQtDeployer/releases). diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md new file mode 100755 index 0000000..1b2aee7 --- /dev/null +++ b/md/ru/Changelog.md @@ -0,0 +1,242 @@ +# Журнал изменений для всех версий CQtDeployer. + +## CQtDeployer 1.5.0 Alpha +### Исправления +- исправления ошибок и улучшения. + +### Новые особенности +- Добавлена новая тема для установщика qif "quasarDark". + +### Новые параметры +- zip - создать ZIP-архив для развертываемых программ + +## CQtDeployer 1.4.7 +### Исправления +- Исправлено развертывание плагина qxcb. #438 +- Исправлено развертывание модуля qtGui. #446 + +### Новые возможности +- Добавлена поддержка Qt6. #437 +- Добавлена поддержка Qt installer Framework 4 (с улучшенным интерфейсом командной строки)ю #436 + +## CQtDeployer 1.4.6 +### Исправления +- Исправлено развертывание драйверов sql #367. +- Исправлен алгоритм развертывания библиотек. #423 #371 +- Исправлена работа с qt из системного репозитория linux. (только классический установщик) #422 +- Исправлена snap версия cqtdeployer, добавлена поддержка поиска qmake по RPATH #424 #420 +- Исправлен хелп. +- Мелкие исправления и улучшения. +- Удалена устаревшая опция extractPlugins. #371 + +### Новые параметры +- noQt - игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt. + +## CQtDeployer 1.4.5 +### Исправления +- Оптимизирована производительность развертывания проектов. На 60% быстрее. +- Оптимизирован выходной размер дистрибутивов. Размер уменьшен на 25%. +- Исправлено отображение ярлыков после установки развернутых приложений. +- Исправлен запуск приложений с пробелами в имени. спасибо ahndee (#384) +- Исправлено развертывание плагина Renderer. +- Незначительные исправления и улучшения. + +### Новые особенности +- Добавлена новая система управления плагинами развертывания. + +### Новые опции + +- extraPlugin - устанавливает дополнительный путь к сторонним плагина приложения +- enablePlugins - включает дополнительные плагины для распространения. +- disablePlugins - отключает плагины для распространения. + +## CQtDeployer 1.4.4 + +### New options +- qifFromSystem - Принудительно использовать системный инструмент binarycreator из path или qt + +## CQtDeployer 1.4.3 +### Исправления +- Исправленно отображение приложения скаченого из snap store и установщика в меню настроек приложений ubuntu 20.04 + +### Нововведения +- Добавленна поддержка рекурсивного добовления для флага ignoreEnv #356 + +### Новые опции +- noRecursiveiIgnoreEnv - Отключает рекурсивное игнорирование переменной среды для флага ignoreEnv. + + +## CQtDeployer 1.4.2 +### Исправления + +- исправлено #337 (ошибка генерации установщика с произвольным именем) +- исправлено #338 (версия Windows собирает pdb файлы) +- исправлено #339 (ошибка показа всех справочных сообщений) +- исправлено #340 (cqdeployer не добавлял каталоги целей в "ignore") +- исправлено #341 (опция очистки не удаляет старый установщик) + + +## CQtDeployer 1.4.1 + +### Исправления +- Исправлено не развертывание тем платформ (#324) +- Исправлено создание ярлыков на Windows (#322) +- Незначительные улучшения и исправления + +## CQtDeployer 1.4.0 +### Исправления +- Исправлен вывод справки в консоли, теперь перед выводом пересчитывается реальный размер консоли, что позволяет выполнять правильно переносы текста. +- Исправлена работа с развертыванием плагинов Qt. Теперь плагины не тянут за собой все системные зависимости, а только qt. Захват системных зависимостей приводил к падению приложений из-за несовместимости библиотек плагинов. +- Мелкие исправления и улучшения. + +### Нововведения +- Добавлена поддержка поиска qmake из системного окружения. +- Добавлена возможность инициализировать репозиторий для дальнейшей упаковки аналогично git init. +- Добавлена поддержка Qt Install Framework пакетов. Теперь можно запаковать дистрибутив в инсталлятор. +- Добавлена возможность разбивать конечный дистрибутив на несколько пакетов. +- Добавлен механизм позволяющий унифицировать создание пакетов для конечного дистрибутива. +- Добавлена поддержка добавления пользовательских скриптов в скрипты запуска приложений. +- Добавлена поддержка сборки системных зависимостей для Windows. +- Добавлена поддержка RPATH для Linux. Теперь cqtdeployer может самостоятельно определить нужный qmake для развертывания приложения. +- Добавлена поддержка поиска необходимой зависимости по имени библиотеки. +- Добавлена поддержка Qt библиотек из репозиториев Linux дистрибутивов. +- Добавлены новые псевдонимы для команды запуска (cqt и cqtdeployer.cqt) для быстрого развертывания приложений. +- Добавлена поддержка собственного имени команды для windows. Теперь вы можете запустить cqtdeployer написав cqtdeployer в cmd и powershell. + +### Новые опции +- init - инициализирует файл cqtdeployer.json (файл конфигурации). Например: «cqtdeployer init» - для инициализации конфигурации одного пакета. "cqtdeployer -init multi" - для инициализации конфигурации нескольких пакетов. +- noCheckRPATH - отключает автоматический поиск путей к qmake в исполняемых файлах (Только Linux). +- noCheckPATH - отключает автоматический поиск путей к qmake в системном окружении. +- extractPlugins - заставляет извлекать все зависимости плагинов. +- qif - создает инсталлятор в конце развертывания. +- extraLibs - добавляет шаблон дополнительной библиотеки, которая должна будет попасть в дистрибутив. +- customScript - добавляет пользовательский скрипт в скрип запуска приложения. +- -targetPackage [package;tar1,package;tar2] - используется для формирования пакетов, обозначает списки целевых файлов для определенных пакетов. +- recOut - указывает в какую папку будут складываться ресурсы после развертывания. +- name - устанавливает имя пакета. +- description - устанавливает описание пакета +- deployVersion - устанавливает версию пакета +- releaseDate - дата релиза пакета. +- icon - иконка пакета. +- publisher - издатель пакета. +- qifStyle - Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar +- qifBanner - Устанавливает путь к png-файлу баннера. +- qifLogo - Устанавливает путь к файлу логотипа png. + +--- + +## CQtDeployer 1.3.2 +- Исправлено #218 (CQtDeployer добавлял sh-скрипты для целевых библиотек.) +- Исправлено #217 (опция qmake не работала с файлом конфигурации.) +--- + +## CQtDeployer 1.3.1 +- Исправлена задача #191 (команда игнорирования для плагинов) +- Исправлена задача #192 (неверный путь при создании файла развертывания) +- Исправлены абсолютные пути к файлу conf +--- + +## CQtDeployer 1.3.0 +- Добавлена поддержка qt.conf для Linux +- Добавлена поддержка конфигурационного файла для проекта (deploy.json) со всеми правилами развертывания, для создания deploy.json используйте флаг -confFile [./path/to/file.json]. +- Добавлена поддержка выходных каталогов для всех файлов развертывания #145, +- Добавлена поддержка развертывания WebEngine #146. +- Добавлена поддержка нескольких пакетов в установщике cqtdeployer. +- Переименован проект из Console-QtDeployer в CQtDeployer #139 +- Исправлено развертывание системных библиотек в linux #172 +- Добавлены новые тесты приложения +- Удален флаг noLibC и добавлен флаг deploySystem-with-libc. Если вам нужен в программе libc используйте флаг deploySystem-with-libc, а если нет то пользуйтесь deploySystem. +- Заменен флаг always-overwrite на noOverwrite, теперь все файлы по умолчанию перезаписываются, используйте noOverwrite для отключения перезаписи. +--- + +## CQtDeployer 1.2.3 +- Добавлена поддержка qt.conf для сборок Windows #130 +- Исправлена ошибка #129, теперь флаг «очистить» удаляет только скопированные файлы. +- Исправлен флаг ignoreEnv +- Исправлен флаг deploySystem +--- + +## CQtDeployer 1.2.2 +- Добавлен новый флаг noLibc для игнорирования библиотек libc и li-linux +- Исправлена #125 ошибка развертывания системных библиотек (работает с простыми проектами, для больших проектов не рекомендуется) +- Исправлен флаг ignoreEnv +--- + +## CQtDeployer 1.2.1 +- Добавлен новый флаг игнорирования (ignoreEnv). Этот флаг отключает ненужную среду +- Добавлена поддержка QIFW (онлайн-установщик для Windows и других дистрибутивов Linux) +- Добавлено обновление утилиты для Windows и других дистрибутивов Linux (не Snap) +- Исправлена ошибка № 116 (копирование файлов со съемного носителя) +- Исправлена ошибка № 115 (создание цели в папке с русским именем) +- Исправлен большой размер версии msvc +- Исправлено кросс-развертывание Linux >> Windows +- Удалены старые скрипты сборки +--- + +## CQtDeployer 1.2.0 +- Добавлен собственный сканер зависимостей qml. +- Перешел на новый [сканер PE-Lib](https://github.com/QuasarApp/pe-parse/tree/7138bb218a05c81d825728ba8a0a6f6a56c4fdbc). +- Перешел на новый [ELF-lib сканер](https://github.com/qt/qttools/blob/b0147a5d79ce7a7e77a24f36aaddfacb1a1517c8/src/shared/winutils/elfreader.h). +- Добавлены новые юнит-тесты. +- Добавлена поддержка версии Snap (только домашний каталог). +- Добавлен новый флаг qmlExtern - для использования сканера импорта qt qml. +- Добавлена поддержка уровней подробного журнала (0-3). +- Исправлен журнал развертывания приложения. +- Исправлено развертывание приложения в версии Snap. +--- + +## CQtDeployer 1.1.2 +- Добавлена поддержка переводов +- Добавлен флаг для отключения развертывания переводов +- Добавлена strip для Linux +- Добавлены юнит-тесты +- Исправлено развертывание в динамической версией +- Исправлена ошибка развертывания на текущем каталоге с привязкой и статической версией. +--- + +## CQtDeployer 1.1.1 +- Исправлена сборка qml в диномисечкой версии +- Исправленна работа флага -recursiveDepth +- Исправленна работа флага -libDir +- Исправленно копирование библиотек по ссылке +- Почищен вывод приложения, часть лога перенесенна в verbose +--- + +## CQtDeployer 1.1.0 +- Добавлена поддержка windows (только динамическая линковка) +- Добавлена поддержка snap (теперь доступно в snapstore) +- Добавлены сборочные скрипты для snap +- Добавлен флаг binDir позволяющий рекурсивно захватывать exe dll и so +- Изменена логика работы флага bin теперь если выбрать в место файла папку то будет захвачено все ее содержимое +- Изменена и исправлена логика работы флага clear теперь он чистит все развернутое содержимое по определенному таргету. +- Добавлен флаг targetDir который определяет место где будет лежать развернутый проект +- Изменена структура развернутого проекта, теперь все оболочки запуска лежат в корне а бинарники в папке bin, для каждого бинарника создается одноименный скрипт запуска. +- Удален старый флаг runScript из-за смены логики развертывания +- Добавлен флаг verbose для отладки по +- Исправлены ошибки производительности +--- + +## CQtDeployer 1.0.2 +- Добавлен скрипт для сборки (динамический и статический выпуск) +- Добавлен флаг -libDir для установки дополнительного пути для дополнительных библиотек приложения +- Добавлен флаг -extraPlugin для установки дополнительного пути для дополнительных плагинов приложения +- Добавлена сборка только для С библиотек +- Исправленно развертывание +- Исправлен сценарий запуска +- Исправлена статическая сборка +--- + +## CQtDeployer 1.0.1 +- Исправлена ошибка развертывания qml (избыточность) +- Исправлен скрипт запуска приложения + +--- + +## CQtDeployer 1.0.0 +- Добавлен флаг runScript +- Добавлен флаг allQmlDependes +- Исправлена ошибка развертывания qml +- Исправлена ошибка развертывания плагинов +- Добавлена поддержка статической сборки + + diff --git a/md/ru/CompareFeatures.md b/md/ru/CompareFeatures.md new file mode 100644 index 0000000..ffeb071 --- /dev/null +++ b/md/ru/CompareFeatures.md @@ -0,0 +1,14 @@ +# Сравните особенности дистрибутивов CQtDeployer + + +| Название функции | Классическая версия linux (установщик) | Snap версия | Windows версия | +|---|---|---|----| +| Автоматические обновляется | Нет | Да | Нет | +| Онлайн-обновления | Да | Да | Да | +| Поддержка системных библиотек | Да | Да | Да | +| Поддержка создания установщиков | Да | Да | Да | +| Поддержка создания архивов | Да | Да | Да | +| Поддержка поиска библиотек и cmake из среды | Да | Нет | Да | +| Поддержка поиска qmake из RPATH | Да | Да | Нет +| Поддержка команды 'strip' | Да | Нет | Нет | +| Поддержка работы с qmake из системного репозитория ОС| Да| Нет | Нет | diff --git a/md/ru/DEB.md b/md/ru/DEB.md new file mode 100644 index 0000000..0070bda --- /dev/null +++ b/md/ru/DEB.md @@ -0,0 +1,46 @@ +## Общие правила использования DEB + +#### Доступно с версии CQtDeployer 1.5 + +### Как использовать опцию DEB + +Просто добавьте в cqtdeployer опцию «deb». + +#### Например: + +``` bash + cqtdeployer ... deb +``` + +Где: +* ** ... ** - список других опций. +* ** deb ** - опция для создания deb пакетов. + + +По умолчанию cqtdeployer создает один deb пакет . +Если вы хотите создать несколько пакетов, вы должны использовать [Параметры управления пакетами](Options.md) +Чтобы создать новый пакет, используйте -targetPackage [package; tar1] + +cqtdeployer создает вуи пакет для каждого пакета. + +Где: + +* **package** - это название пакета +* **tar1** - это имя цели, которая должна быть включена в этот пакет. + +Или вы можете описать пакеты в [файле конфигурации](DeployConfigFile.md) + + +```JSON +{ +"targetPackage": [ + [ + "package", + "Tar1" + ], +], +"deb": true +} +``` + +# Использование собственных шаблонов для создания деб пакетов \ No newline at end of file diff --git a/md/ru/DeployConfigFile.md b/md/ru/DeployConfigFile.md new file mode 100644 index 0000000..ccddf55 --- /dev/null +++ b/md/ru/DeployConfigFile.md @@ -0,0 +1,222 @@ +## Файл развертывания +**Файл развертывания** - это json файл, содержащий в себе параметры для cqtdeployer. Данный файл поддерживает все параметры кроме confFile, так как данный параметр отвечает за подключение и инициализацию самого файла. + +### Структура файла конфигурации +```json +{ + "Флаг": true/false, + "Параметр": "Значение", + "Параметер с поддержкой перечислений": [ + "Значение 1", + "Значение 2", + "Значение 3", + ], + "Параметр с поддержкой многоуровневых перечислений": [ + [ + "Значение A1", + "Значение A2" + ], + [ + "Значение B1", + "Значение B2" + ], + [ + "Значение C1", + "Значение C2" + ], + ] + +} +``` + +Подробно о параметрах cqtdeployer читайте в разделе [Параметры](Options). + +Примеры содержимого данного файла: + +Файл без использования параметров с перечислениями +```json +{ + "noOverwrite": false, + "bin": "./", + "binDir": "./", + "qmlDir": "./", + "deploySystem": false, + "deploySystem-with-libc": false, + "qmake": "my/custom/path/to/qmake", + "ignore": "ignoreLib.dll", + "ignoreEnv": "/my/ignore/path", + "clear": true, + "force-clear": false, + "allQmlDependes": false, + "libDir": "./", + "recursiveDepth": 3, + "extraLibs": "myExtraLib (libssl)", + "extraPlugin": "myExtraPulgin (platforms)", + "targetDir": "./Distro", + "targetPackage": "", + "noStrip": false, + "extractPlugins": false, + "noTranslations": false, + "qmlOut": "qml", + "libOut": "lib", + "trOut": "tr", + "pluginOut": "plug", + "binOut": "bin", + "recOut": "rec", + "verbose": 3, + "qif": false, + "noCheckRPATH": false, + "noCheckPATH": false, + "name": "mainApplication", + "description": "this is description for default package", + "deployVersion": "1.0.0", + "releaseDate": "yyyy-MM-dd", + "icon": "/path/main/icon.png", + "publisher": "main team", + "customScript": "echo 'I am use custom script!!!'" +} + +``` + +Файл с использованием параметров с перечислениями +``` json +{ + "noOverwrite": false, + "bin": "./", + "binDir": "./", + "qmlDir": [ + [ + "package2", + "./TestQMLWidgets/" + ], + [ + "./qml/for/All" + ] + ], + + "deploySystem": false, + "deploySystem-with-libc": false, + "qmake": "this parameter should contain the path to your qmake, for Windows this field is required. On Linux, you can remove it, then qmake will be found by rpath.", + "ignore": "ignoreLib.dll", + "ignoreEnv": "/my/ignore/path", + "clear": true, + "force-clear": false, + "allQmlDependes": false, + "libDir": "./", + "recursiveDepth": 3, + "extraLibs": "myExtraLib (libssl)", + "extraPlugin": "myExtraPulgin (platforms)", + "targetDir": "./Distro", + "targetPackage": [ + [ + "/package1/", + "TestOnlyC" + ], + [ + "/package2/", + "TestQMLWidgets" + ] + ], + "noStrip": false, + "extractPlugins": false, + "noTranslations": false, + "qmlOut": "qml", + "libOut": "lib", + "trOut": "tr", + "pluginOut": "plug", + "binOut": "bin", + "recOut": "rec", + "verbose": 3, + "qif": false, + "noCheckRPATH": false, + "noCheckPATH": false, + "name": [ + [ + "package2", + "package2Application" + ], + [ + "mainApplication" + ] + ], + "description": [ + [ + "package2", + "this is description for package 'package2'" + ], + [ + "this is description for default package" + ] + ], + "deployVersion": [ + [ + "package2", + "1.0.0" + ], + [ + "1.0.0" + ] + ], + "releaseDate": [ + [ + "package2", + "yyyy-MM-dd" + ], + [ + "yyyy-MM-dd" + ] + ], + "icon": [ + [ + "package2", + "/path/icon.png" + ], + [ + "/path/main/icon.png" + ] + ], + "publisher": [ + [ + "package2", + "team of package2" + ], + [ + "main team" + ] + ], + "customScript": "echo 'I am use custom script!!!'" +} + +``` + +Цель файла- упростить вызов cqtdeployer и переместить часть или все параметры в файл. Все параметры, указанные в файле, имеют более низкий приоритет, чем параметры, добавленные в консоль при запуске. + +### Создание файла + +#### Способ 1 + +1. Вызовите `cqtdeployer init` Для инициализации файла для приложения состоящего из одного пакета. + Или `cqtdeployer -init multi` Для инициализации файла для проекта с несколькими пакетами. +2. Откройте CQtDeployer.json и отредактируйте его под свои нужды. +3. Вызовите cqtdeployer в дериктории с файлом CQtDeployer.json, или укажите путь к нему используя флаг -confFile path/to/my/CQtDeployer.json + +#### Способ 2 +Вызовите cqtdeployer с нужным вам набором параметров и укажите путь к файлу при помощи флага -confFile (файл должен отсутствовать). Если файл будет существовать, то cqtdeployer начнет выгружать из него параметры. + +Пример: +``` bash +cqtdeployer -confFile deploy.json -bin CQtDeployerInstaller -targetDir ./test -qmlOut myqml -binOut mybin -libOut mylib -pluginOut myplugins noStrip noTranslations -recursiveDepth 5 -extraPlugin sqldrivers,audio,mediaservice force-clear deploySystem noOverwrite +``` +Где: + +* cqtdeployer - вызов cqtdeployer +* -confFile deploy.json - путь к файлу, который нужно создать +* "-bin CQtDeployerInstaller -targetDir ./test -qmlOut myqml -binOut mybin -libOut mylib -pluginOut myplugins noStrip noTranslations -recursiveDepth 5 -extraPlugin sqldrivers,audio,mediaservice force-clear deploySystem noOverwrite" - необходимые параметры. + + +### Использование файла развертывания. +Чтобы cqtdeployer начал читать параметры из файла, используйте флаг -confFile [путь к файлу] + +#### Пример: +cqtdeployer -qmake ~/Qt/bin/qmake -confFile ./deploy.json + diff --git a/md/ru/Description.md b/md/ru/Description.md new file mode 100644 index 0000000..ef25c92 --- /dev/null +++ b/md/ru/Description.md @@ -0,0 +1,9 @@ +### Что такое CQtDeployer + +CQtDeployer - это утилита для извлечения всех зависимых библиотек исполняемых файлов и создания сценария запуска для вашего приложения. + +Основные отличия этой программы: +* Производительность - эта программа развертывает приложение в несколько раз быстрее (до 10 секунд) +* Гибкость - эта утилита имеет флаги, которые помогут вам настроить деплоинг под ваши нужды и нужды вашего проекта +* Crossdeploy - приложение поддерживает Windows и дистрибутивы Linux, это означает, что вы можете использовать его не только для развертывания проекта для вашей платформы, но и для развертывания проекта в Linux для Windows и наоборот. +* Упаковка - эта утилита может создавать установочные файлы и пакеты, для вашего приложения. diff --git a/md/ru/DisableShortcats.md b/md/ru/DisableShortcats.md new file mode 100644 index 0000000..e22bab2 --- /dev/null +++ b/md/ru/DisableShortcats.md @@ -0,0 +1,136 @@ +# Отключение ярлыков для многоцелевого дистрибутива в структуре Qt Installer. + +Иногда нам нужно отключить автоматическое создание ярлыков для некоторых приложений. +Для решения этой проблемы я рекомендую переопределить шаблон фреймворка установщика qt по умолчанию. + +Для этого вам нужно извлечь шаблон по умолчанию для вашего случая. Вы можете получить дополнительную информацию на этой [странице](ExtractDefaultsTemplates.md). + +## Кейс + +У меня есть дистрибутив, развернутый с помощью следующей команды: + +```bash +cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif +``` +### где: +* **-bin myExecutableFile1, myExecutableFile2** - устанавливает исполняемые файлы. +* **-qmake /qmake/path** - устанавливает путь к вашему qmake. +* **qif** - опция для включения дистрибутивов Qt Installer FrameWork. +* **-targetPackage MyDistribution** - устанавливает новое имя для пакета распространения. + +Чтобы добавить myExecutableFile2 в список исключений создания ярлыка, вам необходимо проделать следующие шаги: + + + +1. Извлеките шаблон по умолчанию. + Для извлечения шаблона по умолчанию вам необходимо добавить в свою команду параметр getDefaultTemplate. Также вам следует добавить опцию targetDir для установки пути к выходным файлам. + + ```bash + cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif getDefaultTemplate -targetDir qifTemplate + ``` + + ### где: + * **- targetDir qifTemplate** - устанавливает целевой каталог для tempalte. + * **getDefaultTemplate** - опция для извлечения шаблона по умолчанию. + + Итак, после этого вы получите шаблон qif по умолчанию в targetDir. + ```bash + ~/qifTemplate$ tree + . + └── defaultQIFWTemplate + ├── config + │ ├── config.xml + │ └── controlScript.qs + └── packages + └── Application + └── meta + ├── installscript.qs + └── package.xml + + 5 directories, 4 files + + ``` + +2. Измените шаблон по умолчанию. + Для отключения ярлыков вам необходимо изменить метод generateShortCutCmd вашего пакета. В моем случае это **defaultQIFWTemplate/packages/Application/meta/installscript.qs** + + Это реализация сценария установки по умолчанию: + ``` js + function Component() { + + } + + function extractFileName(path) { + const fullName = path.substring(path.lastIndexOf('/') + 1); + + const index = fullName.lastIndexOf('.'); + if (index >= 0) { + return fullName.substring(0, index) + } + + return fullName; + } + + function generateShortCutCmd(cmd) { + if (systemInfo.kernelType === "winnt") { + + console.log("create icons!!! on Windows"); + + component.addOperation( + "CreateShortcut", + "@TargetDir@/" + cmd + ".bat", + "@DesktopDir@/" + extractFileName(cmd) + ".lnk", + "iconPath=@TargetDir@/icons/Icon.png", + "iconId=0"); + + } + + + if (systemInfo.kernelType === "linux") { + console.log("create icons!!! on LINUX"); + const name = extractFileName(cmd); + component.addOperation("CreateDesktopEntry", + "@HomeDir@/.local/share/applications/" + name + ".desktop", + "Version=@Version@\n + Type=Application\n + Terminal=false\n + Exec=\"@TargetDir@/" + cmd + ".sh\"\n + Name=" + name + "\n + Icon=@TargetDir@/icons/Icon.png\n + Name[en_US]=" + name); + + console.log("create icons!!! on LINUX done"); + } + } + + Component.prototype.createOperations = function() { + // call default implementation to actually install README.txt! + component.createOperations(); + + const cmdArray = []; // will be changed in cqtdeployer + + cmdArray.forEach( function (item){ + generateShortCutCmd(item); + }); + + } + ``` + + Добавьте в начало метода generateShortCutCmd следующие строки для отключения генерации ярлыков приложения *"myExecutableFile2"*: + + ``` js + function generateShortCutCmd(cmd) { + if (cmd.include("myExecutableFile2")) + return; + ... + } + ``` + +3. Добавьте измененный шаблон в команду развертывания. + ```bash + cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif qifTemplate/defaultQIFWTemplate + ``` + +Все сделано. Теперь у вас есть дистрибутив с отключенным ярлыком для приложения myExecutableFile2. + +## Примечание. Если вы используете файл конфигурации или другую команду развертывания, ваша конфигурация развертывания должна соответствовать конфигурации генерации шаблона. \ No newline at end of file diff --git a/md/ru/EnvironmentVariables.md b/md/ru/EnvironmentVariables.md new file mode 100644 index 0000000..5e777d7 --- /dev/null +++ b/md/ru/EnvironmentVariables.md @@ -0,0 +1,43 @@ +# Переменные окружения CQtDeployer +Эта страница содержит информацию о переменных содержащихся в скрипте запуска по умолчанию. + +## Инициализация +Все переменные окружения инициализируются в скрипте запуска по умолчанию. Поэтому, если вы используете опцию runScript, вам необходимо вручную воссоздать все необходимые переменные. + + +## Список стандартных переменных + +| Имя переменной | Описание | +| --- | --- | +| CQT_PKG_ROOT | Эта переменная содержит путь к корню текущего пакета. +| CQT_RUN_FILE | Эта переменная содержит путь к скрипту запуска используемого приложения. | + + +## Описания определений + +**корень текущего пакета** - Этот корень является локальным корнем для любых отдельных пакетов. + + +Пример : +``` 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/md/ru/ExtraFiles.md b/md/ru/ExtraFiles.md new file mode 100644 index 0000000..8f87a33 --- /dev/null +++ b/md/ru/ExtraFiles.md @@ -0,0 +1,104 @@ +# Добавление дополнительных данных в дистрибутив. + +CQtDeployer поддерживает работу с дополнительными файлами данных. + +Для этого используйте параметры -extraData и -extraDataOut. + +## Примеры: + +### Добавление собственных файлов в корневой каталог дистрибутива. + +``` +cqtdeployer -extraData путь / к / my / customFile +``` + +Или в configFile.json + +``` json +{ + ... + "extraData": "./path/to/my/customFile" + ... +} +``` + +Эта команда поддерживает список аргументов. + + +``` bash +cqtdeployer -extraData path/to/my/customFile,path/to/my/customFile2,path/to/my/customFile3 +``` + +Или в configFile.json + +``` json +{ + ... + "extraData": [ + "./path/to/my/customFile", + "./path/to/my/customFile2", + "./path/to/my/customFile3" + ] + ... +} +``` + +### Изменение расположения дополнительных файлов данных. + +Для изменения местоположения используйте параметры extraDataOut. Эта опция меняет путь назначения относительно корня дистрибутива. + +### Пример. Добавьте пользовательские скрипты в папку скриптов в Distribution. + +``` bash +cqtdeployer -extraData /path/to/myScripts.sh,/another/path/to/myScripts.sh -extraDataOut scripts +``` + +Или в configFile.json + +``` json +{ + ... + "extraData": [ + "./path/to/myScripts.sh", + "./another/path/to/myScripts.sh" + ], + "extraDataOut": "скрипты" + ... +} +``` + +## Пакеты +Опции extraData и extraDataOut поддерживают работу с пакетами. Дополнительную информацию о пакетах см. На [странице](Packing.md) упаковки. + +Иногда нам нужно создать многопакетное приложение. Например, создайте установщик для приложения client-server с клиентскими и серверными приложениями. Клиент и сервер имеют собственные файлы конфигурации по умолчанию. Мы добавляем файлы config с помощью опции extraData. + +Для создания большого дистрибьютора я рекомендую использовать [confFile](DeployConfigFile.md). + +## Пример применения мультиупаковки. + + +``` json +{ + + "корзина": [ + "myClientExecutable", + "myServerExecutable" + ], + + "targetPackage": [ + ["Клиент", "myClientExecutable"], + ["Сервер", "myServerExecutable"] + ], + + "extraData": [ + ["Клиент", "./path/to/clientConfig.conf"], + ["Сервер", "./path/to/serverConfig.conf"] + ], + "extraDataOut": [ + ["Клиент", "defaultConfigurations"], + ["Сервер", "defaultConfigurations"] + ] +} +``` + +Эта конфигурация создает дистрибутив с двумя приложениями (клиент и сервер). Каждое приложение имеет собственный файл конфигурации в папке defaultConfigurations. diff --git a/md/ru/ExtractDefaultsTemplates.md b/md/ru/ExtractDefaultsTemplates.md new file mode 100644 index 0000000..d570b0b --- /dev/null +++ b/md/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. +Если вы хотите получить больше информации о доступных пакетах, смотрите упаковку [страница](Packing.md). \ No newline at end of file diff --git a/md/ru/Guide.md b/md/ru/Guide.md new file mode 100644 index 0000000..9fef22f --- /dev/null +++ b/md/ru/Guide.md @@ -0,0 +1,580 @@ +# Создания установщика прямо из qt creator. +# Как развернуть приложение C ++ + +В этой статье я описываю процессы развертывания приложения c++/qt с помощью cqtdeployer. + +## Рекомендация +Если вам нужна максимальная стабильность вашего дистрибутива и вы хотите запускать свое приложение в разных дистрибутивах с разными версиями, вам необходимо использовать Qt из официального [build](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5). + +## Кейс +В этом случае мы развертываем приложение Qt GUI для Ubuntu 16.04, Ubuntu 18.04 и Ubuntu 20.04++. + +**Если вы хотите поддерживать все дистрибутивы, начиная с Ubuntu 16.04, вам необходимо собрать и развернуть приложение в более старом дистрибутиве (в моем случае это 16.04)** + +## Установить CQtDeployer +Если вы хотите использовать системный qt из своей ОС, установите [классическую](https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run) версию cqtdeployer. + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run +``` + +``` +chmod + x LinuxInstaller.run +./LinuxInstaller.run +``` + + +Выберите последнюю стабильную версию (1.4) + + + +Выполнено. + +Если вы используете официальную сборку qt, вы можете использовать snap-версию cqtdeployer. + +``` +sudo snap install cqtdeployer +``` + +После установки добавьте необходимые разрешения. + +``` +sudo snap connect cqtdeployer:process-control +sudo snap connect cqtdeployer:removable-media +sudo snap connect cqtdeployer:system-backup +``` + +Выполнено!!! + +## Развертывание приложения Qt GUI + +### Разверните исполняемый файл. + +* Для систем Linux: +```bash +cqtdeployer -bin myexecutable +``` + +* Для систем Windows: +``` bash +cqtdeployer -bin myexecutable.exe -qmake C: /Qt/5.15.0/min_gw/bin/qmake.exe +``` + +* Для кроссплатформенной сборки (Linux -> Windows) +``` bash +cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/ bin / qmake +``` + +## Дополнительные параметры + +Если вы используете дополнительные библиотеки, просто добавьте путь для cqtdeployer к используемым библиотекам. +``` bash +cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs +``` + +Если вы хотите найти библиотеки рекурсивно из пути libDir, просто добавьте параметр рекурсивной глубины. +``` bash +cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 +``` + +Если ваше приложение использует qml, просто добавьте опцию qmlDir +``` bash +cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources +``` + +Если вы хотите создать простой установщик для своего приложения, просто добавьте опцию gif. +``` +cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif +``` + +Если cqtdeployer не нашел qmake, добавьте параметр -qmake в команду вызова. + +``` +cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake/path/to/my/qmake + +``` + +# На живом примере animation из [Примеров Qt](https://doc.qt.io/qt-5/qtquick-animation-example.html) + + +1. Собираем проект в релизную сборку + 1. Выполняем qmake с опцие -r для релизной сборки. + + ```bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . + ``` + + 2. Вызываем ваш make generator + + * Для Linux: + ```bash + make -j${nproc} + ``` + * Для Windows + ```bash + Qt/Tools/QtCreator/bin/jom.exe + ``` + + ``` bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} + g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp + /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp + /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp + g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_animation.o qrc_animation.cpp + g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp + g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread + ``` +3. Находим наш получившийся исполняемый файл + Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** + В моем случае исполняемый файл лежит в корневом катологе проекта. + ``` bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree + . + ├── animation # Вот он. + ├── animation.pro + ├── animation.qml + ├── animation.qmlproject + ├── animation.qrc + ├── basics + │ ├── animators.qml + │ ├── color-animation.qml + │ ├── images + │ │ ├── face-smile.png + │ │ ├── moon.png + │ │ ├── shadow.png + │ │ ├── star.png + │ │ └── sun.png + │ └── property-animation.qml + ├── behaviors + │ ├── behavior-example.qml + │ ├── FocusRect.qml + │ ├── SideRect.qml + │ ├── tvtennis.qml + │ └── wigglytext.qml + ├── doc + │ ├── images + │ │ └── qml-animations-example.png + │ └── src + │ └── animation.qdoc + ├── easing + │ └── easing.qml + ├── main.cpp + ├── main.o + ├── Makefile + ├── pathanimation + │ └── pathanimation.qml + ├── pathinterpolator + │ └── pathinterpolator.qml + ├── qrc_animation.cpp + ├── qrc_animation.o + ├── qrc_shared.cpp + ├── qrc_shared.o + └── states + ├── qt-logo.png + ├── states.qml + └── transitions.qml + + 10 directories, 33 files + ``` + +4. Вызываем cqtdeployer для формирования Базового Дистрибутива + + Для Linux: + ``` bash + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + ``` + Для Windows: + ``` bash + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe + ``` + + ``` bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + Info: Deploy ... + Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit + Info: target deploy started!! + Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir + Info: platform : libqvnc is disabled + Info: platform : libqvnc is disabled + Info: platform : libqwebgl is disabled + Info: platform : libqwebgl is disabled + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 + Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm + Info: try deploy msvc + Info: deploy done! + Info: copy ::/shared/Distributions/Templates/Icon.png + Error: not exits + Info: [0] Parsed arguments, ok. + + Info: [2] Collecting information about available packages... + + Info: [4] Found subdirectory "Application" + + Info: [4] - it provides the package "Application" - "1.0" + + Info: [4] Copying component data for "Application" + + Info: [5] Compressing data directory "bin" + + Info: [21] Compressing data directory "icons" + + Info: [31] Compressing data directory "lib" + + Info: [11111] Compressing data directory "plugins" + + Info: [11740] Compressing data directory "qml" + + Info: [11786] Compressing data directory "translations" + + Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") + + Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" + [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" + + Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" + + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" + + Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" + + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" + + Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" + + Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" + [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" + + Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" + + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" + + Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" + + Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" + + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" + [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" + + Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" + + Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" + + Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" + + Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" + + Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" + + Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" + + Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" + + Info: [12360] done. + + Info: [12360] Begin to copy configuration file and data. + + Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" + + Info: [12360] done. + + Info: [12360] Read dom element: <Name>animation</Name>. + + Info: [12360] Read dom element: <Version>1.0</Version>. + + Info: [12360] Read dom element: <Title>animation</Title>. + + Info: [12360] Read dom element: <Publisher>Company</Publisher>. + [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. + [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. + + Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. + [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. + + Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. + + Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" + + Info: [12360] done. + + Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. + [12360] Read dom element: <ProductUrl></ProductUrl>. + + Info: [12360] done. + + + Info: [12362] Creating the binary + + Info: [12407] Creating resource archive for "Application" + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") + + Info: [12449] Cleaning up... + ``` + +5. Готово Дистрибутив был сохранен в папку **DistributionKit** +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run +``` + + +После установки буду созданы все необходимые ярлыки. + + + + + + +## Интеграция с QtCreator + +К сожалению, на данный момент нет интеграции с qtcreator. +Единственный способ - включить цель сборки для **qmake** или **cmake** + +### qmake + +```qmake +QT_DIR= $$[QT_HOST_BINS] +win32:QMAKE_BIN= $$QT_DIR/qmake.exe +contains(QMAKE_HOST.os, Linux):{ + QMAKE_BIN= $$QT_DIR/qmake +} + +deploy.commands= cqtdeployer -bin $$DESTDIR/$$TARGET -qmake $$QMAKE_BIN -libDir $$PWD -qmlDir $$PWD -recursiveDepth 5 qif + +QMAKE_EXTRA_TARGETS += deploy + +``` + +### cmake +```cmake + find_program(Q_MAKE_EXE qmake) + + find_program(CQT_EXE cqtdeployer) + + IF(NOT EXISTS ${CQT_EXE}) + message("the cqtdeployer not exits please install the cqtdeployer and run cmake again!") + return() + endif(NOT EXISTS ${CQT_EXE}) + + ADD_CUSTOM_TARGET( + deploy + COMMAND cqtdeployer clear -bin ${CURENT_PROJECT} -qmake ${Q_MAKE_EXE} -libDir ${PROJECT_SOURCE_DIR} -qmlDir ${PROJECT_SOURCE_DIR} -recursiveDepth 5 + COMMENT "Deploy: cqtdeployer clear -bin ${CURENT_PROJECT} -qmake ${Q_MAKE_EXE} -libDir ${PROJECT_SOURCE_DIR} -qmlDir ${PROJECT_SOURCE_DIR} -recursiveDepth 5" + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + ) +``` + +Параметр **libDir** используется для установки путей к каталогам, в которых пути содержат зависимости вашего приложения, а параметр **qmlDir** используется для установки путей к каталогам, содержащих файлы qml, необходимые вашему приложению. В этом примере корень исходного кода приложения выбирается этими двумя параметрами. + +Параметр **recursiveDepth** используется для установки глубины поиска **libDir** и **qmlDir**. + +Параметр **qif** используется для создания установщика с использованием Qt Installer Framework. + + + +## Пример интеграции +1. Создаем тестовый проект + ``` qmake + QT += quick + + CONFIG += c++11 + + # You can make your code fail to compile if it uses deprecated APIs. + # In order to do so, uncomment the following line. + #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + + SOURCES += \ + main.cpp + + RESOURCES += qml.qrc + + # Additional import path used to resolve QML modules in Qt Creator's code model + QML_IMPORT_PATH = + + # Additional import path used to resolve QML modules just for Qt Quick Designer + QML_DESIGNER_IMPORT_PATH = + + # Default rules for deployment. + qnx: target.path = /tmp/$${TARGET}/bin + else: unix:!android: target.path = /opt/$${TARGET}/bin + !isEmpty(target.path): INSTALLS += target + + + QT_DIR= $$[QT_HOST_BINS] + win32:QMAKE_BIN= $$QT_DIR/qmake.exe + contains(QMAKE_HOST.os, Linux):{ + QMAKE_BIN= $$QT_DIR/qmake + } + + DESTDIR=$$PWD/Build + + deploy.commands= cqtdeployer -bin $$DESTDIR/$$TARGET -qmake $$QMAKE_BIN -libDir $$PWD -qmlDir $$PWD -recursiveDepth 5 qif + + QMAKE_EXTRA_TARGETS += deploy + + ``` + +2. Открываем панель управления проектом +  + +3. Выбираем релизную сборку. +  + + +3. Добавляем "Особый этап сборки" +  + +4. В поле "Make arguments" добавляем наш этап развертывания "Deploy" +  + +5. Сохраняем +6. Запускаем сборку. + +#### На выходе вы получите папку DistributionKit с установщиком вашего приложения. diff --git a/md/ru/Home.md b/md/ru/Home.md new file mode 100644 index 0000000..f33670e --- /dev/null +++ b/md/ru/Home.md @@ -0,0 +1,25 @@ +# Добро пожаловать в "C Qt Deployer"! +#  + +*************************** + +# Основные разделы + +* [Описание 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) +* [Отключение стандартных ярлыков](DisableShortcats.md) + + +## Поддержите проект +Если вам нравится то, что мы делаем, и это приносит вам пользу, вы можете поддержать проект на официальной странице [QuasarApp в Patreon](https://www.patreon.com/QuasarApp) \ No newline at end of file diff --git a/md/ru/Options.md b/md/ru/Options.md new file mode 100644 index 0000000..263f90e --- /dev/null +++ b/md/ru/Options.md @@ -0,0 +1,148 @@ + + +## Общие правила использования параметров +``` +cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 +``` + +* Все параметры должны начинается с знака '-' за исключением параметров, из котегории "Флаги". +* После указания нужного параметра нужно в обязательном порядке указать значение +* Некоторые параметры поддерживают перечисления (массивы значений). При инициализации таких параметров укажите список значений через ',' без прабелов. Если вы используете какой либо язык программирования и вызываете процесс cqtdeployer то массив значений должен передаваться как 1 параметр. +* Некоторые параметры поддерживают пересисления с возможностью выбрать цель для которой будет применен флаг. Цель и значения разделяются при помощи знака ';'. Пример -libOut target1;value1,target2;value2,defaultValue. +* Для включения какого либо флага достаточно просто включить в список опций имя флага. + +## Обозначения в таблице + + * **-binDir [params]** - параметр без поддержки массивов. + * **-bin [params,list]** - параметр c поддержкой массивов. В качестве разделителя используется ','. + * **-libOut [package;path,path]** - параметр c поддержкой выбора пакета для которого бутет установленно значение флага. В качестве разделителя используется ';'. Обратитте внимание что для перечисления значений параметра используется правило описанное выше. Последний параметр не имеет значение пакета, это значит что это значение будет установленно для всех не настроенных пакетов по умолчанию. + * **clear** - флаг + +## Определения в описании +**Системное окружение** - пути к системным библиотекам. + * Windows: + * Пути, определенные в переменной PATH. + * C:/Windows/System32 + * C:/Windows/SysWOW64 + + * Linux: + * Пути, определенные в переменных LD_LIBRARY_PATH и PATH. + * /usr/lib + * /lib + +**Развертываемые файлы** - это все файлы, которые будут скопированы в дистрибутив (включая исполняемые файлы) + +**Цели** - это все исполняемые файлы, отмеченные опцией bin. + +**Исполняемые файлы** - это все файлы в форматах PE, ELF и Mach-O. + +## Параметры: + +### Флаги + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| init | проинициализирует файл cqtdeployer.json (файл конфигурации)| +| | Например: «cqtdeployer init» - для инициализации базовой конфигурации пакета| +| | "cqtdeployer -init multi" - для инициализации конфигурации нескольких пакетов| +| | "cqtdeployer -init single" - для инициализации конфигурации одного пакета | +| help / h | Показывает справку | +| clear | Удаляет все старые файлы (с прошлого запуска) | +| force-clear | Удаляет целевую директорию перед развертыванием | +| noStrip | Пропускает шаг strip | +| noTranslations | Пропускает файлы переводов | +| noOverwrite | Запрещает замену уже существующих файлов. | +| noCheckRPATH | Отключает автоматический поиск путей к qmake в исполняемых файлах.| +| noCheckPATH | Отключает автоматический поиск путей к qmake в системном окружении.| +| noRecursiveiIgnoreEnv | Отключает рекурсивное игнорирование переменной среды для флага ignoreEnv. | +| v / version | Показывает версию приложения | +| qif | Создаст установщик QIF для развертываемой программы" | +| | Примеры: cqtdeployer qif | +| | Начиная с версии CQtDeployer 1.5 вы можете указать путь к своему собственному шаблону установщика. | +| | Примеры: cqtdeployer -qif path/to/myCustom/qif. Подробнее можно посмотреть [здесь](QIF.md) | +| deb | Создаст deb пакет для развертываемой программы" | +| | Примеры: cqtdeployer deb | +| | Вы можете указать путь к своему собственному шаблону пакета. | +| | Примеры: cqtdeployer -deb path/to/myCustom/DEBIAN. Подробнее можно посмотреть [здесь](DEB.md) | +| deploySystem | Копирует все библиотеки кроме libc | +| | (не рекомендуется, так как занимает много памяти, возможны конфликты библиотек) | +| deploySystem-with-libc | Копирует все зависимости в том числе и libc, не рекомендуется использовать с gui приложения, в место этого используйте опцию deploySystem | +| noQt | Игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt. | +| allowEmptyPackages | Разрешите настраивать пустые пакеты. | +| getDefaultTemplate | Извлекает deb или qif шаблоны по умолчанию. Для получения дополнительной информации см. [Страницу](ExtractDefaultsTemplates.md) извлечения шаблонов по умолчанию. | +| noHashSum | Отключить вычисление хеш-суммы пакетов | + +### Параметры развертывания: + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -bin [list,params] | Развертываемый файл или папка. пример -bin ~/my/project/bin/,~/my/project/bin.exe. Для файлов: эти файлы будут безоговорочно скопированы в целевой каталог, независимо от их формата или суффикса. Для папок: CQtDeployer войдет в эти папки и нерекурсивно скопирует все развертываемые файлы в целевой каталог. Затем CQtDeployer извлечет все зависимости скопированных файлов. CQtDeployer будет искать зависимости в системной среде и в путях libDir. | +| -binPrefix [prefixPath] | Устанавливает путь префикса для опции bin. Пример: **-bin path/MyExecutable** - это тоже что и **-bin MyExecutable -binPrefix path** | +| -confFile [params] | Путь к файлу json со всеми конфигурациями развертывания. С помощью этого файла можно добавить нужные опции, тем самым упрастить вызов комманды в консоле. Однако пораметры в кансоле имеют больший приоритет чем в файле. Для получения дополнительной информации об этом флаге см. [Вики](DeployConfigFile) | +| -qmlDir [params] | Папка qml. пример -qmlDir ~/my/project/qml | +| -qmake [params] | Путь к qmake. пример | +| | -qmake ~/Qt/5.14.0/gcc_64/bin/qmake | +| -ignore [list,params] | Список библиотек для игнорирования | +| | Пример -ignore libicudata.so.56,libicudata2.so.56 | +| -ignoreEnv [list,params] | Список путей для игнорирования. | +| | Пример -ignoreEnv /bad/dir,/my/bad/Dir | +| -libDir [list,params] | Устанавливает дополнительные пути к библиотекам | +| | Пример -libDir ~/myLib,~/newLibs | +| -extraLibs [list,params] | Пример: «-extraLib mySql» - заставляет скопировать все библиотеки, имена которых содержат mySql, в папку проекта. Этот параметр не чувствителен к регистру в Windows и чувствителен к регистру на других платформах. Эта опция будет искать библиотеки только в системных средах, подобных **deploySystem**. | +| -customScript [scriptCode] | Установит дополнительный код в скрипты запуска. | +| -extraPlugin [list,params] | Устанавливает дополнительный путь для extraPlugin приложения| +| -recursiveDepth [params] | Устанавливает глубину поиска библиотек и глубину игнорирования окружения для ignoreEnv (по умолчанию 0) | +| -targetDir [params] | Устанавливает целевой каталог (по умолчанию это путь к первому развертываемому файлу)| +| -runScript [list,parems] | заставляет cqtdeployer заменить сценарий запуска по умолчанию на новый из аргументов параметра. Эта опция копирует все содержимое из входного файла и вставляет весь код в runScript.sh или .bat. Пример использования: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh"| +| -verbose [0-3] | Показывает дебаг лога | + +### Параметры управлениями пакетами: + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -targetPackage [package;tar1,package;tar2]| Создает новый пакет и добавляет в него 'tar1 и tar2'| +| -qmlOut [package;path,path] | Установит путь к папке с qml | +| -libOut [package;path,path] | Установит путь к папке с зависимостями | +| -trOut [package;path,path] | Установит путь к папке с файламми переводов | +| -pluginOut [package;path,path]| Установит путь к папке с плагинами | +| -binOut [package;path,path] | Установит путь к папке с исполняемыми файлами | +| -recOut [package;path,path] | Установит путь к папке с ресурсами | +| -extraDataOut [package;path,path] | Устанавливает путь к каталогу с дополнительными файлами данных. По умолчанию это корневой каталог дистрибутива. | +| -name [package;val,val] | Установит имя пакету. Если указать значение без префикса, то значение будет установленно пакету по умолчанию. | +| -description [package;val,val] | Установит описание пакету | +| -deployVersion [package;val,val]| Установит версию пакету | +| -releaseDate [package;val,val] | Установит дату выпуска пакету | +| -icon [package;val,val] | Установит путь к иконке или логотипу пакету | +| -publisher [package;val,val]| Установит Издательство (автора) пакету | +| -homePage [package;val,val] | Установит URL-адрес домашней страницы для пакета | +| -prefix [package;val,val] | Устанавливает префикс для пакета относительно целевого каталога | +| -extraData [package;val,val]| Добавляет дополнительные файлы или каталоги как цель. Выбранный каталог будет скопирован в расположение extraDataOut с сохранением собственной структуры.| +| -tr [package;val,val] | Добавляет qm файлы в папку переводов. | + +### Параметры управлениями целями: + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -icon [target;val,val] | Установит путь к иконке или логотипу для целе | + +### Параметры управления плагинами: + +| Option | Descriptiion | +| ----------------------------|---------------------------------------------------------- | +| -extraPlugin [пакет; val1; val2, SingeleVal] | Устанавливает дополнительный путь к стороннему плагину приложения | +| -enablePlugins [пакет; val1; val2, SingeleVal] | Включает дополнительные плагины для распространения. | +| -disablePlugins [пакет; val1; val2, SingeleVal] | Отключает плагины для распространения. | +| | Вы можете отключить любой плагин вашей сборки Qt, просто проверте список доступных плагинов в свой qlFolder/plugins папке. +| | Пример: Если вы хотите отключить плагин qxcb: -disablePlugins qxcb. Обратите внимание, что имя плагина указывается без его расширения. + +### Параметры QtInstallFramework: + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -qifStyle [path/to/style.css]| Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar | +| -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | +| -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | + + + +#### Пример: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.0/gcc_64/bin/qmake clear diff --git a/md/ru/Packing.md b/md/ru/Packing.md new file mode 100644 index 0000000..e22d32c --- /dev/null +++ b/md/ru/Packing.md @@ -0,0 +1,130 @@ +# Общая информация об упаковке ваших дистрибутивов в пакеты. + +## Типы упаковки +* Автоматически +* Вручную + +## Автоматические пакеты +Пакеты с этим типом создаются автоматически. +По умолчанию в дистрибутиве есть один основной пакет. Вы можете настроить его, используя [Параметры управления пакетами](Options.md). + +#### Пример (Установить новое имя для pacakge) +``` +ctdeployer ... -name "MyPackage" +``` + +Если в вашем дистрибутиве есть несколько исполняемых файлов, вы можете создать дистрибутив с несколькими пакетами. + +Один пакет может содержать от 1 до бесконечности исполняемых файлов. + +Для настройки пакета необходимо использовать параметр targetPackage. + +Пример использования: + +``` +cqtdeployer ... -targetPackage myPacage; target1, myPacage2; target2 +``` + +Где myPacage - это имя пакета, а target1 - имя исполняемого файла. +Итак, в этом примере создается 2 пакета из 2 целей. + +В следующем примере создается 2 пакета из 3 целей. +``` +cqtdeployer ... -targetPackage myPacage; target1, myPacage; target2, myPacage2; target3 +``` + + +Вы также можете сделать то же самое в файле конфигурации + +``` +{ +"targetPackage": [ + [ + "myPacage", + "target1" + ], + [ + "myPacage2", + "target2" + ] + ] +} +``` + +``` +{ +"targetPackage": [ + [ + "myPacage", + "target1" + ], + [ + "myPacage", + "target2" + ], + [ + "myPacage2", + "target3" + ] + ] +} +``` + + +## Ручные пакеты +Ручные пакеты - это пакеты, созданные по шаблону пользователя. +Например, у вас есть приложение, которое должно выполнять сложный сценарий в пакете debian или программе установки. +Итак, вам нужно создать свой шаблон и добавить путь к вашему шаблону для варианта пакета. + +пример + +``` +cqtdeployer ... -qif /path/to/my/template/installer +``` + +Папка /path/to/my/template/installer должна содержать папку с именем пакета. +например, я развертываю приложение с именем "MyExample", поэтому мой настраиваемый шаблон должен быть расположен в + /path/to/my/template/installer/MyExample путь. + +Для многопакетных дистрибутивов применяются те же правила. + +Ваша папка с шаблонами должна содержать папки с такими же названиями, что и пакеты. + +Пример: + +``` +{ +"targetPackage": [ + [ + "myPacage", + "target1" + ], + [ + "myPacage", + "target2" + ], + [ + "myPacage2", + "target3" + ] + ] +} +``` + +``` +~/path/to/my/template/installer $ tree +. +├── myPacage +│ └── ... +└── myPacage2 + └── ... + +``` + +### Примечание +Вы так же можете извлечь стандартный шаблон пакета для того что бы его переопределить если вас по каким то причинам не устраевает стандартная реализация. Подробнее как это сделать смотрите на этой [странице](ExtractDefaultsTemplates.md). + +## Доступные пакеты +* [Qt Install Framework](QIF.md) +* [ZIP-архив](ZIP.md) +* [Пакет DEB](DEB.md) diff --git a/md/ru/QIF.md b/md/ru/QIF.md new file mode 100644 index 0000000..925e322 --- /dev/null +++ b/md/ru/QIF.md @@ -0,0 +1,109 @@ +## Общие правила использования Qt Installer Framwork + +### Что такое Qt Installer Framwork + +**Qt Installer Framework** (QIF) предоставляет набор инструментов и утилит для создания установщиков для поддерживаемых настольных платформ Qt: Linux, Microsoft Windows и OS X. +В **CQtDeployer** QIF доступен в виде опции qif. + +### Как использовать опцию qif + +Опция qif является булевским параметром для создания Установочного файла. + +#### Пример: + +``` bash + cqtdeployer ... qif +``` + +Где: +* **...** - список других опций. +* **qif** - опция для использования qt installer framework с шаблоном по умолчанию. + + +По умолчанию cqtdeployer создаст установочный файл с одним пакетом в котором будет лежать весь ваш дистрибутив. +Если вы хотите его настроить вы должны использовать [параметр c поддержкой выбора пакета](Options.md) +Для создание нового пакета используйте флаг -targetPackage [package;tar1] + + +Где: + +* **package** - это имя пакета +* **tar1** - это название таргета который должен попасть в этот пакет. + +Или вы можете описать пакеты в [конфигурационном файле](DeployConfigFile.md) + +```json +{ +"targetPackage": [ + [ + "package", + "tar1" + ] +], +} +``` + +# Пользовательский Шаблон для QIF +Начиная с Версии CQtDeployer 1.5 вы можете использовать свой собственный шаблон установщика. Для этого вы должны передать в параметр qif путь к вашему шаблону. + +``` +cqtdeployer ... -qif /path/to/my/custom/qif/template +``` + +### Шаблон +Шаблон qif долже содержать 2 папки: +* packages +* config + +### Внимание +Название пакетов в папке packages должны совподать с названием пакетов при развертывание. +Например: +``` json +"targetPackage": [ + [ + "myCustomInstaller", + "tar1" + ] +], +``` + +``` bash +. +├── config +│ ├── config.xml +│ └── style.qss +└── packages + └── myCustomInstaller + └── meta + ├── installscript.qs + └── package.xml + +4 directories, 4 files + +``` + +Если имена папок не совподут с именами пакетов то CQtDeployer будет использовать стандартный пакет для QIF. + +Если у вас только один пакет, вы можете использовать опцию **name** для установки имени приложения. + +``` +cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller +``` + +#### Не забудьте переименовать папку вашего пакета в имя пакета из опции имени. + + +``` bash +. +├── config +│ ├── config.xml +│ └── style.qss +└── packages + └── myCustomInstaller << "This is folder of the your package" + └── meta + ├── installscript.qs + └── package.xml + +4 directories, 4 files + +``` \ No newline at end of file diff --git a/md/ru/QuickGuide.md b/md/ru/QuickGuide.md new file mode 100644 index 0000000..06dd37f --- /dev/null +++ b/md/ru/QuickGuide.md @@ -0,0 +1,81 @@ + + +Как развернуть приложение с помощью CQtDeployer + +1. Прежде всего вам нужно установить CQtDeployer на вашу платформу + + * Snap (более 14 дистрибутивов Linux): + ``` + sudo snap install cqtdeployer + ``` + или + + Установите из магазина snap и включите все необходимые приложению разрешения. + + [](https://snapcraft.io/cqtdeployer) + + * Другие Linux дистрибутивы [LinuxInstaller.run][1]. + ``` + chmod +x LinuxInstaller.run + ./LinuxInstaller.run + ``` + + * Windows [installer][1] + +2. Скомпилируйте ваш проект в режиме релиза. +3. Разверните ваш исполняемый файл: + + * Для Linux систем: + ``` bash + cqtdeployer -bin myexecutable + ``` + + * Для Windows систем: + ``` bash + cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe + ``` + + * Для кросплатформенной сборки (Linux -> Windows) + ``` bash + cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake + ``` + +## Дополнительные опции + +Если вы используете дополнительные библиотеки, просто добавьте путь к cqtdeployer для используемых библиотек. +``` bash +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs +``` + +Если вы хотите найти библиотеки рекурсивно по пути libDir, просто добавьте рекурсивный параметр Depth. +``` bash +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 +``` + +Если ваше приложение использует qml, просто добавьте опцию qmlDir +``` bash +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources +``` + +Если вы хотите создать простой установщик для вашего приложения, просто добавьте опцию qif. +``` +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif +``` + +Если вы используете системные библиотеки из системного PATH, просто добавьте опцию deploySystem. + +#### Предупреждение: версия Snap не имеет прав доступа к системным файлам. Для развертывания системных библиотек используйте версию cqtdeployer из [установщика][1] + +``` +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif deploySystem +``` + + +### Если у вас есть какие-либо проблемы с использованием cqtdeployer, тогда задавайте вопросы на официальной github [странице][2]. + +### Дополнительные параметры CQtDeployer см. В официальной [документации][3]. + +[1]: https://github.com/QuasarApp/CQtDeployer/releases +[2]: https://github.com/QuasarApp/CQtDeployer/issues +[3]: https://github.com/QuasarApp/CQtDeployer/wiki/Options + diff --git a/md/ru/ReleaseReviews.md b/md/ru/ReleaseReviews.md new file mode 100755 index 0000000..f135d63 --- /dev/null +++ b/md/ru/ReleaseReviews.md @@ -0,0 +1,3 @@ +# Обзоры на релизы + +* [Обзор v1.4 (Бинарный ящик)](1_4.md) diff --git a/md/ru/ZIP.md b/md/ru/ZIP.md new file mode 100644 index 0000000..256191e --- /dev/null +++ b/md/ru/ZIP.md @@ -0,0 +1,44 @@ +## Общие правила использования ZIP + +#### Доступно с версии CQtDeployer 1.5 + +### Как использовать опцию zip + +Просто добавьте в cqtdeployer опцию «zip». + +#### Например: + +``` bash + cqtdeployer ... zip +``` + +Где: +* ** ... ** - список других опций. +* ** zip ** - опция использования zip архивов. + + +По умолчанию cqtdeployer создает один zip-архив. +Если вы хотите создать рассылку нескольких пакетов, вы должны использовать [Параметры управления пакетами](Options.md) +Чтобы создать новый пакет, используйте -targetPackage [package; tar1] вариант + +cqtdeployer создает zip-архив для каждого пакета. + +Где: + +* **package** - это название пакета +* **tar1** - это имя цели, которая должна быть включена в этот пакет. + +Или вы можете описать пакеты в [файле конфигурации](DeployConfigFile.md) + + +```JSON +{ +"targetPackage": [ + [ + "package", + "Tar1" + ], +], +"zip": true +} +``` From dd9444861761af6f39211c72e15ad79cca3abc81 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 26 May 2021 11:38:52 +0300 Subject: [PATCH 030/222] v 1.5.0.5 "bug fix release" --- 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 46415e9..aa11cb4 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.0.37 +VERSION = 1.5.1.0 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index c93ec47..3c13366 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.0.37</Version> + <Version>1.5.1.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 0ca5675..3f89251 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.0.37</Version> + <Version>1.5.1.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 75c6941..2df7426 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.0.37</Version> + <Version>1.5.1.0</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index e510669..2a0c26c 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.0.37 +Version=1.5.1.0 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.37 +X-GNOME-Bugzilla-Version=1.5.1.0 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 75bbfdb..9b7eb15 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.0.37' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.1.0' # 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 169889e5f5ce7dd9dbb6dfca0e36d2bdb97ceb88 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Wed, 26 May 2021 12:05:07 +0300 Subject: [PATCH 031/222] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0563575..b629df4 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ The Building or installation instructions see on wiki [page](md/en/Build-and-Ins - [IDE65XX](https://github.com/emartisoft/IDE65XX) - IDE 65XX is one of the open source IDE options available for developers working with Kick Assembler. - [Tanks](https://github.com/anevero/tanks) - 2D game written in C++ & Qt for Windows, Linux and Android - [stegano](https://github.com/taskmaster9001/stegano) - Bit-level Image Manipulation Software with Qt Framework - Steganography Pet Project +- [Online_Board](https://github.com/MaxMalts/Online_Board) - This is a board that you can share with others. *** From 8a39ed58bfbafef75b414611c0c0e5c48d0e07d9 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 26 May 2021 13:39:29 +0300 Subject: [PATCH 032/222] fix multitargets debian pacakges --- Deploy/Distributions/idistribution.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 48b7a86..937b389 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -195,7 +195,7 @@ bool iDistribution::collectInfo(const DistroModule& pkg, info.Prefix = releativeLocation(pkg); QString cmdArray = "["; - QString bashArray = ""; + QString bashArray = "("; int initSize = cmdArray.size(); for (const auto &target :pkg.targets()) { @@ -210,6 +210,7 @@ bool iDistribution::collectInfo(const DistroModule& pkg, } } cmdArray += "]"; + bashArray += ")"; info.Custom = {{"[\"array\", \"of\", \"cmds\"]", cmdArray}}; From 8d4f95d7b16452ebdefda2aa9945f803f12b1a8d Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Wed, 26 May 2021 18:50:54 +0800 Subject: [PATCH 033/222] Fix the wrong condition check about modifying PATH Otherwise, it will cause the environment variable PATH to become longer by appending ";%cqtDir%" to it during each installation. --- QIFData/packages/cqtdeployer.1_5/meta/installscript.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js index 17cd007..cb08b89 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js +++ b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js @@ -106,7 +106,7 @@ function systemIntegration() { console.log("path befor strip : " + PATH); - if (!PATH.includes(cqtDir) || !cqtDir.length) { + if (!PATH.includes(cqtDir) && cqtDir.length) { PATH = stripWinPath(PATH); console.log("path after strip : " + PATH); From 58b1dab30101c372298389cbd0e8ccfde665125c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 26 May 2021 15:48:36 +0300 Subject: [PATCH 034/222] fix debian pacakge of the cqtdeployer --- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 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/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 3c13366..ea5141d 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.1.0</Version> + <Version>1.5.1.1</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 3f89251..13e3f88 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.1.0</Version> + <Version>1.5.1.1</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 1cb938d..94540d1 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.0.34 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.1.1 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 2df7426..65da17f 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.1.0</Version> + <Version>1.5.1.1</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 2a0c26c..cf82bb2 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.1.0 +Version=1.5.1.1 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.1.0 +X-GNOME-Bugzilla-Version=1.5.1.1 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 9b7eb15..bf0126d 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.1.0' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.1.1' # 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 1e2785d0b017f7e100cf293d7928d935504ce123 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 26 May 2021 19:23:46 +0300 Subject: [PATCH 035/222] typo error --- Deploy/Deploy.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index aa11cb4..a8f196d 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.1.0 +VERSION = 1.5.1.1 DEFINES += APP_VERSION='\\"$$VERSION\\"' From c63d0240eefd1d7c0140b16d65b8edc7b44a578b Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 31 May 2021 12:33:30 +0300 Subject: [PATCH 036/222] update QIF --- QIFData/packages/QIF/meta/package.xml | 4 ++-- QIFData/packages/cqtdeployer/meta/package.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/QIFData/packages/QIF/meta/package.xml b/QIFData/packages/QIF/meta/package.xml index 00b3fed..aada764 100644 --- a/QIFData/packages/QIF/meta/package.xml +++ b/QIFData/packages/QIF/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>Qt Installer Framework</DisplayName> <Description>Qt Installer Framework for CQtDeployer</Description> - <Version>4.1.0.2</Version> - <ReleaseDate>2021-04-20</ReleaseDate> + <Version>4.1.1.0</Version> + <ReleaseDate>2021-05-31</ReleaseDate> <Default>true</Default> </Package> diff --git a/QIFData/packages/cqtdeployer/meta/package.xml b/QIFData/packages/cqtdeployer/meta/package.xml index 62c2836..35d0c06 100644 --- a/QIFData/packages/cqtdeployer/meta/package.xml +++ b/QIFData/packages/cqtdeployer/meta/package.xml @@ -2,9 +2,9 @@ <Package> <DisplayName>CQtDeployer</DisplayName> <Description>CQtDeployer</Description> - <Version>1.4</Version> + <Version>1.5</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> - <ReleaseDate>2020-09-06</ReleaseDate> + <ReleaseDate>2021-05-25</ReleaseDate> <SortingPriority>100</SortingPriority> </Package> From a261ca623018a7fe44ebbbf4420084ea2bc26d4c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 5 Jun 2021 17:44:52 +0300 Subject: [PATCH 037/222] move snap build to core20 --- QIFData/installerCQtDeployer.pri | 9 +++------ snap/snapcraft.yaml | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 94540d1..5532eff 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -66,11 +66,9 @@ message( ONLINE_REPO_DIR $$ONLINE_REPO_DIR) $$PWD/../Distro/$$OUT_FILE } -buildSnap.commands = snapcraft -clearSnap.commands = rm parts prime stage *.snap -rdf -clearSnap2.commands = rm parts prime stage -rdf - -deploySnap.commands = rm *.snap -rdf && chmod 777 -R $$PWD/../prime && snapcraft && cp *.snap $$PWD/../Distro/ +buildSnap.commands = snapcraft --use-lxd +cleanSnap.commands = snapcraft clean --use-lxd +deploySnap.commands = cp *.snap $$PWD/../Distro/ releaseSnap.commands = snapcraft push *.snap # bad patern @@ -81,7 +79,6 @@ releaseSnap.commands = snapcraft push *.snap # bad patern unix:deploy.depends += clearSnap unix:deploy.depends += buildSnap unix:deploy.depends += deploySnap - unix:deploy.depends += clearSnap2 unix:release.depends += releaseSnap } diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index bf0126d..c0ebc23 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -16,7 +16,7 @@ description: | grade: stable # must be 'stable' to release into candidate/stable channels confinement: strict # use 'strict' once you have the right plugs and slots -base: core18 +base: core20 icon: snap/gui/icon.png apps: cqtdeployer: From 867795ea263ecd391e3f641c0ddf8935cef07265 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 5 Jun 2021 20:41:27 +0300 Subject: [PATCH 038/222] Revert "move snap build to core20" This reverts commit a261ca623018a7fe44ebbbf4420084ea2bc26d4c. --- QIFData/installerCQtDeployer.pri | 9 ++++++--- snap/snapcraft.yaml | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 5532eff..94540d1 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -66,9 +66,11 @@ message( ONLINE_REPO_DIR $$ONLINE_REPO_DIR) $$PWD/../Distro/$$OUT_FILE } -buildSnap.commands = snapcraft --use-lxd -cleanSnap.commands = snapcraft clean --use-lxd -deploySnap.commands = cp *.snap $$PWD/../Distro/ +buildSnap.commands = snapcraft +clearSnap.commands = rm parts prime stage *.snap -rdf +clearSnap2.commands = rm parts prime stage -rdf + +deploySnap.commands = rm *.snap -rdf && chmod 777 -R $$PWD/../prime && snapcraft && cp *.snap $$PWD/../Distro/ releaseSnap.commands = snapcraft push *.snap # bad patern @@ -79,6 +81,7 @@ releaseSnap.commands = snapcraft push *.snap # bad patern unix:deploy.depends += clearSnap unix:deploy.depends += buildSnap unix:deploy.depends += deploySnap + unix:deploy.depends += clearSnap2 unix:release.depends += releaseSnap } diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index c0ebc23..bf0126d 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -16,7 +16,7 @@ description: | grade: stable # must be 'stable' to release into candidate/stable channels confinement: strict # use 'strict' once you have the right plugs and slots -base: core20 +base: core18 icon: snap/gui/icon.png apps: cqtdeployer: From 898ae109ae2794410c4fed8cc0d1ba0240507722 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Wed, 9 Jun 2021 11:01:04 +0300 Subject: [PATCH 039/222] ref #560 correction ru en Guide.md --- md/en/Guide.md | 515 ++++++++++++++++++++++--------------------------- md/ru/Guide.md | 22 +-- 2 files changed, 243 insertions(+), 294 deletions(-) diff --git a/md/en/Guide.md b/md/en/Guide.md index 0f2a550..e853544 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -51,45 +51,45 @@ Done!!! * For Linux systems: ```bash - cqtdeployer -bin myexecutable +cqtdeployer -bin myexecutable ``` * For Windows systems: ```bash - cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe +cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe ``` * For crossplatform build (Linux -> Windows) ```bash - cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake +cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake ``` ## Extra options If you use extra libraries, just add path for cqtdeployer to used libs. ```bash - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs ``` If you want find libraries recursively from libDir path, just add recursive Depth option. ```bash - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 ``` If you application use qml, just add qmlDir option ```bash - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` If you want create simple installer for your application just add gif option. ``` - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif ``` If cqtdeployer not found qmake then add the -qmake option to an invoke command. ``` - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake ``` @@ -99,21 +99,21 @@ If cqtdeployer not found qmake then add the -qmake option to an invoke command. 1. Build the project as a release 1. Run qmake with the -r option for release build ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . ``` 2. Call your make * For Linux: ```bash - make -j${nproc} + make -j${nproc} ``` * For Windows ```bash - Qt/Tools/QtCreator/bin/jom.exe + Qt/Tools/QtCreator/bin/jom.exe ``` ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp @@ -125,7 +125,7 @@ If cqtdeployer not found qmake then add the -qmake option to an invoke command. If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder In my case, the executable file is located in the root directory of the project. ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . ├── animation # Here it is. ├── animation.pro @@ -178,287 +178,236 @@ If cqtdeployer not found qmake then add the -qmake option to an invoke command. For Linux: ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` For Windows: ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - Info: Deploy ... - Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit - Info: target deploy started!! - Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir - Info: platform : libqvnc is disabled - Info: platform : libqvnc is disabled - Info: platform : libqwebgl is disabled - Info: platform : libqwebgl is disabled - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 - Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm - Info: try deploy msvc - Info: deploy done! - Info: copy ::/shared/Distributions/Templates/Icon.png - Error: not exits - Info: [0] Parsed arguments, ok. + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + Info: Deploy ... + Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit + Info: target deploy started!! + Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQmlWorkerScript.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQmlWorkerScript.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuickParticles.2/libparticlesplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuickParticles.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuickParticles.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2libqtquick2plugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir + Info: platform : libqvnc is disabled + Info: platform : libqvnc is disabled + Info: platform : libqwebgl is disabled + Info: platform : libqwebgl is disabled + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearerlibqconnmanbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearerlibqgenericbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearerlibqnmbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengineslibqsvgicon.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqgif.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqicns.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqico.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqjpeg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqsvg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqtga.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqtiff.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqwbmp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqwebp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatforminputcontexts/libcomposeplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatforminputcontexts/libibusplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqeglfs.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqlinuxfb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqminimal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqminimalegl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqoffscreen.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-generic.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqxcb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatformthemes/libqgtk3.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatformthemes/libqxdgdesktopportal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-decoration-client/libbradient.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libdmabuf-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libdrm-egl-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libqt-plugin-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libshm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libvulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libxcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libxcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-dmabuf-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-drm-egl-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-linux-dmabuf-unstable-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-shm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-vulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-wayland-eglstream-controller.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libfullscreen-shell-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libivi-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libwl-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libxdg-shell-v5.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libxdg-shell-v6.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libxdg-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsxcbglintegrations/libqxcb-egl-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsxcbglintegrations/libqxcb-glx-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5EglFSDeviceIntegration.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 + Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5RemoteObjects.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5QuickParticles.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5QmlWorkerScript.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5WaylandClient.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModelsso.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5WaylandCompositor.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ar.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ca.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_cs.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_gd.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_he.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_it.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_uk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_zh_TW.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_uk.qm + Info: try deploy msvc + Info: deploy done! + Info: copy ::/shared/Distributions/Templates/Icon.png + Error: not exits + Info: [0] Parsed arguments, ok. + Info: [2] Collecting information about available packages... + Info: [4] Found subdirectory "Application" + Info: [4] - it provides the package "Application" - "1.0" + Info: [4] Copying component data for "Application" + Info: [5] Compressing data directory "bin" + Info: [21] Compressing data directory "icons" + Info: [31] Compressing data directory "lib" + Info: [11111] Compressing data directory "plugins" + Info: [11740] Compressing data directory "qml" + Info: [11786] Compressing data directory "translations" + Info: [12321] Compressing files found in data directory: ("home/andrei/Qt/Examples/Qt-5.15.2/quick/animationDistributionKit/defaultQIFWTemplate/packages/Application/dataanimation.sh") + Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0bin.7z.sha1" + [12321] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0bin.7z" + Info: [12321] Generated sha1 hash:"0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0icons.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0icons.7z" + Info: [12322] Generated sha1 hash:"aa938cb332bfb427a6d0280c07c204c1bb48da22" + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0lib.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0lib.7z" + Info: [12347] Generated sha1 hash:"7c3a43111e694bc82a0ab0d19a6e4d0025f17313" + Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0plugins.7z.sha1" + [12347] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0plugins.7z" + Info: [12349] Generated sha1 hash:"4ed23c36835a9b62701478ab6897737dfe9dfc9a" + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0qml.7z.sha1" + Info: [12349] Creating hash of archive "/tmpbinarycreator-yOPMPa/Application/1.0qml.7z" + Info: [12349] Generated sha1 hash:"bd44e15d2c26c8f6cb50760032eadf0241eedf43" + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0translations.7z.sha1" + [12349] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0translations.7z" + Info: [12350] Generated sha1 hash:"030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" + Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0content.7z.sha1" + Info: [12350] Creating hash of archive "/tmpbinarycreator-yOPMPa/Application/1.0content.7z" + Info: [12350] Generated sha1 hash:"acd2cd63e77971acedbcda2a65f93b2cc036025f" + Info: [12350] Copy meta data for package "Application" using "home/andrei/Qt/Examples/Qt-5.15.2/quick/animationDistributionKit/defaultQIFWTemplate/packages/Application/metapackage.xml" + Info: [12350] calculate size of directory "/tmpbinarycreator-yOPMPa/Application/data" + Info: [12359] Copying associated "script" file "/home/andreiQt/Examples/Qt-5.15.2/quick/animation/DistributionKitdefaultQIFWTemplate/packages/Application/meta/installscript.qs" + Info: [12360] done. + Info: [12360] Begin to copy configuration file and data. + Info: [12360] Copying associated "configuration" file "/homeandrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" - Info: [2] Collecting information about available packages... - - Info: [4] Found subdirectory "Application" - - Info: [4] - it provides the package "Application" - "1.0" - - Info: [4] Copying component data for "Application" - - Info: [5] Compressing data directory "bin" - - Info: [21] Compressing data directory "icons" - - Info: [31] Compressing data directory "lib" - - Info: [11111] Compressing data directory "plugins" - - Info: [11740] Compressing data directory "qml" - - Info: [11786] Compressing data directory "translations" - - Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") - - Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" - [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" - - Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" - - Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" - - Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" - - Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" - [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" - - Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" - - Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" - - Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" - [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" - - Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" - - Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" - - Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" - - Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" - - Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" - - Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" - - Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" - - Info: [12360] done. - - Info: [12360] Begin to copy configuration file and data. - - Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" - - Info: [12360] done. - - Info: [12360] Read dom element: <Name>animation</Name>. - - Info: [12360] Read dom element: <Version>1.0</Version>. - - Info: [12360] Read dom element: <Title>animation</Title>. - - Info: [12360] Read dom element: <Publisher>Company</Publisher>. - [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. - [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. - - Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. - [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. - - Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. - - Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" - - Info: [12360] done. - - Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. - [12360] Read dom element: <ProductUrl></ProductUrl>. - - Info: [12360] done. - - - Info: [12362] Creating the binary - - Info: [12407] Creating resource archive for "Application" - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") - - Info: [12449] Cleaning up... + Info: [12360] done. + Info: [12360] Read dom element: <Name>animation</Name>. + Info: [12360] Read dom element: <Version>1.0</Version>. + Info: [12360] Read dom element: <Title>animation</Title>. + Info: [12360] Read dom element: <Publisher>Company</Publisher>. + [12360] Read dom element: <StartMenuDir>animation<StartMenuDir>. + [12360] Read dom element: <TargetDir>@HomeDir@/animation<TargetDir>. + Info: [12360] Read dom element:<InstallActionColumnVisible>true</InstallActionColumnVisible>. + [12360] Read dom element: <RemoveTargetDir>true<RemoveTargetDir>. + Info: [12360] Read dom element: <ControlScript>controlScriptqs</ControlScript>. + Info: [12360] Copying associated "ControlScript" file "/homeandrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKitdefaultQIFWTemplate/config/controlScript.qs" + Info: [12360] done. + Info: [12360] Read dom element:<MaintenanceToolName>animationTool</MaintenanceToolName>. + [12360] Read dom element: <ProductUrl></ProductUrl>. + Info: [12360] done. + Info: [12362] Creating the binary + Info: [12407] Creating resource archive for "Application" + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0bin.7z" ("61.58 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10bin.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10icons.7z" ("108.00 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10icons.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10lib.7z" ("18.08 MB") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0lib.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10plugins.7z" ("1.08 MB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10plugins.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10qml.7z" ("53.29 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10qml.7z.sha1" ("40.00 bytes") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0translations.7z" ("595.71 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10translations.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10content.7z" ("439.00 bytes") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0content.7z.sha1" ("40.00 bytes") + Info: [12449] Cleaning up... ``` 5. Done. The distribution has been saved to the **DistributionKit** folder ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ .DistributionKit/Installeranimation.run ```  diff --git a/md/ru/Guide.md b/md/ru/Guide.md index 9fef22f..eb45f42 100644 --- a/md/ru/Guide.md +++ b/md/ru/Guide.md @@ -14,7 +14,7 @@ ## Установить CQtDeployer Если вы хотите использовать системный qt из своей ОС, установите [классическую](https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run) версию cqtdeployer. -``` bash +```bash wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run ``` @@ -56,29 +56,29 @@ cqtdeployer -bin myexecutable ``` * Для систем Windows: -``` bash +```bash cqtdeployer -bin myexecutable.exe -qmake C: /Qt/5.15.0/min_gw/bin/qmake.exe ``` * Для кроссплатформенной сборки (Linux -> Windows) -``` bash +```bash cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/ bin / qmake ``` ## Дополнительные параметры Если вы используете дополнительные библиотеки, просто добавьте путь для cqtdeployer к используемым библиотекам. -``` bash +```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs ``` Если вы хотите найти библиотеки рекурсивно из пути libDir, просто добавьте параметр рекурсивной глубины. -``` bash +```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 ``` Если ваше приложение использует qml, просто добавьте опцию qmlDir -``` bash +```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` @@ -115,7 +115,7 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml Qt/Tools/QtCreator/bin/jom.exe ``` - ``` bash + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp @@ -127,7 +127,7 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 3. Находим наш получившийся исполняемый файл Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** В моем случае исполняемый файл лежит в корневом катологе проекта. - ``` bash + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . ├── animation # Вот он. @@ -180,15 +180,15 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 4. Вызываем cqtdeployer для формирования Базового Дистрибутива Для Linux: - ``` bash + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` Для Windows: - ``` bash + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` - ``` bash + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake Info: Deploy ... Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit From 03fdd1bef1d53fc27f6bf31838c797385d1bb10a Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Wed, 9 Jun 2021 11:12:21 +0300 Subject: [PATCH 040/222] Revert "ref #560 correction ru en Guide.md" This reverts commit 898ae109ae2794410c4fed8cc0d1ba0240507722. --- md/en/Guide.md | 515 +++++++++++++++++++++++++++---------------------- md/ru/Guide.md | 22 +-- 2 files changed, 294 insertions(+), 243 deletions(-) diff --git a/md/en/Guide.md b/md/en/Guide.md index e853544..0f2a550 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -51,45 +51,45 @@ Done!!! * For Linux systems: ```bash -cqtdeployer -bin myexecutable + cqtdeployer -bin myexecutable ``` * For Windows systems: ```bash -cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe + cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe ``` * For crossplatform build (Linux -> Windows) ```bash -cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake + cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake ``` ## Extra options If you use extra libraries, just add path for cqtdeployer to used libs. ```bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs ``` If you want find libraries recursively from libDir path, just add recursive Depth option. ```bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 ``` If you application use qml, just add qmlDir option ```bash -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` If you want create simple installer for your application just add gif option. ``` -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif ``` If cqtdeployer not found qmake then add the -qmake option to an invoke command. ``` -cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake + cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake ``` @@ -99,21 +99,21 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 1. Build the project as a release 1. Run qmake with the -r option for release build ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . ``` 2. Call your make * For Linux: ```bash - make -j${nproc} + make -j${nproc} ``` * For Windows ```bash - Qt/Tools/QtCreator/bin/jom.exe + Qt/Tools/QtCreator/bin/jom.exe ``` ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp @@ -125,7 +125,7 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder In my case, the executable file is located in the root directory of the project. ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . ├── animation # Here it is. ├── animation.pro @@ -178,236 +178,287 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD For Linux: ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` For Windows: ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - Info: Deploy ... - Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit - Info: target deploy started!! - Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQmlWorkerScript.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQmlWorkerScript.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuickParticles.2/libparticlesplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuickParticles.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuickParticles.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2libqtquick2plugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir - Info: platform : libqvnc is disabled - Info: platform : libqvnc is disabled - Info: platform : libqwebgl is disabled - Info: platform : libqwebgl is disabled - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearerlibqconnmanbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearerlibqgenericbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearerlibqnmbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengineslibqsvgicon.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqgif.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqicns.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqico.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqjpeg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqsvg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqtga.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqtiff.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqwbmp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformatslibqwebp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatforminputcontexts/libcomposeplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatforminputcontexts/libibusplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqeglfs.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqlinuxfb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqminimal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqminimalegl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqoffscreen.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-generic.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqwayland-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformslibqxcb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatformthemes/libqgtk3.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsplatformthemes/libqxdgdesktopportal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-decoration-client/libbradient.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libdmabuf-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libdrm-egl-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libqt-plugin-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libshm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libvulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libxcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-client/libxcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-dmabuf-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-drm-egl-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-linux-dmabuf-unstable-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-shm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-vulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-wayland-eglstream-controller.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-graphics-integration-serverlibqt-wayland-compositor-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libfullscreen-shell-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libivi-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libwl-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libxdg-shell-v5.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libxdg-shell-v6.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginswayland-shell-integration/libxdg-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsxcbglintegrations/libqxcb-egl-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/pluginsxcbglintegrations/libqxcb-glx-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5EglFSDeviceIntegration.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 - Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5RemoteObjects.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5QuickParticles.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5QmlWorkerScript.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5WaylandClient.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModelsso.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/liblibQt5WaylandCompositor.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ar.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ca.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_cs.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_gd.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_he.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_it.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_uk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtbase_zh_TW.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translationsqtdeclarative_uk.qm - Info: try deploy msvc - Info: deploy done! - Info: copy ::/shared/Distributions/Templates/Icon.png - Error: not exits - Info: [0] Parsed arguments, ok. - Info: [2] Collecting information about available packages... - Info: [4] Found subdirectory "Application" - Info: [4] - it provides the package "Application" - "1.0" - Info: [4] Copying component data for "Application" - Info: [5] Compressing data directory "bin" - Info: [21] Compressing data directory "icons" - Info: [31] Compressing data directory "lib" - Info: [11111] Compressing data directory "plugins" - Info: [11740] Compressing data directory "qml" - Info: [11786] Compressing data directory "translations" - Info: [12321] Compressing files found in data directory: ("home/andrei/Qt/Examples/Qt-5.15.2/quick/animationDistributionKit/defaultQIFWTemplate/packages/Application/dataanimation.sh") - Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0bin.7z.sha1" - [12321] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0bin.7z" - Info: [12321] Generated sha1 hash:"0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0icons.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0icons.7z" - Info: [12322] Generated sha1 hash:"aa938cb332bfb427a6d0280c07c204c1bb48da22" - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0lib.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0lib.7z" - Info: [12347] Generated sha1 hash:"7c3a43111e694bc82a0ab0d19a6e4d0025f17313" - Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0plugins.7z.sha1" - [12347] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0plugins.7z" - Info: [12349] Generated sha1 hash:"4ed23c36835a9b62701478ab6897737dfe9dfc9a" - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0qml.7z.sha1" - Info: [12349] Creating hash of archive "/tmpbinarycreator-yOPMPa/Application/1.0qml.7z" - Info: [12349] Generated sha1 hash:"bd44e15d2c26c8f6cb50760032eadf0241eedf43" - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0translations.7z.sha1" - [12349] Creating hash of archive "/tmp/binarycreator-yOPMPaApplication/1.0translations.7z" - Info: [12350] Generated sha1 hash:"030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" - Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPaApplication/1.0content.7z.sha1" - Info: [12350] Creating hash of archive "/tmpbinarycreator-yOPMPa/Application/1.0content.7z" - Info: [12350] Generated sha1 hash:"acd2cd63e77971acedbcda2a65f93b2cc036025f" - Info: [12350] Copy meta data for package "Application" using "home/andrei/Qt/Examples/Qt-5.15.2/quick/animationDistributionKit/defaultQIFWTemplate/packages/Application/metapackage.xml" - Info: [12350] calculate size of directory "/tmpbinarycreator-yOPMPa/Application/data" - Info: [12359] Copying associated "script" file "/home/andreiQt/Examples/Qt-5.15.2/quick/animation/DistributionKitdefaultQIFWTemplate/packages/Application/meta/installscript.qs" - Info: [12360] done. - Info: [12360] Begin to copy configuration file and data. - Info: [12360] Copying associated "configuration" file "/homeandrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + Info: Deploy ... + Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit + Info: target deploy started!! + Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir + Info: platform : libqvnc is disabled + Info: platform : libqvnc is disabled + Info: platform : libqwebgl is disabled + Info: platform : libqwebgl is disabled + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 + Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm + Info: try deploy msvc + Info: deploy done! + Info: copy ::/shared/Distributions/Templates/Icon.png + Error: not exits + Info: [0] Parsed arguments, ok. - Info: [12360] done. - Info: [12360] Read dom element: <Name>animation</Name>. - Info: [12360] Read dom element: <Version>1.0</Version>. - Info: [12360] Read dom element: <Title>animation</Title>. - Info: [12360] Read dom element: <Publisher>Company</Publisher>. - [12360] Read dom element: <StartMenuDir>animation<StartMenuDir>. - [12360] Read dom element: <TargetDir>@HomeDir@/animation<TargetDir>. - Info: [12360] Read dom element:<InstallActionColumnVisible>true</InstallActionColumnVisible>. - [12360] Read dom element: <RemoveTargetDir>true<RemoveTargetDir>. - Info: [12360] Read dom element: <ControlScript>controlScriptqs</ControlScript>. - Info: [12360] Copying associated "ControlScript" file "/homeandrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKitdefaultQIFWTemplate/config/controlScript.qs" - Info: [12360] done. - Info: [12360] Read dom element:<MaintenanceToolName>animationTool</MaintenanceToolName>. - [12360] Read dom element: <ProductUrl></ProductUrl>. - Info: [12360] done. - Info: [12362] Creating the binary - Info: [12407] Creating resource archive for "Application" - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0bin.7z" ("61.58 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10bin.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10icons.7z" ("108.00 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10icons.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10lib.7z" ("18.08 MB") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0lib.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10plugins.7z" ("1.08 MB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10plugins.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10qml.7z" ("53.29 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10qml.7z.sha1" ("40.00 bytes") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0translations.7z" ("595.71 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10translations.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/10content.7z" ("439.00 bytes") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application1.0content.7z.sha1" ("40.00 bytes") - Info: [12449] Cleaning up... + Info: [2] Collecting information about available packages... + + Info: [4] Found subdirectory "Application" + + Info: [4] - it provides the package "Application" - "1.0" + + Info: [4] Copying component data for "Application" + + Info: [5] Compressing data directory "bin" + + Info: [21] Compressing data directory "icons" + + Info: [31] Compressing data directory "lib" + + Info: [11111] Compressing data directory "plugins" + + Info: [11740] Compressing data directory "qml" + + Info: [11786] Compressing data directory "translations" + + Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") + + Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" + [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" + + Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" + + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" + + Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" + + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" + + Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" + + Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" + [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" + + Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" + + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" + + Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" + + Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" + + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" + [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" + + Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" + + Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" + + Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" + + Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" + + Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" + + Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" + + Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" + + Info: [12360] done. + + Info: [12360] Begin to copy configuration file and data. + + Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" + + Info: [12360] done. + + Info: [12360] Read dom element: <Name>animation</Name>. + + Info: [12360] Read dom element: <Version>1.0</Version>. + + Info: [12360] Read dom element: <Title>animation</Title>. + + Info: [12360] Read dom element: <Publisher>Company</Publisher>. + [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. + [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. + + Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. + [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. + + Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. + + Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" + + Info: [12360] done. + + Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. + [12360] Read dom element: <ProductUrl></ProductUrl>. + + Info: [12360] done. + + + Info: [12362] Creating the binary + + Info: [12407] Creating resource archive for "Application" + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") + + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") + + Info: [12449] Cleaning up... ``` 5. Done. The distribution has been saved to the **DistributionKit** folder ```bash -andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ .DistributionKit/Installeranimation.run + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run ```  diff --git a/md/ru/Guide.md b/md/ru/Guide.md index eb45f42..9fef22f 100644 --- a/md/ru/Guide.md +++ b/md/ru/Guide.md @@ -14,7 +14,7 @@ ## Установить CQtDeployer Если вы хотите использовать системный qt из своей ОС, установите [классическую](https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run) версию cqtdeployer. -```bash +``` bash wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.4.7/LinuxInstaller.run ``` @@ -56,29 +56,29 @@ cqtdeployer -bin myexecutable ``` * Для систем Windows: -```bash +``` bash cqtdeployer -bin myexecutable.exe -qmake C: /Qt/5.15.0/min_gw/bin/qmake.exe ``` * Для кроссплатформенной сборки (Linux -> Windows) -```bash +``` bash cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/ bin / qmake ``` ## Дополнительные параметры Если вы используете дополнительные библиотеки, просто добавьте путь для cqtdeployer к используемым библиотекам. -```bash +``` bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs ``` Если вы хотите найти библиотеки рекурсивно из пути libDir, просто добавьте параметр рекурсивной глубины. -```bash +``` bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 ``` Если ваше приложение использует qml, просто добавьте опцию qmlDir -```bash +``` bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` @@ -115,7 +115,7 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml Qt/Tools/QtCreator/bin/jom.exe ``` - ```bash + ``` bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp @@ -127,7 +127,7 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 3. Находим наш получившийся исполняемый файл Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** В моем случае исполняемый файл лежит в корневом катологе проекта. - ```bash + ``` bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . ├── animation # Вот он. @@ -180,15 +180,15 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 4. Вызываем cqtdeployer для формирования Базового Дистрибутива Для Linux: - ```bash + ``` bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` Для Windows: - ```bash + ``` bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` - ```bash + ``` bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake Info: Deploy ... Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit From d48734750153dddf53851ab1d6ed7d3595425237 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Wed, 9 Jun 2021 11:29:46 +0300 Subject: [PATCH 041/222] ref #560 fix Guide.md --- md/en/Guide.md | 508 ++++++++++++++++++++++--------------------------- md/ru/Guide.md | 20 +- 2 files changed, 238 insertions(+), 290 deletions(-) diff --git a/md/en/Guide.md b/md/en/Guide.md index 0f2a550..5310f2b 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -51,45 +51,45 @@ Done!!! * For Linux systems: ```bash - cqtdeployer -bin myexecutable +cqtdeployer -bin myexecutable ``` * For Windows systems: ```bash - cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe +cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe ``` * For crossplatform build (Linux -> Windows) ```bash - cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake +cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake ``` ## Extra options If you use extra libraries, just add path for cqtdeployer to used libs. ```bash - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs ``` If you want find libraries recursively from libDir path, just add recursive Depth option. ```bash - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 ``` If you application use qml, just add qmlDir option ```bash - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` If you want create simple installer for your application just add gif option. ``` - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif ``` If cqtdeployer not found qmake then add the -qmake option to an invoke command. ``` - cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake +cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources qif -qmake /path/to/my/qmake ``` @@ -113,7 +113,7 @@ If cqtdeployer not found qmake then add the -qmake option to an invoke command. Qt/Tools/QtCreator/bin/jom.exe ``` ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp @@ -178,287 +178,235 @@ If cqtdeployer not found qmake then add the -qmake option to an invoke command. For Linux: ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` For Windows: ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe + cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - Info: Deploy ... - Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit - Info: target deploy started!! - Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir - Info: platform : libqvnc is disabled - Info: platform : libqvnc is disabled - Info: platform : libqwebgl is disabled - Info: platform : libqwebgl is disabled - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 - Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm - Info: try deploy msvc - Info: deploy done! - Info: copy ::/shared/Distributions/Templates/Icon.png - Error: not exits - Info: [0] Parsed arguments, ok. - - Info: [2] Collecting information about available packages... - - Info: [4] Found subdirectory "Application" - - Info: [4] - it provides the package "Application" - "1.0" - - Info: [4] Copying component data for "Application" - - Info: [5] Compressing data directory "bin" - - Info: [21] Compressing data directory "icons" - - Info: [31] Compressing data directory "lib" - - Info: [11111] Compressing data directory "plugins" - - Info: [11740] Compressing data directory "qml" - - Info: [11786] Compressing data directory "translations" - - Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") - - Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" - [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" - - Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" - - Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" - - Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" - - Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" - [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" - - Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" - - Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" - - Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" - [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" - - Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" - - Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" - - Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" - - Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" - - Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" - - Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" - - Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" - - Info: [12360] done. - - Info: [12360] Begin to copy configuration file and data. - - Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" - - Info: [12360] done. - - Info: [12360] Read dom element: <Name>animation</Name>. - - Info: [12360] Read dom element: <Version>1.0</Version>. - - Info: [12360] Read dom element: <Title>animation</Title>. - - Info: [12360] Read dom element: <Publisher>Company</Publisher>. - [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. - [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. - - Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. - [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. - - Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. - - Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" - - Info: [12360] done. - - Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. - [12360] Read dom element: <ProductUrl></ProductUrl>. - - Info: [12360] done. - - - Info: [12362] Creating the binary - - Info: [12407] Creating resource archive for "Application" - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") - - Info: [12449] Cleaning up... + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake + Info: Deploy ... + Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit + Info: target deploy started!! + Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir + Info: platform : libqvnc is disabled + Info: platform : libqvnc is disabled + Info: platform : libqwebgl is disabled + Info: platform : libqwebgl is disabled + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 + Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 + Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm + Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm + Info: try deploy msvc + Info: deploy done! + Info: copy ::/shared/Distributions/Templates/Icon.png + Error: not exits + Info: [0] Parsed arguments, ok. + Info: [2] Collecting information about available packages... + Info: [4] Found subdirectory "Application" + Info: [4] - it provides the package "Application" - "1.0" + Info: [4] Copying component data for "Application" + Info: [5] Compressing data directory "bin" + Info: [21] Compressing data directory "icons" + Info: [31] Compressing data directory "lib" + Info: [11111] Compressing data directory "plugins" + Info: [11740] Compressing data directory "qml" + Info: [11786] Compressing data directory "translations" + Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") + Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" + [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" + Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" + Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" + Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" + [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" + Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" + Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" + [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" + Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" + Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" + Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" + Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" + [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" + Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" + Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" + Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" + Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" + Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" + Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" + Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" + Info: [12360] done. + Info: [12360] Begin to copy configuration file and data. + Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" + Info: [12360] done. + Info: [12360] Read dom element: <Name>animation</Name>. + Info: [12360] Read dom element: <Version>1.0</Version>. + Info: [12360] Read dom element: <Title>animation</Title>. + Info: [12360] Read dom element: <Publisher>Company</Publisher>. + [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. + [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. + Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. + [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. + Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. + Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" + Info: [12360] done. + Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. + [12360] Read dom element: <ProductUrl></ProductUrl>. + Info: [12360] done. + Info: [12362] Creating the binary + Info: [12407] Creating resource archive for "Application" + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") + [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") + Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") + Info: [12449] Cleaning up... ``` 5. Done. The distribution has been saved to the **DistributionKit** folder ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run ```  diff --git a/md/ru/Guide.md b/md/ru/Guide.md index 9fef22f..c24c0f6 100644 --- a/md/ru/Guide.md +++ b/md/ru/Guide.md @@ -56,29 +56,29 @@ cqtdeployer -bin myexecutable ``` * Для систем Windows: -``` bash +```bash cqtdeployer -bin myexecutable.exe -qmake C: /Qt/5.15.0/min_gw/bin/qmake.exe ``` * Для кроссплатформенной сборки (Linux -> Windows) -``` bash +```bash cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/ bin / qmake ``` ## Дополнительные параметры Если вы используете дополнительные библиотеки, просто добавьте путь для cqtdeployer к используемым библиотекам. -``` bash +```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs ``` Если вы хотите найти библиотеки рекурсивно из пути libDir, просто добавьте параметр рекурсивной глубины. -``` bash +```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 ``` Если ваше приложение использует qml, просто добавьте опцию qmlDir -``` bash +```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` @@ -115,7 +115,7 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml Qt/Tools/QtCreator/bin/jom.exe ``` - ``` bash + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp @@ -127,7 +127,7 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 3. Находим наш получившийся исполняемый файл Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** В моем случае исполняемый файл лежит в корневом катологе проекта. - ``` bash + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . ├── animation # Вот он. @@ -180,15 +180,15 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 4. Вызываем cqtdeployer для формирования Базового Дистрибутива Для Linux: - ``` bash + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` Для Windows: - ``` bash + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` - ``` bash + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake Info: Deploy ... Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit From 18888ab37091dffb0e8327d64a43b6d98ebb433a Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Jun 2021 14:22:03 +0300 Subject: [PATCH 042/222] ref #519 implement of new system for creating run scripts. --- Deploy/DeployResources.qrc | 4 + .../Templates/deb/DEBIAN/postinst | 15 +- .../Distributions/Templates/deb/DEBIAN/prerm | 9 +- .../packages/default/meta/installscript.qs | 22 ++- Deploy/Distributions/idistribution.cpp | 21 ++- Deploy/ScriptsTemplates/linux.sh | 34 ++++ Deploy/ScriptsTemplates/windows.bat | 22 +++ Deploy/configparser.cpp | 106 ++++++------ Deploy/configparser.h | 3 +- Deploy/deployconfig.cpp | 9 -- Deploy/deployconfig.h | 9 -- Deploy/deploycore.cpp | 5 +- Deploy/metafilemanager.cpp | 152 ++++++++---------- Deploy/metafilemanager.h | 7 + Deploy/targetinfo.cpp | 82 +++++++++- Deploy/targetinfo.h | 90 ++++++++++- UnitTests/tst_deploytest.cpp | 12 ++ md/en/Options.md | 3 +- md/ru/Options.md | 2 + 19 files changed, 432 insertions(+), 175 deletions(-) create mode 100644 Deploy/ScriptsTemplates/linux.sh create mode 100644 Deploy/ScriptsTemplates/windows.bat diff --git a/Deploy/DeployResources.qrc b/Deploy/DeployResources.qrc index 602f56a..c0e29d8 100644 --- a/Deploy/DeployResources.qrc +++ b/Deploy/DeployResources.qrc @@ -26,4 +26,8 @@ <file>Distributions/Templates/Icon.png</file> <file>Distributions/Templates/Icon.ico</file> </qresource> + <qresource prefix="/Scripts"> + <file>ScriptsTemplates/windows.bat</file> + <file>ScriptsTemplates/linux.sh</file> + </qresource> </RCC> diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/postinst b/Deploy/Distributions/Templates/deb/DEBIAN/postinst index caeaebe..55918ee 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/postinst +++ b/Deploy/Distributions/Templates/deb/DEBIAN/postinst @@ -1,6 +1,7 @@ #!/bin/bash APPS=$BASH_ARRAY_APPLICATIONS +APPS_SHORTCUTS=$BASH_ARRAY_SHORTCUTS_APPLICATIONS TARGET_DIR=/opt/$PREFIX/ @@ -35,14 +36,20 @@ do DEST_NAME=$app - SRC_FILE="$TARGET_DIR/$app.sh" - DEST_FILE="/usr/share/applications/$app.desktop" - createShortCut - if [ ! -e /usr/bin/"${app,,}" ]; then ln -s "$TARGET_DIR/$app.sh" /usr/bin/"${app,,}" echo "${app,,}" fi done +for app in "${APPS_SHORTCUTS[@]}" +do + + DEST_NAME=$app + + SRC_FILE="$TARGET_DIR/$app" + DEST_FILE="/usr/share/applications/${app%.*}.desktop" + createShortCut +done + diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/prerm b/Deploy/Distributions/Templates/deb/DEBIAN/prerm index 0e0a2e6..64b778a 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/prerm +++ b/Deploy/Distributions/Templates/deb/DEBIAN/prerm @@ -1,15 +1,18 @@ #!/bin/bash APPS=$BASH_ARRAY_APPLICATIONS +APPS_SHORTCUTS=$BASH_ARRAY_SHORTCUTS_APPLICATIONS for app in "${APPS[@]}" do - SRC_FILE="$TARGET_DIR/$app.sh" - rm "/usr/share/applications/$app.desktop" - if [ -e /usr/bin/"${app,,}" ]; then rm /usr/bin/"${app,,}" echo "Remove ${app,,}" fi done + +for app in "${APPS_SHORTCUTS[@]}" +do + rm "/usr/share/applications/${app%.*}.desktop" +done diff --git a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs index 554f184..4a74850 100644 --- a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs +++ b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs @@ -2,6 +2,13 @@ function Component() { } +function getBasename(file) { + if (!file.length) + return "" + + return file.split('.')[0]; +} + function generateShortCutCmd(cmd) { var prefix = "$PREFIX"; @@ -12,8 +19,8 @@ function generateShortCutCmd(cmd) { component.addOperation( "CreateShortcut", - "@TargetDir@/" + prefix + "/" + cmd + ".bat", - "@DesktopDir@/" + cmd + ".lnk", + "@TargetDir@/" + prefix + "/" + cmd, + "@DesktopDir@/" + getBasename(cmd) + ".lnk", "iconPath=@TargetDir@/$ICON", "iconId=0"); @@ -23,14 +30,14 @@ function generateShortCutCmd(cmd) { if (systemInfo.kernelType === "linux") { console.log("create icons!!! on LINUX"); component.addOperation("CreateDesktopEntry", - "@HomeDir@/.local/share/applications/" + cmd + ".desktop", + "@HomeDir@/.local/share/applications/" + getBasename(cmd) + ".desktop", "Version=@Version@\n Type=Application\n Terminal=false\n - Exec=\"@TargetDir@/" + prefix + "/" + cmd + ".sh\"\n - Name=" + cmd + "\n + Exec=\"@TargetDir@/" + prefix + "/" + cmd + "\"\n + Name=" + getBasename(cmd) + "\n Icon=@TargetDir@/$ICON\n - Name[en_US]=" + cmd); + Name[en_US]=" + getBasename(cmd)); console.log("create icons!!! on LINUX done"); } @@ -41,8 +48,9 @@ Component.prototype.createOperations = function() { component.createOperations(); var cmdArray = ["array", "of", "cmds"]; // will be changed in cqtdeployer + var shortcutsCmdArray = ["array", "of", "shortcut", "cmds"]; // will be changed in cqtdeployer - cmdArray.forEach( function (item){ + shortcutsCmdArray.forEach( function (item){ generateShortCutCmd(item); }); diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 937b389..2d8aaf6 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -196,10 +196,25 @@ bool iDistribution::collectInfo(const DistroModule& pkg, QString cmdArray = "["; QString bashArray = "("; + QString cmdShortCutsArray = "["; + QString bashShortCutsArray = "("; int initSize = cmdArray.size(); for (const auto &target :pkg.targets()) { - auto fileinfo = QFileInfo(target); + const DeployConfig *cfg = DeployCore::_config; + auto fileinfo = QFileInfo(target); + auto targetInfo = cfg->targets().value(target); + + if (targetInfo.getShortCut()) { + if (cmdArray.size() > initSize) { + cmdShortCutsArray += ","; + bashShortCutsArray += " "; + } + + cmdShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; + bashShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; + } + if (fileinfo.suffix().compare("exe", ONLY_WIN_CASE_INSENSIATIVE) == 0 || fileinfo.suffix().isEmpty()) { if (cmdArray.size() > initSize) { cmdArray += ","; @@ -211,9 +226,13 @@ bool iDistribution::collectInfo(const DistroModule& pkg, } cmdArray += "]"; bashArray += ")"; + cmdShortCutsArray += "]"; + bashShortCutsArray += ")"; info.Custom = {{"[\"array\", \"of\", \"cmds\"]", cmdArray}}; + info.Custom["[\"array\", \"of\", \"shortcut\", \"cmds\"]"] = cmdShortCutsArray; + info.Custom["$BASH_ARRAY_APPLICATIONS"] = bashArray; info.Custom["$BASH_ARRAY_APPLICATIONS"] = bashArray; if (info.Name.isEmpty()) { diff --git a/Deploy/ScriptsTemplates/linux.sh b/Deploy/ScriptsTemplates/linux.sh new file mode 100644 index 0000000..c9e1aae --- /dev/null +++ b/Deploy/ScriptsTemplates/linux.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# This is default bat run script of The CQtDeployer project. +# This file contains key word that will replaced after deploy project. +# +# #################################################################### +# +# CQT_LIB_PATH - are releative path to libraryes of a deployed distribution. +# CQT_QML_PATH - are releative path to qml libraryes of a deployed distribution. +# CQT_PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. +# CQT_BIN_PATH - are releative path to targets of a deployed distribution. + +# CQT_SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. +# CQT_BASE_NAME - are base name of the executable that will be launched after run this script. +# CQT_CUSTOM_SCRIPT_BLOCK - This is code from the customScript option +# CQT_RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. +# +# #################################################################### + +BASE_DIR=$(dirname \"$(readlink -f \"$0\")\") +export LD_LIBRARY_PATH=\"$BASE_DIR\"CQT_LIB_PATH:\"$BASE_DIR\":$LD_LIBRARY_PATH +export QML_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML_IMPORT_PATH +export QML2_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML2_IMPORT_PATH +export QT_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH:$QT_PLUGIN_PATH +export QTWEBENGINEPROCESS_PATH=\"$BASE_DIR\"CQT_BIN_PATH/QtWebEngineProcess +export QTDIR=\"$BASE_DIR\" +export CQT_PKG_ROOT=\"$BASE_DIR\" +export CQT_RUN_FILE=\"$BASE_DIR/CQT_BASE_NAME.sh\" + +export QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH + +CQT_CUSTOM_SCRIPT_BLOCK + +CQT_RUN_COMMAND diff --git a/Deploy/ScriptsTemplates/windows.bat b/Deploy/ScriptsTemplates/windows.bat new file mode 100644 index 0000000..af3f2f6 --- /dev/null +++ b/Deploy/ScriptsTemplates/windows.bat @@ -0,0 +1,22 @@ +:: This is default bat run script of The CQtDeployer project. +:: This file contains key word that will replaced after deploy project. + +:: #################################################################### + +:: LIB_PATH - are releative path to libraryes of a deployed distribution. +:: SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. +:: BASE_NAME - are base name of the executable that will be launched after run this script. +:: CUSTOM_SCRIPT_BLOCK - This is code from the customScript option +:: RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. + +:: #################################################################### + +@echo off +SET BASE_DIR=%~dp0 +SET PATH=%BASE_DIR%LIB_PATH;%PATH%;SYSTEM_LIB_PATH +SET CQT_PKG_ROOT=%BASE_DIR% +SET CQT_RUN_FILE=%BASE_DIR%BASE_NAME.bat + +CUSTOM_SCRIPT_BLOCK + +RUN_COMMAND diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index f7f4085..135bb89 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -75,7 +75,7 @@ void parseTargetPrivate(DeployConfig& conf, auto pair = iconPair.split(DeployCore::getSeparator(1), splitbehavior); if (pair.size() == 1) { - QuasarAppUtils::Params::log(QString("Set new default icon for all tagets: " + pair.value(0)), + QuasarAppUtils::Params::log(QString("Set new default property for all tagets: " + pair.value(0)), QuasarAppUtils::Debug); for (auto& editableTarget: cointainer) { (editableTarget.*adder)(pair.value(0)); @@ -96,7 +96,7 @@ void parseTargetPrivate(DeployConfig& conf, } for (const auto &target: targetsMap) { - QuasarAppUtils::Params::log(QString("Set new icon for %0 taget. Icon: %1"). + QuasarAppUtils::Params::log(QString("Set new property for %0 taget."). arg(pair.value(0), pair.value(1)), QuasarAppUtils::Debug); (target->*adder)(pair.value(1)); @@ -104,6 +104,34 @@ void parseTargetPrivate(DeployConfig& conf, } } +template <typename Enabler> +bool enableOptionFotTargetPrivate(DeployConfig& conf, + const QStringList &inputParams, + Enabler enabler) { + + for (const auto &iconPair: inputParams) { + auto pair = iconPair.split(DeployCore::getSeparator(1), splitbehavior); + + if (pair.size() != 1) { + QuasarAppUtils::Params::log(QString("Failed parese list of option values, This option support only single leve list. " + " Example: use -Option val1,val2,val3 "), + QuasarAppUtils::Error); + return false; + } + + const auto targetsMap = conf.getTargetsListByFilter(pair.value(0)); + + for (const auto &target: targetsMap) { + QuasarAppUtils::Params::log(QString("Set new property for %0 taget."). + arg(pair.value(0)), + QuasarAppUtils::Debug); + (target->*enabler)(); + } + } + + return true; +} + bool ConfigParser::parseParams() { auto path = QuasarAppUtils::Params::getArg("confFile"); @@ -578,35 +606,6 @@ bool ConfigParser::initPackages() { return true; } -bool ConfigParser::initRunScripts() { - const auto list = QuasarAppUtils::Params::getArg("runScript").split(DeployCore::getSeparator(0), splitbehavior); - - for (const auto& line: list) { - auto pair = line.split(DeployCore::getSeparator(1), splitbehavior); - if (pair.size() != 2) { - QuasarAppUtils::Params::log("Syntax error of the runScript option." - " Example of use :" - " -runScript \"myTarget;path/To/Target/RunScript.sh," - "mySecondTarget;path/To/Target/SecondRunScript.sh\"", - QuasarAppUtils::Error); - return false; - } - - QFileInfo script(pair.value(1)); - - if (!script.isFile()) { - QuasarAppUtils::Params::log(QString("The %0 file does not exist.").arg(script.absoluteFilePath()), - QuasarAppUtils::Error); - return false; - } - - _config.registerRunScript(pair.value(0), - script.absoluteFilePath()); - } - - return true; -} - bool ConfigParser::initQmlInput() { auto qmlDir = QuasarAppUtils::Params::getArg("qmlDir"). @@ -683,11 +682,6 @@ bool ConfigParser::parseDeployMode() { } } - - if (!initRunScripts()) { - return false; - } - initIgnoreEnvList(); initEnvirement(); initIgnoreList(); @@ -706,9 +700,9 @@ bool ConfigParser::parseDeployMode() { " then you must use the classic version of CQtDeployer instead of the snap version." " This is due to the fact that the snap version" " runs in an isolated container and has limited access" - " to system utilities and the environment. " - "For get the classic version of cqtdeployer use the cqtdeployer installer " - "https://github.com/QuasarApp/CQtDeployer/releases", QuasarAppUtils::Info); + " to system utilities and the environment." + " For get the classic version of cqtdeployer use the cqtdeployer installer" + " https://github.com/QuasarApp/CQtDeployer/releases", QuasarAppUtils::Info); } return false; @@ -760,15 +754,39 @@ bool ConfigParser::parseInitMode() { return true; } -void ConfigParser::configureTargets() { +bool ConfigParser::configureTargets() { const auto icons = QuasarAppUtils::Params::getArg("icon"). split(DeployCore::getSeparator(0), splitbehavior); + const auto runScripts = QuasarAppUtils::Params::getArg("runScript"). + split(DeployCore::getSeparator(0), splitbehavior); + + const auto disableShortcuts = QuasarAppUtils::Params::getArg("disableRunScript"). + split(DeployCore::getSeparator(0), splitbehavior); + + const auto disableRunScripts = QuasarAppUtils::Params::getArg("disableShortCut"). + split(DeployCore::getSeparator(0), splitbehavior); + + if (icons.size()) { parseTargetPrivate(_config, icons, &TargetInfo::setIcon); } - return; + if (runScripts.size()) { + parseTargetPrivate(_config, runScripts, &TargetInfo::setRunScript); + } + + if (disableShortcuts.size() && !enableOptionFotTargetPrivate(_config, disableShortcuts, &TargetInfo::disableShortCut)) { + packagesErrorLog("disableShortCut"); + return false; + } + + if (disableRunScripts.size() && !enableOptionFotTargetPrivate(_config, disableRunScripts, &TargetInfo::disableRunScript)) { + packagesErrorLog("disableRunScript"); + return false; + } + + return true; } bool ConfigParser::parseClearMode() { @@ -1150,7 +1168,7 @@ bool ConfigParser::initQmake() { auto qt = *qtList.begin(); - if (qt.right(3).compare("lib", Qt::CaseInsensitive)) { + if (qt.rightRef(3).compare(QString("lib"), Qt::CaseInsensitive)) { return initQmakePrivate(QFileInfo(qt + "/../bin/qmake").absoluteFilePath()); } @@ -1566,9 +1584,7 @@ bool ConfigParser::smartMoveTargets() { _config.targetsEdit() = temp; - configureTargets(); - - return result; + return result && configureTargets(); } ConfigParser::ConfigParser(FileManager *filemanager, PluginsParser *pluginsParser, DependenciesScanner* scaner, Packing *pac): diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 54a9d20..69f3685 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -52,7 +52,6 @@ private: bool loadFromFile(const QString& file); bool initDistroStruct(); bool initPackages(); - bool initRunScripts(); bool parseDeployMode(); bool parseInfoMode(); bool parseInitMode(); @@ -60,7 +59,7 @@ private: * @brief configureTargets Sets targets data from options. * @return true if function finishe successfull */ - void configureTargets(); + bool configureTargets(); bool parseClearMode(); diff --git a/Deploy/deployconfig.cpp b/Deploy/deployconfig.cpp index 09836b2..e9439d1 100644 --- a/Deploy/deployconfig.cpp +++ b/Deploy/deployconfig.cpp @@ -104,15 +104,6 @@ void DeployConfig::setDefaultPackage(const QString &value) { defaultPackage = value; } -void DeployConfig::registerRunScript(const QString &targetName, - const QString &scriptPath) { - _runScripts.insert(targetName, scriptPath); -} - -QString DeployConfig::getRunScript(const QString &targetName) const { - return _runScripts.value(targetName, ""); -} - QtMajorVersion DeployConfig::isNeededQt() const { auto Qt = QtMajorVersion::NoQt; diff --git a/Deploy/deployconfig.h b/Deploy/deployconfig.h index 2abdf08..f2935a5 100644 --- a/Deploy/deployconfig.h +++ b/Deploy/deployconfig.h @@ -122,9 +122,6 @@ public: QString getDefaultPackage() const; void setDefaultPackage(const QString &value); - void registerRunScript(const QString& targetName, const QString& scriptPath); - QString getRunScript(const QString& targetName) const; - /** * @brief isNeededQt This method return all needed qt major version for all targets. * @return qt major version @@ -155,12 +152,6 @@ private: */ QHash<QString, DistroModule> _packages; - /** - * @brief _runScripts - * target - pathToScript - */ - QHash<QString, QString> _runScripts; - /** * @brief targetDir - targe directory (this folder conteins all files of distrebution kit) */ diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 8d5a3dd..37ba1cd 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -295,7 +295,10 @@ void DeployCore::help() { { "Part 4 Control of packages options", { - {"-icon [target;val,val]", "Sets path to icon for a targets"} + {"-icon [target;val,val]", "Sets path to icon for a targets"}, + {"-disableRunScript [target;val,val]", "Disables a generation of run script for selected targets"}, + {"-disableShortCut [target;val,val]", "Disables a generation of shortcut for selected targets"} + } }, diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index b0c3aac..b2b9ab6 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -27,46 +27,15 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { QFileInfo targetInfo(target); QString content; - auto runScript = cnf->getRunScript(targetInfo.fileName()); - if (runScript.size()) { - QFile script(runScript); - if (!script.open(QIODevice::ReadOnly)) { - return false; - } - content = script.readAll(); - script.close(); + auto runScript = targetinfo.getRunScript(); - } else { - - bool fGui = DeployCore::isGui(_mudulesMap.value(target)); - auto systemLibsDir = distro.getLibOutDir() + DeployCore::systemLibsFolderName(); - - content = - "@echo off \n" - "SET BASE_DIR=%~dp0\n" - "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%;" + systemLibsDir + "\n" - "SET CQT_PKG_ROOT=%BASE_DIR%\n" - "SET CQT_RUN_FILE=%BASE_DIR%%0.bat\n" - - "%3\n"; - - // Run application as invoke of the console for consle applications - // And run gui applciation in the detached mode. - if (fGui) { - content += "start \"%0\" %4 \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; - } else { - content += "call \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; - } - - content = content.arg(targetInfo.baseName(), targetInfo.fileName(), "%*", - generateCustoScriptBlok(true)); // %0 %1 %2 %3 - - content = QDir::toNativeSeparators(content); - - if (fGui) { - content = content.arg("/B"); // %4 - } + QFile script(runScript); + if (!script.open(QIODevice::ReadOnly)) { + return false; } + content = script.readAll(); + script.close(); + replace(toReplace(target, distro), content); QString fname = DeployCore::_config->getTargetDir(target) + QDir::separator() + targetInfo.baseName()+ ".bat"; @@ -90,6 +59,7 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { bool MetaFileManager::createRunScriptLinux(const QString &target) { auto cnf = DeployCore::_config; + auto targetinfo = cnf->targets().value(target); if (!cnf->targets().contains(target)) { return false; @@ -99,48 +69,15 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { QFileInfo targetInfo(target); QString content; - auto runScript = cnf->getRunScript(targetInfo.fileName()); - if (runScript.size()) { - QFile script(runScript); - if (!script.open(QIODevice::ReadOnly)) { - return false; - } - content = script.readAll(); - script.close(); - - } else { - - auto systemLibsDir = distro.getLibOutDir() + DeployCore::systemLibsFolderName(); - - content = - "#!/bin/sh\n" - "BASE_DIR=$(dirname \"$(readlink -f \"$0\")\")\n" - "export " - "LD_LIBRARY_PATH=\"$BASE_DIR\"" + distro.getLibOutDir() + - ":\"$BASE_DIR\":$LD_LIBRARY_PATH:\"$BASE_DIR\"" + systemLibsDir + "\n" - "export QML_IMPORT_PATH=\"$BASE_DIR\"" + distro.getQmlOutDir() + ":$QML_IMPORT_PATH\n" - "export QML2_IMPORT_PATH=\"$BASE_DIR\"" + distro.getQmlOutDir() + ":$QML2_IMPORT_PATH\n" - "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 CQT_RUN_FILE=\"$BASE_DIR/%2\"\n" - - "export " - "QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"" + distro.getPluginsOutDir() + - "platforms:$QT_QPA_PLATFORM_PLUGIN_PATH\n" - "" - "%1\n" - "\"$BASE_DIR" + distro.getBinOutDir() + "%0\" \"$@\"\n"; - - content = content.arg(targetInfo.fileName()); // %0 - - content = content.arg(generateCustoScriptBlok(false), - targetInfo.baseName()+ ".sh"); // %1 %2 - - - + auto runScript = targetinfo.getRunScript(); + QFile script(runScript); + if (!script.open(QIODevice::ReadOnly)) { + return false; } + content = script.readAll(); + script.close(); + replace(toReplace(target, distro), content); + QString fname = DeployCore::_config->getTargetDir(target) + QDir::separator() + targetInfo.baseName()+ ".sh"; @@ -173,9 +110,9 @@ QString MetaFileManager::generateCustoScriptBlok(bool bat) const { auto cstSh = QuasarAppUtils::Params::getArg("customScript", ""); if (cstSh.size()) { res = "\n" + - commentMarker + "Begin Custom Script (generated by customScript flag)\n" + commentMarker + "Begin Custom Script (generated by customScript flag)\n" "%0\n" + - commentMarker + "End Custom Script\n" + commentMarker + "End Custom Script\n" "\n"; res = res.arg(cstSh); @@ -248,14 +185,63 @@ bool MetaFileManager::createQConf(const QString &target) { QFileDevice::ReadOwner); } +QHash<QString, QString> MetaFileManager::toReplace(const QString& target, + const DistroModule& distro) const { + QFileInfo targetInfo(target); + + QHash<QString, QString> result = { + {"CQT_BIN_PATH", distro.getBinOutDir()}, + {"CQT_LIB_PATH", distro.getLibOutDir()}, + {"CQT_QML_PATH", distro.getQmlOutDir()}, + {"CQT_PLUGIN_PATH", distro.getPluginsOutDir()}, + {"CQT_SYSTEM_LIB_PATH", distro.getLibOutDir() + DeployCore::systemLibsFolderName()}, + {"CQT_BASE_NAME", targetInfo.baseName()} + }; + + bool fGui = DeployCore::isGui(_mudulesMap.value(target)); + + + if (targetInfo.completeSuffix().compare(".exe", Qt::CaseInsensitive) == 0) { + result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(true)); + + // Run application as invoke of the console for consle applications + // And run gui applciation in the detached mode. + QString runCmd; + if (fGui) { + runCmd = "start \"" + targetInfo.baseName() + "\" /B " + + "\"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; + } else { + runCmd = "call \"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; + } + + result.insert("CQT_RUN_COMMAND", runCmd); + + } else { + result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(false)); + + QString runCmd = "\"$BASE_DIR" + distro.getBinOutDir() + targetInfo.fileName() + "\" \"$@\" "; + + result.insert("CQT_RUN_COMMAND", runCmd); + } + + return result; +} + +void MetaFileManager::replace(const QHash<QString, QString> &map, QString &content) { + for (auto it = map.begin(); it != map.end(); ++it) { + content = content.replace(it.key(), it.value()); + } + +} + void MetaFileManager::createRunMetaFiles(const QHash<QString, DeployCore::QtModule>& modulesMap) { _mudulesMap = modulesMap; for (auto i = DeployCore::_config->targets().cbegin(); i != DeployCore::_config->targets().cend(); ++i) { - if (!createRunScript(i.key())) { + if (i.value().fEnableRunScript() && !createRunScript(i.key())) { QuasarAppUtils::Params::log("Failed to create a run script: " + i.key(), - QuasarAppUtils::Error); + QuasarAppUtils::Error); } if (!createQConf(i.key())) { diff --git a/Deploy/metafilemanager.h b/Deploy/metafilemanager.h index 8bb88d1..533d540 100644 --- a/Deploy/metafilemanager.h +++ b/Deploy/metafilemanager.h @@ -12,6 +12,8 @@ #include <deploycore.h> class FileManager; +class DistroModule; +class TargetInfo; class MetaFileManager { @@ -32,6 +34,11 @@ private: bool createQConf(const QString &target); + QHash<QString, QString> toReplace(const QString &target, + const DistroModule &distro) const; + + void replace(const QHash<QString, QString>& map, QString& content); + FileManager* _fileManager = nullptr; QHash<QString, DeployCore::QtModule> _mudulesMap; }; diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index 562d6f3..0209413 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -6,21 +6,28 @@ //# #include "targetinfo.h" +#include "deploycore.h" +#include "deployconfig.h" TargetInfo::TargetInfo() { } -QString TargetInfo::getPackage() const { - return package; +TargetInfo::~TargetInfo() { + if (_fEnableRunScript) + delete _fEnableRunScript; +} + +const QString & TargetInfo::getPackage() const { + return _package; } void TargetInfo::setPackage(const QString &value) { - package = value; + _package = value; } QString TargetInfo::getIcon() const { - if (icon.isEmpty()) { + if (_icon.isEmpty()) { QFileInfo info(getName()); if (info.suffix() == "exe") { return ":/shared/Distributions/Templates/Icon.ico"; @@ -30,11 +37,74 @@ QString TargetInfo::getIcon() const { } - return icon; + return _icon; } void TargetInfo::setIcon(const QString &value) { - icon = value; + _icon = value; +} + +bool TargetInfo::getShortCut() const { + return _fEnableShortCut; +} + +void TargetInfo::setShortCut(bool shortcut) { + _fEnableShortCut = shortcut; +} + +void TargetInfo::disableShortCut() { + setShortCut(false); +} + +QString TargetInfo::getRunScript() const { + if (_runScript.isEmpty()) { + QFileInfo info(getName()); + if (info.suffix() == "exe") { + return ":/Scripts/ScriptsTemplates/windows.bat"; + } + + return ":/Scripts/ScriptsTemplates/linux.sh"; + } + + return _runScript; +} + +void TargetInfo::setRunScript(const QString &newRunScript) { + _runScript = newRunScript; +} + +QString TargetInfo::getRunScriptFile() const { + + if (_fEnableRunScript) { + QFileInfo runscriptInfo(_runScript); + QFileInfo info(getName()); + + return info.baseName() + "." + runscriptInfo.completeSuffix(); + } + + return getName(); +} + +bool TargetInfo::fEnableRunScript() const { + + if (!_fEnableRunScript) { + QFileInfo info(fullPath()); + QString compleSufix = info.completeSuffix(); + return compleSufix.compare(".exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); + } + + return _fEnableRunScript; +} + +void TargetInfo::setFEnableRunScript(bool newFEnableRunScript) { + if (!_fEnableRunScript) + _fEnableRunScript = new bool; + + *_fEnableRunScript = newFEnableRunScript; +} + +void TargetInfo::disableRunScript() { + setFEnableRunScript(false); } diff --git a/Deploy/targetinfo.h b/Deploy/targetinfo.h index 68e30d1..9862b41 100644 --- a/Deploy/targetinfo.h +++ b/Deploy/targetinfo.h @@ -11,20 +11,102 @@ #include "distrostruct.h" #include "libinfo.h" +/** + * @brief The TargetInfo class This clas scontains information about target object. (executable or another files marked in a bin option) + */ class DEPLOYSHARED_EXPORT TargetInfo: public LibInfo { public: TargetInfo(); + ~TargetInfo(); - QString getPackage() const; + /** + * @brief getPackage This method return name of the package in that contains this target. + * @return name of the package in that contains this target. + */ + const QString & getPackage() const; + + /** + * @brief setPackage This method sets new value for pacakge name in that contains this target. + * @param value new This is new value of the pacakge. + */ void setPackage(const QString &value); + /** + * @brief getIcon This method return path to default icon of the target. + * @return icon path. + * @note if the icon not set then return default icon. + */ QString getIcon() const; + + /** + * @brief setIcon This method sets new iconf for target. + * @param value + */ void setIcon(const QString &value); + /** + * @brief getShortCut This method return true if the target need to create shortcut. + * @return true if shortcut needed for this target. + */ + bool getShortCut() const; + + /** + * @brief setShortCut This method sets new status of the creating shortcut. + * @param shortcut This is new value of the shortcut + */ + void setShortCut(bool shortcut); + + /** + * @brief disableShortCut This method disable shortcut for this target. + */ + void disableShortCut(); + + /** + * @brief getRunScript This method return path to run script. + * @return path to run script + * @note By Default return path to default run scrip file from cqtdeployer resources. + */ + QString getRunScript() const; + + /** + * @brief setRunScript sets New path of the run script. + * @param newRunScript This is new path of the run sscript. + */ + void setRunScript(const QString &newRunScript); + + /** + * @brief getRunScriptFile This method return name fo the run script file or executable file if the run script are not needed + * @return runscript name + */ + QString getRunScriptFile() const; + + + /** + * @brief fEnableRunScript This return true if the run script will be generateed for this target else false. + * @return true if the run script will be generateed for this target else false. + */ + bool fEnableRunScript() const; + + /** + * @brief setFEnableRunScript This method enable or disable generation runScript. + * @param newFEnableRunScript New value. + */ + void setFEnableRunScript(bool newFEnableRunScript); + + /** + * @brief disableRunScript This method disable run script for this target. + */ + void disableRunScript(); + private: - QString package = ""; - QString icon = ""; -}; + QString _package = ""; + QString _icon = ""; + bool _fEnableShortCut = true; + bool *_fEnableRunScript = nullptr; + + QString _runScript = ""; + + }; #endif // TARGETINFO_H diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index a67a6bb..a9eeaee 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -181,6 +181,9 @@ private slots: void testMd5(); + void testDisableShortcuts(); + void testDisableRunScripts(); + void customTest(); }; @@ -1464,6 +1467,15 @@ void deploytest::testMd5() { "qifFromSystem"}, &comapareTreeqif); } +void deploytest::testDisableShortcuts() { + QVERIFY(false); +} + +void deploytest::testDisableRunScripts() { + QVERIFY(false); + +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); diff --git a/md/en/Options.md b/md/en/Options.md index 24a32c2..f168ee8 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -126,7 +126,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Sets path to icon for a targets | - +| -disableRunScript [target;val,val] | Disables a generation of run script for selected targets| +| -disableShortCut [target;val,val] | Disables a generation of shortcut for selected targets | ### Plugins Controll Options diff --git a/md/ru/Options.md b/md/ru/Options.md index 8a41025..7ff3fa9 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -123,6 +123,8 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Установит путь к иконке или логотипу для целе | +| -disableRunScript [target; val, val]| Отключает создание сценария выполнения для выбранных целей | +| -disableShortCut [target; val, val] | Отключает создание ярлыков для выбранных целей | ### Параметры управления плагинами: From 0c51bf0bed493a2014bb98dc75400c23f5200096 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Jun 2021 14:23:54 +0300 Subject: [PATCH 043/222] Revert "ref #519 implement of new system for creating run scripts." This reverts commit 18888ab37091dffb0e8327d64a43b6d98ebb433a. --- Deploy/DeployResources.qrc | 4 - .../Templates/deb/DEBIAN/postinst | 15 +- .../Distributions/Templates/deb/DEBIAN/prerm | 9 +- .../packages/default/meta/installscript.qs | 22 +-- Deploy/Distributions/idistribution.cpp | 21 +-- Deploy/ScriptsTemplates/linux.sh | 34 ---- Deploy/ScriptsTemplates/windows.bat | 22 --- Deploy/configparser.cpp | 106 ++++++------ Deploy/configparser.h | 3 +- Deploy/deployconfig.cpp | 9 ++ Deploy/deployconfig.h | 9 ++ Deploy/deploycore.cpp | 5 +- Deploy/metafilemanager.cpp | 152 ++++++++++-------- Deploy/metafilemanager.h | 7 - Deploy/targetinfo.cpp | 82 +--------- Deploy/targetinfo.h | 90 +---------- UnitTests/tst_deploytest.cpp | 12 -- md/en/Options.md | 3 +- md/ru/Options.md | 2 - 19 files changed, 175 insertions(+), 432 deletions(-) delete mode 100644 Deploy/ScriptsTemplates/linux.sh delete mode 100644 Deploy/ScriptsTemplates/windows.bat diff --git a/Deploy/DeployResources.qrc b/Deploy/DeployResources.qrc index c0e29d8..602f56a 100644 --- a/Deploy/DeployResources.qrc +++ b/Deploy/DeployResources.qrc @@ -26,8 +26,4 @@ <file>Distributions/Templates/Icon.png</file> <file>Distributions/Templates/Icon.ico</file> </qresource> - <qresource prefix="/Scripts"> - <file>ScriptsTemplates/windows.bat</file> - <file>ScriptsTemplates/linux.sh</file> - </qresource> </RCC> diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/postinst b/Deploy/Distributions/Templates/deb/DEBIAN/postinst index 55918ee..caeaebe 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/postinst +++ b/Deploy/Distributions/Templates/deb/DEBIAN/postinst @@ -1,7 +1,6 @@ #!/bin/bash APPS=$BASH_ARRAY_APPLICATIONS -APPS_SHORTCUTS=$BASH_ARRAY_SHORTCUTS_APPLICATIONS TARGET_DIR=/opt/$PREFIX/ @@ -36,20 +35,14 @@ do DEST_NAME=$app + SRC_FILE="$TARGET_DIR/$app.sh" + DEST_FILE="/usr/share/applications/$app.desktop" + createShortCut + if [ ! -e /usr/bin/"${app,,}" ]; then ln -s "$TARGET_DIR/$app.sh" /usr/bin/"${app,,}" echo "${app,,}" fi done -for app in "${APPS_SHORTCUTS[@]}" -do - - DEST_NAME=$app - - SRC_FILE="$TARGET_DIR/$app" - DEST_FILE="/usr/share/applications/${app%.*}.desktop" - createShortCut -done - diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/prerm b/Deploy/Distributions/Templates/deb/DEBIAN/prerm index 64b778a..0e0a2e6 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/prerm +++ b/Deploy/Distributions/Templates/deb/DEBIAN/prerm @@ -1,18 +1,15 @@ #!/bin/bash APPS=$BASH_ARRAY_APPLICATIONS -APPS_SHORTCUTS=$BASH_ARRAY_SHORTCUTS_APPLICATIONS for app in "${APPS[@]}" do + SRC_FILE="$TARGET_DIR/$app.sh" + rm "/usr/share/applications/$app.desktop" + if [ -e /usr/bin/"${app,,}" ]; then rm /usr/bin/"${app,,}" echo "Remove ${app,,}" fi done - -for app in "${APPS_SHORTCUTS[@]}" -do - rm "/usr/share/applications/${app%.*}.desktop" -done diff --git a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs index 4a74850..554f184 100644 --- a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs +++ b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs @@ -2,13 +2,6 @@ function Component() { } -function getBasename(file) { - if (!file.length) - return "" - - return file.split('.')[0]; -} - function generateShortCutCmd(cmd) { var prefix = "$PREFIX"; @@ -19,8 +12,8 @@ function generateShortCutCmd(cmd) { component.addOperation( "CreateShortcut", - "@TargetDir@/" + prefix + "/" + cmd, - "@DesktopDir@/" + getBasename(cmd) + ".lnk", + "@TargetDir@/" + prefix + "/" + cmd + ".bat", + "@DesktopDir@/" + cmd + ".lnk", "iconPath=@TargetDir@/$ICON", "iconId=0"); @@ -30,14 +23,14 @@ function generateShortCutCmd(cmd) { if (systemInfo.kernelType === "linux") { console.log("create icons!!! on LINUX"); component.addOperation("CreateDesktopEntry", - "@HomeDir@/.local/share/applications/" + getBasename(cmd) + ".desktop", + "@HomeDir@/.local/share/applications/" + cmd + ".desktop", "Version=@Version@\n Type=Application\n Terminal=false\n - Exec=\"@TargetDir@/" + prefix + "/" + cmd + "\"\n - Name=" + getBasename(cmd) + "\n + Exec=\"@TargetDir@/" + prefix + "/" + cmd + ".sh\"\n + Name=" + cmd + "\n Icon=@TargetDir@/$ICON\n - Name[en_US]=" + getBasename(cmd)); + Name[en_US]=" + cmd); console.log("create icons!!! on LINUX done"); } @@ -48,9 +41,8 @@ Component.prototype.createOperations = function() { component.createOperations(); var cmdArray = ["array", "of", "cmds"]; // will be changed in cqtdeployer - var shortcutsCmdArray = ["array", "of", "shortcut", "cmds"]; // will be changed in cqtdeployer - shortcutsCmdArray.forEach( function (item){ + cmdArray.forEach( function (item){ generateShortCutCmd(item); }); diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 2d8aaf6..937b389 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -196,25 +196,10 @@ bool iDistribution::collectInfo(const DistroModule& pkg, QString cmdArray = "["; QString bashArray = "("; - QString cmdShortCutsArray = "["; - QString bashShortCutsArray = "("; int initSize = cmdArray.size(); for (const auto &target :pkg.targets()) { - const DeployConfig *cfg = DeployCore::_config; - auto fileinfo = QFileInfo(target); - auto targetInfo = cfg->targets().value(target); - - if (targetInfo.getShortCut()) { - if (cmdArray.size() > initSize) { - cmdShortCutsArray += ","; - bashShortCutsArray += " "; - } - - cmdShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; - bashShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; - } - + auto fileinfo = QFileInfo(target); if (fileinfo.suffix().compare("exe", ONLY_WIN_CASE_INSENSIATIVE) == 0 || fileinfo.suffix().isEmpty()) { if (cmdArray.size() > initSize) { cmdArray += ","; @@ -226,13 +211,9 @@ bool iDistribution::collectInfo(const DistroModule& pkg, } cmdArray += "]"; bashArray += ")"; - cmdShortCutsArray += "]"; - bashShortCutsArray += ")"; info.Custom = {{"[\"array\", \"of\", \"cmds\"]", cmdArray}}; - info.Custom["[\"array\", \"of\", \"shortcut\", \"cmds\"]"] = cmdShortCutsArray; - info.Custom["$BASH_ARRAY_APPLICATIONS"] = bashArray; info.Custom["$BASH_ARRAY_APPLICATIONS"] = bashArray; if (info.Name.isEmpty()) { diff --git a/Deploy/ScriptsTemplates/linux.sh b/Deploy/ScriptsTemplates/linux.sh deleted file mode 100644 index c9e1aae..0000000 --- a/Deploy/ScriptsTemplates/linux.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh - -# This is default bat run script of The CQtDeployer project. -# This file contains key word that will replaced after deploy project. -# -# #################################################################### -# -# CQT_LIB_PATH - are releative path to libraryes of a deployed distribution. -# CQT_QML_PATH - are releative path to qml libraryes of a deployed distribution. -# CQT_PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. -# CQT_BIN_PATH - are releative path to targets of a deployed distribution. - -# CQT_SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. -# CQT_BASE_NAME - are base name of the executable that will be launched after run this script. -# CQT_CUSTOM_SCRIPT_BLOCK - This is code from the customScript option -# CQT_RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. -# -# #################################################################### - -BASE_DIR=$(dirname \"$(readlink -f \"$0\")\") -export LD_LIBRARY_PATH=\"$BASE_DIR\"CQT_LIB_PATH:\"$BASE_DIR\":$LD_LIBRARY_PATH -export QML_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML_IMPORT_PATH -export QML2_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML2_IMPORT_PATH -export QT_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH:$QT_PLUGIN_PATH -export QTWEBENGINEPROCESS_PATH=\"$BASE_DIR\"CQT_BIN_PATH/QtWebEngineProcess -export QTDIR=\"$BASE_DIR\" -export CQT_PKG_ROOT=\"$BASE_DIR\" -export CQT_RUN_FILE=\"$BASE_DIR/CQT_BASE_NAME.sh\" - -export QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH - -CQT_CUSTOM_SCRIPT_BLOCK - -CQT_RUN_COMMAND diff --git a/Deploy/ScriptsTemplates/windows.bat b/Deploy/ScriptsTemplates/windows.bat deleted file mode 100644 index af3f2f6..0000000 --- a/Deploy/ScriptsTemplates/windows.bat +++ /dev/null @@ -1,22 +0,0 @@ -:: This is default bat run script of The CQtDeployer project. -:: This file contains key word that will replaced after deploy project. - -:: #################################################################### - -:: LIB_PATH - are releative path to libraryes of a deployed distribution. -:: SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. -:: BASE_NAME - are base name of the executable that will be launched after run this script. -:: CUSTOM_SCRIPT_BLOCK - This is code from the customScript option -:: RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. - -:: #################################################################### - -@echo off -SET BASE_DIR=%~dp0 -SET PATH=%BASE_DIR%LIB_PATH;%PATH%;SYSTEM_LIB_PATH -SET CQT_PKG_ROOT=%BASE_DIR% -SET CQT_RUN_FILE=%BASE_DIR%BASE_NAME.bat - -CUSTOM_SCRIPT_BLOCK - -RUN_COMMAND diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 135bb89..f7f4085 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -75,7 +75,7 @@ void parseTargetPrivate(DeployConfig& conf, auto pair = iconPair.split(DeployCore::getSeparator(1), splitbehavior); if (pair.size() == 1) { - QuasarAppUtils::Params::log(QString("Set new default property for all tagets: " + pair.value(0)), + QuasarAppUtils::Params::log(QString("Set new default icon for all tagets: " + pair.value(0)), QuasarAppUtils::Debug); for (auto& editableTarget: cointainer) { (editableTarget.*adder)(pair.value(0)); @@ -96,7 +96,7 @@ void parseTargetPrivate(DeployConfig& conf, } for (const auto &target: targetsMap) { - QuasarAppUtils::Params::log(QString("Set new property for %0 taget."). + QuasarAppUtils::Params::log(QString("Set new icon for %0 taget. Icon: %1"). arg(pair.value(0), pair.value(1)), QuasarAppUtils::Debug); (target->*adder)(pair.value(1)); @@ -104,34 +104,6 @@ void parseTargetPrivate(DeployConfig& conf, } } -template <typename Enabler> -bool enableOptionFotTargetPrivate(DeployConfig& conf, - const QStringList &inputParams, - Enabler enabler) { - - for (const auto &iconPair: inputParams) { - auto pair = iconPair.split(DeployCore::getSeparator(1), splitbehavior); - - if (pair.size() != 1) { - QuasarAppUtils::Params::log(QString("Failed parese list of option values, This option support only single leve list. " - " Example: use -Option val1,val2,val3 "), - QuasarAppUtils::Error); - return false; - } - - const auto targetsMap = conf.getTargetsListByFilter(pair.value(0)); - - for (const auto &target: targetsMap) { - QuasarAppUtils::Params::log(QString("Set new property for %0 taget."). - arg(pair.value(0)), - QuasarAppUtils::Debug); - (target->*enabler)(); - } - } - - return true; -} - bool ConfigParser::parseParams() { auto path = QuasarAppUtils::Params::getArg("confFile"); @@ -606,6 +578,35 @@ bool ConfigParser::initPackages() { return true; } +bool ConfigParser::initRunScripts() { + const auto list = QuasarAppUtils::Params::getArg("runScript").split(DeployCore::getSeparator(0), splitbehavior); + + for (const auto& line: list) { + auto pair = line.split(DeployCore::getSeparator(1), splitbehavior); + if (pair.size() != 2) { + QuasarAppUtils::Params::log("Syntax error of the runScript option." + " Example of use :" + " -runScript \"myTarget;path/To/Target/RunScript.sh," + "mySecondTarget;path/To/Target/SecondRunScript.sh\"", + QuasarAppUtils::Error); + return false; + } + + QFileInfo script(pair.value(1)); + + if (!script.isFile()) { + QuasarAppUtils::Params::log(QString("The %0 file does not exist.").arg(script.absoluteFilePath()), + QuasarAppUtils::Error); + return false; + } + + _config.registerRunScript(pair.value(0), + script.absoluteFilePath()); + } + + return true; +} + bool ConfigParser::initQmlInput() { auto qmlDir = QuasarAppUtils::Params::getArg("qmlDir"). @@ -682,6 +683,11 @@ bool ConfigParser::parseDeployMode() { } } + + if (!initRunScripts()) { + return false; + } + initIgnoreEnvList(); initEnvirement(); initIgnoreList(); @@ -700,9 +706,9 @@ bool ConfigParser::parseDeployMode() { " then you must use the classic version of CQtDeployer instead of the snap version." " This is due to the fact that the snap version" " runs in an isolated container and has limited access" - " to system utilities and the environment." - " For get the classic version of cqtdeployer use the cqtdeployer installer" - " https://github.com/QuasarApp/CQtDeployer/releases", QuasarAppUtils::Info); + " to system utilities and the environment. " + "For get the classic version of cqtdeployer use the cqtdeployer installer " + "https://github.com/QuasarApp/CQtDeployer/releases", QuasarAppUtils::Info); } return false; @@ -754,39 +760,15 @@ bool ConfigParser::parseInitMode() { return true; } -bool ConfigParser::configureTargets() { +void ConfigParser::configureTargets() { const auto icons = QuasarAppUtils::Params::getArg("icon"). split(DeployCore::getSeparator(0), splitbehavior); - const auto runScripts = QuasarAppUtils::Params::getArg("runScript"). - split(DeployCore::getSeparator(0), splitbehavior); - - const auto disableShortcuts = QuasarAppUtils::Params::getArg("disableRunScript"). - split(DeployCore::getSeparator(0), splitbehavior); - - const auto disableRunScripts = QuasarAppUtils::Params::getArg("disableShortCut"). - split(DeployCore::getSeparator(0), splitbehavior); - - if (icons.size()) { parseTargetPrivate(_config, icons, &TargetInfo::setIcon); } - if (runScripts.size()) { - parseTargetPrivate(_config, runScripts, &TargetInfo::setRunScript); - } - - if (disableShortcuts.size() && !enableOptionFotTargetPrivate(_config, disableShortcuts, &TargetInfo::disableShortCut)) { - packagesErrorLog("disableShortCut"); - return false; - } - - if (disableRunScripts.size() && !enableOptionFotTargetPrivate(_config, disableRunScripts, &TargetInfo::disableRunScript)) { - packagesErrorLog("disableRunScript"); - return false; - } - - return true; + return; } bool ConfigParser::parseClearMode() { @@ -1168,7 +1150,7 @@ bool ConfigParser::initQmake() { auto qt = *qtList.begin(); - if (qt.rightRef(3).compare(QString("lib"), Qt::CaseInsensitive)) { + if (qt.right(3).compare("lib", Qt::CaseInsensitive)) { return initQmakePrivate(QFileInfo(qt + "/../bin/qmake").absoluteFilePath()); } @@ -1584,7 +1566,9 @@ bool ConfigParser::smartMoveTargets() { _config.targetsEdit() = temp; - return result && configureTargets(); + configureTargets(); + + return result; } ConfigParser::ConfigParser(FileManager *filemanager, PluginsParser *pluginsParser, DependenciesScanner* scaner, Packing *pac): diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 69f3685..54a9d20 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -52,6 +52,7 @@ private: bool loadFromFile(const QString& file); bool initDistroStruct(); bool initPackages(); + bool initRunScripts(); bool parseDeployMode(); bool parseInfoMode(); bool parseInitMode(); @@ -59,7 +60,7 @@ private: * @brief configureTargets Sets targets data from options. * @return true if function finishe successfull */ - bool configureTargets(); + void configureTargets(); bool parseClearMode(); diff --git a/Deploy/deployconfig.cpp b/Deploy/deployconfig.cpp index e9439d1..09836b2 100644 --- a/Deploy/deployconfig.cpp +++ b/Deploy/deployconfig.cpp @@ -104,6 +104,15 @@ void DeployConfig::setDefaultPackage(const QString &value) { defaultPackage = value; } +void DeployConfig::registerRunScript(const QString &targetName, + const QString &scriptPath) { + _runScripts.insert(targetName, scriptPath); +} + +QString DeployConfig::getRunScript(const QString &targetName) const { + return _runScripts.value(targetName, ""); +} + QtMajorVersion DeployConfig::isNeededQt() const { auto Qt = QtMajorVersion::NoQt; diff --git a/Deploy/deployconfig.h b/Deploy/deployconfig.h index f2935a5..2abdf08 100644 --- a/Deploy/deployconfig.h +++ b/Deploy/deployconfig.h @@ -122,6 +122,9 @@ public: QString getDefaultPackage() const; void setDefaultPackage(const QString &value); + void registerRunScript(const QString& targetName, const QString& scriptPath); + QString getRunScript(const QString& targetName) const; + /** * @brief isNeededQt This method return all needed qt major version for all targets. * @return qt major version @@ -152,6 +155,12 @@ private: */ QHash<QString, DistroModule> _packages; + /** + * @brief _runScripts + * target - pathToScript + */ + QHash<QString, QString> _runScripts; + /** * @brief targetDir - targe directory (this folder conteins all files of distrebution kit) */ diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 37ba1cd..8d5a3dd 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -295,10 +295,7 @@ void DeployCore::help() { { "Part 4 Control of packages options", { - {"-icon [target;val,val]", "Sets path to icon for a targets"}, - {"-disableRunScript [target;val,val]", "Disables a generation of run script for selected targets"}, - {"-disableShortCut [target;val,val]", "Disables a generation of shortcut for selected targets"} - + {"-icon [target;val,val]", "Sets path to icon for a targets"} } }, diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index b2b9ab6..b0c3aac 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -27,15 +27,46 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { QFileInfo targetInfo(target); QString content; - auto runScript = targetinfo.getRunScript(); + auto runScript = cnf->getRunScript(targetInfo.fileName()); + if (runScript.size()) { + QFile script(runScript); + if (!script.open(QIODevice::ReadOnly)) { + return false; + } + content = script.readAll(); + script.close(); - QFile script(runScript); - if (!script.open(QIODevice::ReadOnly)) { - return false; + } else { + + bool fGui = DeployCore::isGui(_mudulesMap.value(target)); + auto systemLibsDir = distro.getLibOutDir() + DeployCore::systemLibsFolderName(); + + content = + "@echo off \n" + "SET BASE_DIR=%~dp0\n" + "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%;" + systemLibsDir + "\n" + "SET CQT_PKG_ROOT=%BASE_DIR%\n" + "SET CQT_RUN_FILE=%BASE_DIR%%0.bat\n" + + "%3\n"; + + // Run application as invoke of the console for consle applications + // And run gui applciation in the detached mode. + if (fGui) { + content += "start \"%0\" %4 \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; + } else { + content += "call \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; + } + + content = content.arg(targetInfo.baseName(), targetInfo.fileName(), "%*", + generateCustoScriptBlok(true)); // %0 %1 %2 %3 + + content = QDir::toNativeSeparators(content); + + if (fGui) { + content = content.arg("/B"); // %4 + } } - content = script.readAll(); - script.close(); - replace(toReplace(target, distro), content); QString fname = DeployCore::_config->getTargetDir(target) + QDir::separator() + targetInfo.baseName()+ ".bat"; @@ -59,7 +90,6 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { bool MetaFileManager::createRunScriptLinux(const QString &target) { auto cnf = DeployCore::_config; - auto targetinfo = cnf->targets().value(target); if (!cnf->targets().contains(target)) { return false; @@ -69,15 +99,48 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { QFileInfo targetInfo(target); QString content; - auto runScript = targetinfo.getRunScript(); - QFile script(runScript); - if (!script.open(QIODevice::ReadOnly)) { - return false; - } - content = script.readAll(); - script.close(); - replace(toReplace(target, distro), content); + auto runScript = cnf->getRunScript(targetInfo.fileName()); + if (runScript.size()) { + QFile script(runScript); + if (!script.open(QIODevice::ReadOnly)) { + return false; + } + content = script.readAll(); + script.close(); + } else { + + auto systemLibsDir = distro.getLibOutDir() + DeployCore::systemLibsFolderName(); + + content = + "#!/bin/sh\n" + "BASE_DIR=$(dirname \"$(readlink -f \"$0\")\")\n" + "export " + "LD_LIBRARY_PATH=\"$BASE_DIR\"" + distro.getLibOutDir() + + ":\"$BASE_DIR\":$LD_LIBRARY_PATH:\"$BASE_DIR\"" + systemLibsDir + "\n" + "export QML_IMPORT_PATH=\"$BASE_DIR\"" + distro.getQmlOutDir() + ":$QML_IMPORT_PATH\n" + "export QML2_IMPORT_PATH=\"$BASE_DIR\"" + distro.getQmlOutDir() + ":$QML2_IMPORT_PATH\n" + "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 CQT_RUN_FILE=\"$BASE_DIR/%2\"\n" + + "export " + "QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"" + distro.getPluginsOutDir() + + "platforms:$QT_QPA_PLATFORM_PLUGIN_PATH\n" + "" + "%1\n" + "\"$BASE_DIR" + distro.getBinOutDir() + "%0\" \"$@\"\n"; + + content = content.arg(targetInfo.fileName()); // %0 + + content = content.arg(generateCustoScriptBlok(false), + targetInfo.baseName()+ ".sh"); // %1 %2 + + + + } QString fname = DeployCore::_config->getTargetDir(target) + QDir::separator() + targetInfo.baseName()+ ".sh"; @@ -110,9 +173,9 @@ QString MetaFileManager::generateCustoScriptBlok(bool bat) const { auto cstSh = QuasarAppUtils::Params::getArg("customScript", ""); if (cstSh.size()) { res = "\n" + - commentMarker + "Begin Custom Script (generated by customScript flag)\n" + commentMarker + "Begin Custom Script (generated by customScript flag)\n" "%0\n" + - commentMarker + "End Custom Script\n" + commentMarker + "End Custom Script\n" "\n"; res = res.arg(cstSh); @@ -185,63 +248,14 @@ bool MetaFileManager::createQConf(const QString &target) { QFileDevice::ReadOwner); } -QHash<QString, QString> MetaFileManager::toReplace(const QString& target, - const DistroModule& distro) const { - QFileInfo targetInfo(target); - - QHash<QString, QString> result = { - {"CQT_BIN_PATH", distro.getBinOutDir()}, - {"CQT_LIB_PATH", distro.getLibOutDir()}, - {"CQT_QML_PATH", distro.getQmlOutDir()}, - {"CQT_PLUGIN_PATH", distro.getPluginsOutDir()}, - {"CQT_SYSTEM_LIB_PATH", distro.getLibOutDir() + DeployCore::systemLibsFolderName()}, - {"CQT_BASE_NAME", targetInfo.baseName()} - }; - - bool fGui = DeployCore::isGui(_mudulesMap.value(target)); - - - if (targetInfo.completeSuffix().compare(".exe", Qt::CaseInsensitive) == 0) { - result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(true)); - - // Run application as invoke of the console for consle applications - // And run gui applciation in the detached mode. - QString runCmd; - if (fGui) { - runCmd = "start \"" + targetInfo.baseName() + "\" /B " + - "\"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; - } else { - runCmd = "call \"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; - } - - result.insert("CQT_RUN_COMMAND", runCmd); - - } else { - result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(false)); - - QString runCmd = "\"$BASE_DIR" + distro.getBinOutDir() + targetInfo.fileName() + "\" \"$@\" "; - - result.insert("CQT_RUN_COMMAND", runCmd); - } - - return result; -} - -void MetaFileManager::replace(const QHash<QString, QString> &map, QString &content) { - for (auto it = map.begin(); it != map.end(); ++it) { - content = content.replace(it.key(), it.value()); - } - -} - void MetaFileManager::createRunMetaFiles(const QHash<QString, DeployCore::QtModule>& modulesMap) { _mudulesMap = modulesMap; for (auto i = DeployCore::_config->targets().cbegin(); i != DeployCore::_config->targets().cend(); ++i) { - if (i.value().fEnableRunScript() && !createRunScript(i.key())) { + if (!createRunScript(i.key())) { QuasarAppUtils::Params::log("Failed to create a run script: " + i.key(), - QuasarAppUtils::Error); + QuasarAppUtils::Error); } if (!createQConf(i.key())) { diff --git a/Deploy/metafilemanager.h b/Deploy/metafilemanager.h index 533d540..8bb88d1 100644 --- a/Deploy/metafilemanager.h +++ b/Deploy/metafilemanager.h @@ -12,8 +12,6 @@ #include <deploycore.h> class FileManager; -class DistroModule; -class TargetInfo; class MetaFileManager { @@ -34,11 +32,6 @@ private: bool createQConf(const QString &target); - QHash<QString, QString> toReplace(const QString &target, - const DistroModule &distro) const; - - void replace(const QHash<QString, QString>& map, QString& content); - FileManager* _fileManager = nullptr; QHash<QString, DeployCore::QtModule> _mudulesMap; }; diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index 0209413..562d6f3 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -6,28 +6,21 @@ //# #include "targetinfo.h" -#include "deploycore.h" -#include "deployconfig.h" TargetInfo::TargetInfo() { } -TargetInfo::~TargetInfo() { - if (_fEnableRunScript) - delete _fEnableRunScript; -} - -const QString & TargetInfo::getPackage() const { - return _package; +QString TargetInfo::getPackage() const { + return package; } void TargetInfo::setPackage(const QString &value) { - _package = value; + package = value; } QString TargetInfo::getIcon() const { - if (_icon.isEmpty()) { + if (icon.isEmpty()) { QFileInfo info(getName()); if (info.suffix() == "exe") { return ":/shared/Distributions/Templates/Icon.ico"; @@ -37,74 +30,11 @@ QString TargetInfo::getIcon() const { } - return _icon; + return icon; } void TargetInfo::setIcon(const QString &value) { - _icon = value; -} - -bool TargetInfo::getShortCut() const { - return _fEnableShortCut; -} - -void TargetInfo::setShortCut(bool shortcut) { - _fEnableShortCut = shortcut; -} - -void TargetInfo::disableShortCut() { - setShortCut(false); -} - -QString TargetInfo::getRunScript() const { - if (_runScript.isEmpty()) { - QFileInfo info(getName()); - if (info.suffix() == "exe") { - return ":/Scripts/ScriptsTemplates/windows.bat"; - } - - return ":/Scripts/ScriptsTemplates/linux.sh"; - } - - return _runScript; -} - -void TargetInfo::setRunScript(const QString &newRunScript) { - _runScript = newRunScript; -} - -QString TargetInfo::getRunScriptFile() const { - - if (_fEnableRunScript) { - QFileInfo runscriptInfo(_runScript); - QFileInfo info(getName()); - - return info.baseName() + "." + runscriptInfo.completeSuffix(); - } - - return getName(); -} - -bool TargetInfo::fEnableRunScript() const { - - if (!_fEnableRunScript) { - QFileInfo info(fullPath()); - QString compleSufix = info.completeSuffix(); - return compleSufix.compare(".exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); - } - - return _fEnableRunScript; -} - -void TargetInfo::setFEnableRunScript(bool newFEnableRunScript) { - if (!_fEnableRunScript) - _fEnableRunScript = new bool; - - *_fEnableRunScript = newFEnableRunScript; -} - -void TargetInfo::disableRunScript() { - setFEnableRunScript(false); + icon = value; } diff --git a/Deploy/targetinfo.h b/Deploy/targetinfo.h index 9862b41..68e30d1 100644 --- a/Deploy/targetinfo.h +++ b/Deploy/targetinfo.h @@ -11,102 +11,20 @@ #include "distrostruct.h" #include "libinfo.h" -/** - * @brief The TargetInfo class This clas scontains information about target object. (executable or another files marked in a bin option) - */ class DEPLOYSHARED_EXPORT TargetInfo: public LibInfo { public: TargetInfo(); - ~TargetInfo(); - /** - * @brief getPackage This method return name of the package in that contains this target. - * @return name of the package in that contains this target. - */ - const QString & getPackage() const; - - /** - * @brief setPackage This method sets new value for pacakge name in that contains this target. - * @param value new This is new value of the pacakge. - */ + QString getPackage() const; void setPackage(const QString &value); - /** - * @brief getIcon This method return path to default icon of the target. - * @return icon path. - * @note if the icon not set then return default icon. - */ QString getIcon() const; - - /** - * @brief setIcon This method sets new iconf for target. - * @param value - */ void setIcon(const QString &value); - /** - * @brief getShortCut This method return true if the target need to create shortcut. - * @return true if shortcut needed for this target. - */ - bool getShortCut() const; - - /** - * @brief setShortCut This method sets new status of the creating shortcut. - * @param shortcut This is new value of the shortcut - */ - void setShortCut(bool shortcut); - - /** - * @brief disableShortCut This method disable shortcut for this target. - */ - void disableShortCut(); - - /** - * @brief getRunScript This method return path to run script. - * @return path to run script - * @note By Default return path to default run scrip file from cqtdeployer resources. - */ - QString getRunScript() const; - - /** - * @brief setRunScript sets New path of the run script. - * @param newRunScript This is new path of the run sscript. - */ - void setRunScript(const QString &newRunScript); - - /** - * @brief getRunScriptFile This method return name fo the run script file or executable file if the run script are not needed - * @return runscript name - */ - QString getRunScriptFile() const; - - - /** - * @brief fEnableRunScript This return true if the run script will be generateed for this target else false. - * @return true if the run script will be generateed for this target else false. - */ - bool fEnableRunScript() const; - - /** - * @brief setFEnableRunScript This method enable or disable generation runScript. - * @param newFEnableRunScript New value. - */ - void setFEnableRunScript(bool newFEnableRunScript); - - /** - * @brief disableRunScript This method disable run script for this target. - */ - void disableRunScript(); - private: - QString _package = ""; - QString _icon = ""; - bool _fEnableShortCut = true; - bool *_fEnableRunScript = nullptr; - - QString _runScript = ""; - - }; + QString package = ""; + QString icon = ""; +}; #endif // TARGETINFO_H diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index a9eeaee..a67a6bb 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -181,9 +181,6 @@ private slots: void testMd5(); - void testDisableShortcuts(); - void testDisableRunScripts(); - void customTest(); }; @@ -1467,15 +1464,6 @@ void deploytest::testMd5() { "qifFromSystem"}, &comapareTreeqif); } -void deploytest::testDisableShortcuts() { - QVERIFY(false); -} - -void deploytest::testDisableRunScripts() { - QVERIFY(false); - -} - void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); diff --git a/md/en/Options.md b/md/en/Options.md index 3733e0f..6f4bdb4 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -126,8 +126,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Sets path to icon for a targets | -| -disableRunScript [target;val,val] | Disables a generation of run script for selected targets| -| -disableShortCut [target;val,val] | Disables a generation of shortcut for selected targets | + ### Plugins Controll Options diff --git a/md/ru/Options.md b/md/ru/Options.md index 41ed28c..263f90e 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -124,8 +124,6 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Установит путь к иконке или логотипу для целе | -| -disableRunScript [target; val, val]| Отключает создание сценария выполнения для выбранных целей | -| -disableShortCut [target; val, val] | Отключает создание ярлыков для выбранных целей | ### Параметры управления плагинами: From 583d27e3ff1b09e34db26c6a6378d90d177d3aa1 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Jun 2021 14:22:03 +0300 Subject: [PATCH 044/222] ref #519 implement of new system for creating run scripts. --- Deploy/DeployResources.qrc | 4 + .../Templates/deb/DEBIAN/postinst | 15 +- .../Distributions/Templates/deb/DEBIAN/prerm | 9 +- .../packages/default/meta/installscript.qs | 22 ++- Deploy/Distributions/idistribution.cpp | 21 ++- Deploy/ScriptsTemplates/linux.sh | 34 ++++ Deploy/ScriptsTemplates/windows.bat | 22 +++ Deploy/configparser.cpp | 106 ++++++------ Deploy/configparser.h | 3 +- Deploy/deployconfig.cpp | 9 -- Deploy/deployconfig.h | 9 -- Deploy/deploycore.cpp | 5 +- Deploy/metafilemanager.cpp | 152 ++++++++---------- Deploy/metafilemanager.h | 7 + Deploy/targetinfo.cpp | 82 +++++++++- Deploy/targetinfo.h | 90 ++++++++++- UnitTests/tst_deploytest.cpp | 12 ++ md/en/Options.md | 3 +- md/ru/Options.md | 2 + 19 files changed, 432 insertions(+), 175 deletions(-) create mode 100644 Deploy/ScriptsTemplates/linux.sh create mode 100644 Deploy/ScriptsTemplates/windows.bat diff --git a/Deploy/DeployResources.qrc b/Deploy/DeployResources.qrc index 602f56a..c0e29d8 100644 --- a/Deploy/DeployResources.qrc +++ b/Deploy/DeployResources.qrc @@ -26,4 +26,8 @@ <file>Distributions/Templates/Icon.png</file> <file>Distributions/Templates/Icon.ico</file> </qresource> + <qresource prefix="/Scripts"> + <file>ScriptsTemplates/windows.bat</file> + <file>ScriptsTemplates/linux.sh</file> + </qresource> </RCC> diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/postinst b/Deploy/Distributions/Templates/deb/DEBIAN/postinst index caeaebe..55918ee 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/postinst +++ b/Deploy/Distributions/Templates/deb/DEBIAN/postinst @@ -1,6 +1,7 @@ #!/bin/bash APPS=$BASH_ARRAY_APPLICATIONS +APPS_SHORTCUTS=$BASH_ARRAY_SHORTCUTS_APPLICATIONS TARGET_DIR=/opt/$PREFIX/ @@ -35,14 +36,20 @@ do DEST_NAME=$app - SRC_FILE="$TARGET_DIR/$app.sh" - DEST_FILE="/usr/share/applications/$app.desktop" - createShortCut - if [ ! -e /usr/bin/"${app,,}" ]; then ln -s "$TARGET_DIR/$app.sh" /usr/bin/"${app,,}" echo "${app,,}" fi done +for app in "${APPS_SHORTCUTS[@]}" +do + + DEST_NAME=$app + + SRC_FILE="$TARGET_DIR/$app" + DEST_FILE="/usr/share/applications/${app%.*}.desktop" + createShortCut +done + diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/prerm b/Deploy/Distributions/Templates/deb/DEBIAN/prerm index 0e0a2e6..64b778a 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/prerm +++ b/Deploy/Distributions/Templates/deb/DEBIAN/prerm @@ -1,15 +1,18 @@ #!/bin/bash APPS=$BASH_ARRAY_APPLICATIONS +APPS_SHORTCUTS=$BASH_ARRAY_SHORTCUTS_APPLICATIONS for app in "${APPS[@]}" do - SRC_FILE="$TARGET_DIR/$app.sh" - rm "/usr/share/applications/$app.desktop" - if [ -e /usr/bin/"${app,,}" ]; then rm /usr/bin/"${app,,}" echo "Remove ${app,,}" fi done + +for app in "${APPS_SHORTCUTS[@]}" +do + rm "/usr/share/applications/${app%.*}.desktop" +done diff --git a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs index 554f184..4a74850 100644 --- a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs +++ b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs @@ -2,6 +2,13 @@ function Component() { } +function getBasename(file) { + if (!file.length) + return "" + + return file.split('.')[0]; +} + function generateShortCutCmd(cmd) { var prefix = "$PREFIX"; @@ -12,8 +19,8 @@ function generateShortCutCmd(cmd) { component.addOperation( "CreateShortcut", - "@TargetDir@/" + prefix + "/" + cmd + ".bat", - "@DesktopDir@/" + cmd + ".lnk", + "@TargetDir@/" + prefix + "/" + cmd, + "@DesktopDir@/" + getBasename(cmd) + ".lnk", "iconPath=@TargetDir@/$ICON", "iconId=0"); @@ -23,14 +30,14 @@ function generateShortCutCmd(cmd) { if (systemInfo.kernelType === "linux") { console.log("create icons!!! on LINUX"); component.addOperation("CreateDesktopEntry", - "@HomeDir@/.local/share/applications/" + cmd + ".desktop", + "@HomeDir@/.local/share/applications/" + getBasename(cmd) + ".desktop", "Version=@Version@\n Type=Application\n Terminal=false\n - Exec=\"@TargetDir@/" + prefix + "/" + cmd + ".sh\"\n - Name=" + cmd + "\n + Exec=\"@TargetDir@/" + prefix + "/" + cmd + "\"\n + Name=" + getBasename(cmd) + "\n Icon=@TargetDir@/$ICON\n - Name[en_US]=" + cmd); + Name[en_US]=" + getBasename(cmd)); console.log("create icons!!! on LINUX done"); } @@ -41,8 +48,9 @@ Component.prototype.createOperations = function() { component.createOperations(); var cmdArray = ["array", "of", "cmds"]; // will be changed in cqtdeployer + var shortcutsCmdArray = ["array", "of", "shortcut", "cmds"]; // will be changed in cqtdeployer - cmdArray.forEach( function (item){ + shortcutsCmdArray.forEach( function (item){ generateShortCutCmd(item); }); diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 937b389..2d8aaf6 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -196,10 +196,25 @@ bool iDistribution::collectInfo(const DistroModule& pkg, QString cmdArray = "["; QString bashArray = "("; + QString cmdShortCutsArray = "["; + QString bashShortCutsArray = "("; int initSize = cmdArray.size(); for (const auto &target :pkg.targets()) { - auto fileinfo = QFileInfo(target); + const DeployConfig *cfg = DeployCore::_config; + auto fileinfo = QFileInfo(target); + auto targetInfo = cfg->targets().value(target); + + if (targetInfo.getShortCut()) { + if (cmdArray.size() > initSize) { + cmdShortCutsArray += ","; + bashShortCutsArray += " "; + } + + cmdShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; + bashShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; + } + if (fileinfo.suffix().compare("exe", ONLY_WIN_CASE_INSENSIATIVE) == 0 || fileinfo.suffix().isEmpty()) { if (cmdArray.size() > initSize) { cmdArray += ","; @@ -211,9 +226,13 @@ bool iDistribution::collectInfo(const DistroModule& pkg, } cmdArray += "]"; bashArray += ")"; + cmdShortCutsArray += "]"; + bashShortCutsArray += ")"; info.Custom = {{"[\"array\", \"of\", \"cmds\"]", cmdArray}}; + info.Custom["[\"array\", \"of\", \"shortcut\", \"cmds\"]"] = cmdShortCutsArray; + info.Custom["$BASH_ARRAY_APPLICATIONS"] = bashArray; info.Custom["$BASH_ARRAY_APPLICATIONS"] = bashArray; if (info.Name.isEmpty()) { diff --git a/Deploy/ScriptsTemplates/linux.sh b/Deploy/ScriptsTemplates/linux.sh new file mode 100644 index 0000000..c9e1aae --- /dev/null +++ b/Deploy/ScriptsTemplates/linux.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# This is default bat run script of The CQtDeployer project. +# This file contains key word that will replaced after deploy project. +# +# #################################################################### +# +# CQT_LIB_PATH - are releative path to libraryes of a deployed distribution. +# CQT_QML_PATH - are releative path to qml libraryes of a deployed distribution. +# CQT_PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. +# CQT_BIN_PATH - are releative path to targets of a deployed distribution. + +# CQT_SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. +# CQT_BASE_NAME - are base name of the executable that will be launched after run this script. +# CQT_CUSTOM_SCRIPT_BLOCK - This is code from the customScript option +# CQT_RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. +# +# #################################################################### + +BASE_DIR=$(dirname \"$(readlink -f \"$0\")\") +export LD_LIBRARY_PATH=\"$BASE_DIR\"CQT_LIB_PATH:\"$BASE_DIR\":$LD_LIBRARY_PATH +export QML_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML_IMPORT_PATH +export QML2_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML2_IMPORT_PATH +export QT_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH:$QT_PLUGIN_PATH +export QTWEBENGINEPROCESS_PATH=\"$BASE_DIR\"CQT_BIN_PATH/QtWebEngineProcess +export QTDIR=\"$BASE_DIR\" +export CQT_PKG_ROOT=\"$BASE_DIR\" +export CQT_RUN_FILE=\"$BASE_DIR/CQT_BASE_NAME.sh\" + +export QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH + +CQT_CUSTOM_SCRIPT_BLOCK + +CQT_RUN_COMMAND diff --git a/Deploy/ScriptsTemplates/windows.bat b/Deploy/ScriptsTemplates/windows.bat new file mode 100644 index 0000000..af3f2f6 --- /dev/null +++ b/Deploy/ScriptsTemplates/windows.bat @@ -0,0 +1,22 @@ +:: This is default bat run script of The CQtDeployer project. +:: This file contains key word that will replaced after deploy project. + +:: #################################################################### + +:: LIB_PATH - are releative path to libraryes of a deployed distribution. +:: SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. +:: BASE_NAME - are base name of the executable that will be launched after run this script. +:: CUSTOM_SCRIPT_BLOCK - This is code from the customScript option +:: RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. + +:: #################################################################### + +@echo off +SET BASE_DIR=%~dp0 +SET PATH=%BASE_DIR%LIB_PATH;%PATH%;SYSTEM_LIB_PATH +SET CQT_PKG_ROOT=%BASE_DIR% +SET CQT_RUN_FILE=%BASE_DIR%BASE_NAME.bat + +CUSTOM_SCRIPT_BLOCK + +RUN_COMMAND diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index f7f4085..135bb89 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -75,7 +75,7 @@ void parseTargetPrivate(DeployConfig& conf, auto pair = iconPair.split(DeployCore::getSeparator(1), splitbehavior); if (pair.size() == 1) { - QuasarAppUtils::Params::log(QString("Set new default icon for all tagets: " + pair.value(0)), + QuasarAppUtils::Params::log(QString("Set new default property for all tagets: " + pair.value(0)), QuasarAppUtils::Debug); for (auto& editableTarget: cointainer) { (editableTarget.*adder)(pair.value(0)); @@ -96,7 +96,7 @@ void parseTargetPrivate(DeployConfig& conf, } for (const auto &target: targetsMap) { - QuasarAppUtils::Params::log(QString("Set new icon for %0 taget. Icon: %1"). + QuasarAppUtils::Params::log(QString("Set new property for %0 taget."). arg(pair.value(0), pair.value(1)), QuasarAppUtils::Debug); (target->*adder)(pair.value(1)); @@ -104,6 +104,34 @@ void parseTargetPrivate(DeployConfig& conf, } } +template <typename Enabler> +bool enableOptionFotTargetPrivate(DeployConfig& conf, + const QStringList &inputParams, + Enabler enabler) { + + for (const auto &iconPair: inputParams) { + auto pair = iconPair.split(DeployCore::getSeparator(1), splitbehavior); + + if (pair.size() != 1) { + QuasarAppUtils::Params::log(QString("Failed parese list of option values, This option support only single leve list. " + " Example: use -Option val1,val2,val3 "), + QuasarAppUtils::Error); + return false; + } + + const auto targetsMap = conf.getTargetsListByFilter(pair.value(0)); + + for (const auto &target: targetsMap) { + QuasarAppUtils::Params::log(QString("Set new property for %0 taget."). + arg(pair.value(0)), + QuasarAppUtils::Debug); + (target->*enabler)(); + } + } + + return true; +} + bool ConfigParser::parseParams() { auto path = QuasarAppUtils::Params::getArg("confFile"); @@ -578,35 +606,6 @@ bool ConfigParser::initPackages() { return true; } -bool ConfigParser::initRunScripts() { - const auto list = QuasarAppUtils::Params::getArg("runScript").split(DeployCore::getSeparator(0), splitbehavior); - - for (const auto& line: list) { - auto pair = line.split(DeployCore::getSeparator(1), splitbehavior); - if (pair.size() != 2) { - QuasarAppUtils::Params::log("Syntax error of the runScript option." - " Example of use :" - " -runScript \"myTarget;path/To/Target/RunScript.sh," - "mySecondTarget;path/To/Target/SecondRunScript.sh\"", - QuasarAppUtils::Error); - return false; - } - - QFileInfo script(pair.value(1)); - - if (!script.isFile()) { - QuasarAppUtils::Params::log(QString("The %0 file does not exist.").arg(script.absoluteFilePath()), - QuasarAppUtils::Error); - return false; - } - - _config.registerRunScript(pair.value(0), - script.absoluteFilePath()); - } - - return true; -} - bool ConfigParser::initQmlInput() { auto qmlDir = QuasarAppUtils::Params::getArg("qmlDir"). @@ -683,11 +682,6 @@ bool ConfigParser::parseDeployMode() { } } - - if (!initRunScripts()) { - return false; - } - initIgnoreEnvList(); initEnvirement(); initIgnoreList(); @@ -706,9 +700,9 @@ bool ConfigParser::parseDeployMode() { " then you must use the classic version of CQtDeployer instead of the snap version." " This is due to the fact that the snap version" " runs in an isolated container and has limited access" - " to system utilities and the environment. " - "For get the classic version of cqtdeployer use the cqtdeployer installer " - "https://github.com/QuasarApp/CQtDeployer/releases", QuasarAppUtils::Info); + " to system utilities and the environment." + " For get the classic version of cqtdeployer use the cqtdeployer installer" + " https://github.com/QuasarApp/CQtDeployer/releases", QuasarAppUtils::Info); } return false; @@ -760,15 +754,39 @@ bool ConfigParser::parseInitMode() { return true; } -void ConfigParser::configureTargets() { +bool ConfigParser::configureTargets() { const auto icons = QuasarAppUtils::Params::getArg("icon"). split(DeployCore::getSeparator(0), splitbehavior); + const auto runScripts = QuasarAppUtils::Params::getArg("runScript"). + split(DeployCore::getSeparator(0), splitbehavior); + + const auto disableShortcuts = QuasarAppUtils::Params::getArg("disableRunScript"). + split(DeployCore::getSeparator(0), splitbehavior); + + const auto disableRunScripts = QuasarAppUtils::Params::getArg("disableShortCut"). + split(DeployCore::getSeparator(0), splitbehavior); + + if (icons.size()) { parseTargetPrivate(_config, icons, &TargetInfo::setIcon); } - return; + if (runScripts.size()) { + parseTargetPrivate(_config, runScripts, &TargetInfo::setRunScript); + } + + if (disableShortcuts.size() && !enableOptionFotTargetPrivate(_config, disableShortcuts, &TargetInfo::disableShortCut)) { + packagesErrorLog("disableShortCut"); + return false; + } + + if (disableRunScripts.size() && !enableOptionFotTargetPrivate(_config, disableRunScripts, &TargetInfo::disableRunScript)) { + packagesErrorLog("disableRunScript"); + return false; + } + + return true; } bool ConfigParser::parseClearMode() { @@ -1150,7 +1168,7 @@ bool ConfigParser::initQmake() { auto qt = *qtList.begin(); - if (qt.right(3).compare("lib", Qt::CaseInsensitive)) { + if (qt.rightRef(3).compare(QString("lib"), Qt::CaseInsensitive)) { return initQmakePrivate(QFileInfo(qt + "/../bin/qmake").absoluteFilePath()); } @@ -1566,9 +1584,7 @@ bool ConfigParser::smartMoveTargets() { _config.targetsEdit() = temp; - configureTargets(); - - return result; + return result && configureTargets(); } ConfigParser::ConfigParser(FileManager *filemanager, PluginsParser *pluginsParser, DependenciesScanner* scaner, Packing *pac): diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 54a9d20..69f3685 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -52,7 +52,6 @@ private: bool loadFromFile(const QString& file); bool initDistroStruct(); bool initPackages(); - bool initRunScripts(); bool parseDeployMode(); bool parseInfoMode(); bool parseInitMode(); @@ -60,7 +59,7 @@ private: * @brief configureTargets Sets targets data from options. * @return true if function finishe successfull */ - void configureTargets(); + bool configureTargets(); bool parseClearMode(); diff --git a/Deploy/deployconfig.cpp b/Deploy/deployconfig.cpp index 09836b2..e9439d1 100644 --- a/Deploy/deployconfig.cpp +++ b/Deploy/deployconfig.cpp @@ -104,15 +104,6 @@ void DeployConfig::setDefaultPackage(const QString &value) { defaultPackage = value; } -void DeployConfig::registerRunScript(const QString &targetName, - const QString &scriptPath) { - _runScripts.insert(targetName, scriptPath); -} - -QString DeployConfig::getRunScript(const QString &targetName) const { - return _runScripts.value(targetName, ""); -} - QtMajorVersion DeployConfig::isNeededQt() const { auto Qt = QtMajorVersion::NoQt; diff --git a/Deploy/deployconfig.h b/Deploy/deployconfig.h index 2abdf08..f2935a5 100644 --- a/Deploy/deployconfig.h +++ b/Deploy/deployconfig.h @@ -122,9 +122,6 @@ public: QString getDefaultPackage() const; void setDefaultPackage(const QString &value); - void registerRunScript(const QString& targetName, const QString& scriptPath); - QString getRunScript(const QString& targetName) const; - /** * @brief isNeededQt This method return all needed qt major version for all targets. * @return qt major version @@ -155,12 +152,6 @@ private: */ QHash<QString, DistroModule> _packages; - /** - * @brief _runScripts - * target - pathToScript - */ - QHash<QString, QString> _runScripts; - /** * @brief targetDir - targe directory (this folder conteins all files of distrebution kit) */ diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 8d5a3dd..37ba1cd 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -295,7 +295,10 @@ void DeployCore::help() { { "Part 4 Control of packages options", { - {"-icon [target;val,val]", "Sets path to icon for a targets"} + {"-icon [target;val,val]", "Sets path to icon for a targets"}, + {"-disableRunScript [target;val,val]", "Disables a generation of run script for selected targets"}, + {"-disableShortCut [target;val,val]", "Disables a generation of shortcut for selected targets"} + } }, diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index b0c3aac..b2b9ab6 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -27,46 +27,15 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { QFileInfo targetInfo(target); QString content; - auto runScript = cnf->getRunScript(targetInfo.fileName()); - if (runScript.size()) { - QFile script(runScript); - if (!script.open(QIODevice::ReadOnly)) { - return false; - } - content = script.readAll(); - script.close(); + auto runScript = targetinfo.getRunScript(); - } else { - - bool fGui = DeployCore::isGui(_mudulesMap.value(target)); - auto systemLibsDir = distro.getLibOutDir() + DeployCore::systemLibsFolderName(); - - content = - "@echo off \n" - "SET BASE_DIR=%~dp0\n" - "SET PATH=%BASE_DIR%" + distro.getLibOutDir() + ";%PATH%;" + systemLibsDir + "\n" - "SET CQT_PKG_ROOT=%BASE_DIR%\n" - "SET CQT_RUN_FILE=%BASE_DIR%%0.bat\n" - - "%3\n"; - - // Run application as invoke of the console for consle applications - // And run gui applciation in the detached mode. - if (fGui) { - content += "start \"%0\" %4 \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; - } else { - content += "call \"%BASE_DIR%" + distro.getBinOutDir() + "%1\" %2 \n"; - } - - content = content.arg(targetInfo.baseName(), targetInfo.fileName(), "%*", - generateCustoScriptBlok(true)); // %0 %1 %2 %3 - - content = QDir::toNativeSeparators(content); - - if (fGui) { - content = content.arg("/B"); // %4 - } + QFile script(runScript); + if (!script.open(QIODevice::ReadOnly)) { + return false; } + content = script.readAll(); + script.close(); + replace(toReplace(target, distro), content); QString fname = DeployCore::_config->getTargetDir(target) + QDir::separator() + targetInfo.baseName()+ ".bat"; @@ -90,6 +59,7 @@ bool MetaFileManager::createRunScriptWindows(const QString &target) { bool MetaFileManager::createRunScriptLinux(const QString &target) { auto cnf = DeployCore::_config; + auto targetinfo = cnf->targets().value(target); if (!cnf->targets().contains(target)) { return false; @@ -99,48 +69,15 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { QFileInfo targetInfo(target); QString content; - auto runScript = cnf->getRunScript(targetInfo.fileName()); - if (runScript.size()) { - QFile script(runScript); - if (!script.open(QIODevice::ReadOnly)) { - return false; - } - content = script.readAll(); - script.close(); - - } else { - - auto systemLibsDir = distro.getLibOutDir() + DeployCore::systemLibsFolderName(); - - content = - "#!/bin/sh\n" - "BASE_DIR=$(dirname \"$(readlink -f \"$0\")\")\n" - "export " - "LD_LIBRARY_PATH=\"$BASE_DIR\"" + distro.getLibOutDir() + - ":\"$BASE_DIR\":$LD_LIBRARY_PATH:\"$BASE_DIR\"" + systemLibsDir + "\n" - "export QML_IMPORT_PATH=\"$BASE_DIR\"" + distro.getQmlOutDir() + ":$QML_IMPORT_PATH\n" - "export QML2_IMPORT_PATH=\"$BASE_DIR\"" + distro.getQmlOutDir() + ":$QML2_IMPORT_PATH\n" - "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 CQT_RUN_FILE=\"$BASE_DIR/%2\"\n" - - "export " - "QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"" + distro.getPluginsOutDir() + - "platforms:$QT_QPA_PLATFORM_PLUGIN_PATH\n" - "" - "%1\n" - "\"$BASE_DIR" + distro.getBinOutDir() + "%0\" \"$@\"\n"; - - content = content.arg(targetInfo.fileName()); // %0 - - content = content.arg(generateCustoScriptBlok(false), - targetInfo.baseName()+ ".sh"); // %1 %2 - - - + auto runScript = targetinfo.getRunScript(); + QFile script(runScript); + if (!script.open(QIODevice::ReadOnly)) { + return false; } + content = script.readAll(); + script.close(); + replace(toReplace(target, distro), content); + QString fname = DeployCore::_config->getTargetDir(target) + QDir::separator() + targetInfo.baseName()+ ".sh"; @@ -173,9 +110,9 @@ QString MetaFileManager::generateCustoScriptBlok(bool bat) const { auto cstSh = QuasarAppUtils::Params::getArg("customScript", ""); if (cstSh.size()) { res = "\n" + - commentMarker + "Begin Custom Script (generated by customScript flag)\n" + commentMarker + "Begin Custom Script (generated by customScript flag)\n" "%0\n" + - commentMarker + "End Custom Script\n" + commentMarker + "End Custom Script\n" "\n"; res = res.arg(cstSh); @@ -248,14 +185,63 @@ bool MetaFileManager::createQConf(const QString &target) { QFileDevice::ReadOwner); } +QHash<QString, QString> MetaFileManager::toReplace(const QString& target, + const DistroModule& distro) const { + QFileInfo targetInfo(target); + + QHash<QString, QString> result = { + {"CQT_BIN_PATH", distro.getBinOutDir()}, + {"CQT_LIB_PATH", distro.getLibOutDir()}, + {"CQT_QML_PATH", distro.getQmlOutDir()}, + {"CQT_PLUGIN_PATH", distro.getPluginsOutDir()}, + {"CQT_SYSTEM_LIB_PATH", distro.getLibOutDir() + DeployCore::systemLibsFolderName()}, + {"CQT_BASE_NAME", targetInfo.baseName()} + }; + + bool fGui = DeployCore::isGui(_mudulesMap.value(target)); + + + if (targetInfo.completeSuffix().compare(".exe", Qt::CaseInsensitive) == 0) { + result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(true)); + + // Run application as invoke of the console for consle applications + // And run gui applciation in the detached mode. + QString runCmd; + if (fGui) { + runCmd = "start \"" + targetInfo.baseName() + "\" /B " + + "\"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; + } else { + runCmd = "call \"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; + } + + result.insert("CQT_RUN_COMMAND", runCmd); + + } else { + result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(false)); + + QString runCmd = "\"$BASE_DIR" + distro.getBinOutDir() + targetInfo.fileName() + "\" \"$@\" "; + + result.insert("CQT_RUN_COMMAND", runCmd); + } + + return result; +} + +void MetaFileManager::replace(const QHash<QString, QString> &map, QString &content) { + for (auto it = map.begin(); it != map.end(); ++it) { + content = content.replace(it.key(), it.value()); + } + +} + void MetaFileManager::createRunMetaFiles(const QHash<QString, DeployCore::QtModule>& modulesMap) { _mudulesMap = modulesMap; for (auto i = DeployCore::_config->targets().cbegin(); i != DeployCore::_config->targets().cend(); ++i) { - if (!createRunScript(i.key())) { + if (i.value().fEnableRunScript() && !createRunScript(i.key())) { QuasarAppUtils::Params::log("Failed to create a run script: " + i.key(), - QuasarAppUtils::Error); + QuasarAppUtils::Error); } if (!createQConf(i.key())) { diff --git a/Deploy/metafilemanager.h b/Deploy/metafilemanager.h index 8bb88d1..533d540 100644 --- a/Deploy/metafilemanager.h +++ b/Deploy/metafilemanager.h @@ -12,6 +12,8 @@ #include <deploycore.h> class FileManager; +class DistroModule; +class TargetInfo; class MetaFileManager { @@ -32,6 +34,11 @@ private: bool createQConf(const QString &target); + QHash<QString, QString> toReplace(const QString &target, + const DistroModule &distro) const; + + void replace(const QHash<QString, QString>& map, QString& content); + FileManager* _fileManager = nullptr; QHash<QString, DeployCore::QtModule> _mudulesMap; }; diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index 562d6f3..0209413 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -6,21 +6,28 @@ //# #include "targetinfo.h" +#include "deploycore.h" +#include "deployconfig.h" TargetInfo::TargetInfo() { } -QString TargetInfo::getPackage() const { - return package; +TargetInfo::~TargetInfo() { + if (_fEnableRunScript) + delete _fEnableRunScript; +} + +const QString & TargetInfo::getPackage() const { + return _package; } void TargetInfo::setPackage(const QString &value) { - package = value; + _package = value; } QString TargetInfo::getIcon() const { - if (icon.isEmpty()) { + if (_icon.isEmpty()) { QFileInfo info(getName()); if (info.suffix() == "exe") { return ":/shared/Distributions/Templates/Icon.ico"; @@ -30,11 +37,74 @@ QString TargetInfo::getIcon() const { } - return icon; + return _icon; } void TargetInfo::setIcon(const QString &value) { - icon = value; + _icon = value; +} + +bool TargetInfo::getShortCut() const { + return _fEnableShortCut; +} + +void TargetInfo::setShortCut(bool shortcut) { + _fEnableShortCut = shortcut; +} + +void TargetInfo::disableShortCut() { + setShortCut(false); +} + +QString TargetInfo::getRunScript() const { + if (_runScript.isEmpty()) { + QFileInfo info(getName()); + if (info.suffix() == "exe") { + return ":/Scripts/ScriptsTemplates/windows.bat"; + } + + return ":/Scripts/ScriptsTemplates/linux.sh"; + } + + return _runScript; +} + +void TargetInfo::setRunScript(const QString &newRunScript) { + _runScript = newRunScript; +} + +QString TargetInfo::getRunScriptFile() const { + + if (_fEnableRunScript) { + QFileInfo runscriptInfo(_runScript); + QFileInfo info(getName()); + + return info.baseName() + "." + runscriptInfo.completeSuffix(); + } + + return getName(); +} + +bool TargetInfo::fEnableRunScript() const { + + if (!_fEnableRunScript) { + QFileInfo info(fullPath()); + QString compleSufix = info.completeSuffix(); + return compleSufix.compare(".exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); + } + + return _fEnableRunScript; +} + +void TargetInfo::setFEnableRunScript(bool newFEnableRunScript) { + if (!_fEnableRunScript) + _fEnableRunScript = new bool; + + *_fEnableRunScript = newFEnableRunScript; +} + +void TargetInfo::disableRunScript() { + setFEnableRunScript(false); } diff --git a/Deploy/targetinfo.h b/Deploy/targetinfo.h index 68e30d1..9862b41 100644 --- a/Deploy/targetinfo.h +++ b/Deploy/targetinfo.h @@ -11,20 +11,102 @@ #include "distrostruct.h" #include "libinfo.h" +/** + * @brief The TargetInfo class This clas scontains information about target object. (executable or another files marked in a bin option) + */ class DEPLOYSHARED_EXPORT TargetInfo: public LibInfo { public: TargetInfo(); + ~TargetInfo(); - QString getPackage() const; + /** + * @brief getPackage This method return name of the package in that contains this target. + * @return name of the package in that contains this target. + */ + const QString & getPackage() const; + + /** + * @brief setPackage This method sets new value for pacakge name in that contains this target. + * @param value new This is new value of the pacakge. + */ void setPackage(const QString &value); + /** + * @brief getIcon This method return path to default icon of the target. + * @return icon path. + * @note if the icon not set then return default icon. + */ QString getIcon() const; + + /** + * @brief setIcon This method sets new iconf for target. + * @param value + */ void setIcon(const QString &value); + /** + * @brief getShortCut This method return true if the target need to create shortcut. + * @return true if shortcut needed for this target. + */ + bool getShortCut() const; + + /** + * @brief setShortCut This method sets new status of the creating shortcut. + * @param shortcut This is new value of the shortcut + */ + void setShortCut(bool shortcut); + + /** + * @brief disableShortCut This method disable shortcut for this target. + */ + void disableShortCut(); + + /** + * @brief getRunScript This method return path to run script. + * @return path to run script + * @note By Default return path to default run scrip file from cqtdeployer resources. + */ + QString getRunScript() const; + + /** + * @brief setRunScript sets New path of the run script. + * @param newRunScript This is new path of the run sscript. + */ + void setRunScript(const QString &newRunScript); + + /** + * @brief getRunScriptFile This method return name fo the run script file or executable file if the run script are not needed + * @return runscript name + */ + QString getRunScriptFile() const; + + + /** + * @brief fEnableRunScript This return true if the run script will be generateed for this target else false. + * @return true if the run script will be generateed for this target else false. + */ + bool fEnableRunScript() const; + + /** + * @brief setFEnableRunScript This method enable or disable generation runScript. + * @param newFEnableRunScript New value. + */ + void setFEnableRunScript(bool newFEnableRunScript); + + /** + * @brief disableRunScript This method disable run script for this target. + */ + void disableRunScript(); + private: - QString package = ""; - QString icon = ""; -}; + QString _package = ""; + QString _icon = ""; + bool _fEnableShortCut = true; + bool *_fEnableRunScript = nullptr; + + QString _runScript = ""; + + }; #endif // TARGETINFO_H diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index a67a6bb..a9eeaee 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -181,6 +181,9 @@ private slots: void testMd5(); + void testDisableShortcuts(); + void testDisableRunScripts(); + void customTest(); }; @@ -1464,6 +1467,15 @@ void deploytest::testMd5() { "qifFromSystem"}, &comapareTreeqif); } +void deploytest::testDisableShortcuts() { + QVERIFY(false); +} + +void deploytest::testDisableRunScripts() { + QVERIFY(false); + +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); diff --git a/md/en/Options.md b/md/en/Options.md index 6f4bdb4..3733e0f 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -126,7 +126,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Sets path to icon for a targets | - +| -disableRunScript [target;val,val] | Disables a generation of run script for selected targets| +| -disableShortCut [target;val,val] | Disables a generation of shortcut for selected targets | ### Plugins Controll Options diff --git a/md/ru/Options.md b/md/ru/Options.md index 263f90e..41ed28c 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -124,6 +124,8 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Установит путь к иконке или логотипу для целе | +| -disableRunScript [target; val, val]| Отключает создание сценария выполнения для выбранных целей | +| -disableShortCut [target; val, val] | Отключает создание ярлыков для выбранных целей | ### Параметры управления плагинами: From d7a6d0c13812090f055ff5d0b2d37cce1999fc65 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 10 Jun 2021 11:34:25 +0300 Subject: [PATCH 045/222] ref #519 added tests and documentations --- Deploy/ScriptsTemplates/linux.sh | 36 ++++++++++---------- Deploy/configparser.cpp | 10 ++++-- Deploy/deployconfig.cpp | 13 +++++++ Deploy/deployconfig.h | 1 + Deploy/deploycore.cpp | 4 ++- Deploy/metafilemanager.cpp | 6 ++++ Deploy/targetinfo.cpp | 20 +++-------- Deploy/targetinfo.h | 3 +- UnitTests/testRes/TestQMLWidgets.sh | 29 +++++++++++++--- UnitTests/tst_deploytest.cpp | 53 ++++++++++++++++++++++++++--- md/en/CustomScripts.md | 26 ++++++++++++++ md/en/Home.md | 3 +- md/en/Options.md | 7 ++-- md/ru/CustomScripts.md | 26 ++++++++++++++ md/ru/Home.md | 3 +- md/ru/Options.md | 3 +- 16 files changed, 189 insertions(+), 54 deletions(-) create mode 100644 md/en/CustomScripts.md create mode 100644 md/ru/CustomScripts.md diff --git a/Deploy/ScriptsTemplates/linux.sh b/Deploy/ScriptsTemplates/linux.sh index c9e1aae..fbe8ba8 100644 --- a/Deploy/ScriptsTemplates/linux.sh +++ b/Deploy/ScriptsTemplates/linux.sh @@ -5,29 +5,29 @@ # # #################################################################### # -# CQT_LIB_PATH - are releative path to libraryes of a deployed distribution. -# CQT_QML_PATH - are releative path to qml libraryes of a deployed distribution. -# CQT_PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. -# CQT_BIN_PATH - are releative path to targets of a deployed distribution. +# LIB_PATH - are releative path to libraryes of a deployed distribution. +# QML_PATH - are releative path to qml libraryes of a deployed distribution. +# PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. +# BIN_PATH - are releative path to targets of a deployed distribution. -# CQT_SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. -# CQT_BASE_NAME - are base name of the executable that will be launched after run this script. -# CQT_CUSTOM_SCRIPT_BLOCK - This is code from the customScript option -# CQT_RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. +# SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. +# BASE_NAME - are base name of the executable that will be launched after run this script. +# CUSTOM_SCRIPT_BLOCK - This is code from the customScript option +# RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. # # #################################################################### -BASE_DIR=$(dirname \"$(readlink -f \"$0\")\") -export LD_LIBRARY_PATH=\"$BASE_DIR\"CQT_LIB_PATH:\"$BASE_DIR\":$LD_LIBRARY_PATH -export QML_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML_IMPORT_PATH -export QML2_IMPORT_PATH=\"$BASE_DIR\"CQT_QML_PATH:$QML2_IMPORT_PATH -export QT_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH:$QT_PLUGIN_PATH -export QTWEBENGINEPROCESS_PATH=\"$BASE_DIR\"CQT_BIN_PATH/QtWebEngineProcess -export QTDIR=\"$BASE_DIR\" -export CQT_PKG_ROOT=\"$BASE_DIR\" -export CQT_RUN_FILE=\"$BASE_DIR/CQT_BASE_NAME.sh\" +BASE_DIR=$(dirname "$(readlink -f "$0")") +export LD_LIBRARY_PATH="$BASE_DIR"CQT_LIB_PATH:"$BASE_DIR":$LD_LIBRARY_PATH +export QML_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML_IMPORT_PATH +export QML2_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML2_IMPORT_PATH +export QT_PLUGIN_PATH="$BASE_DIR"CQT_PLUGIN_PATH:$QT_PLUGIN_PATH +export QTWEBENGINEPROCESS_PATH="$BASE_DIR"CQT_BIN_PATH/QtWebEngineProcess +export QTDIR="$BASE_DIR" +export CQT_PKG_ROOT="$BASE_DIR" +export CQT_RUN_FILE="$BASE_DIR/CQT_BASE_NAME.sh" -export QT_QPA_PLATFORM_PLUGIN_PATH=\"$BASE_DIR\"CQT_PLUGIN_PATH/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH +export QT_QPA_PLATFORM_PLUGIN_PATH="$BASE_DIR"CQT_PLUGIN_PATH/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH CQT_CUSTOM_SCRIPT_BLOCK diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 135bb89..2058f84 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -121,6 +121,12 @@ bool enableOptionFotTargetPrivate(DeployConfig& conf, const auto targetsMap = conf.getTargetsListByFilter(pair.value(0)); + if (!targetsMap.size()) { + QuasarAppUtils::Params::log(QString("Not found any targets for the %0 selector"). + arg(pair.value(0)), + QuasarAppUtils::Warning); + } + for (const auto &target: targetsMap) { QuasarAppUtils::Params::log(QString("Set new property for %0 taget."). arg(pair.value(0)), @@ -761,10 +767,10 @@ bool ConfigParser::configureTargets() { const auto runScripts = QuasarAppUtils::Params::getArg("runScript"). split(DeployCore::getSeparator(0), splitbehavior); - const auto disableShortcuts = QuasarAppUtils::Params::getArg("disableRunScript"). + const auto disableRunScripts = QuasarAppUtils::Params::getArg("disableRunScript"). split(DeployCore::getSeparator(0), splitbehavior); - const auto disableRunScripts = QuasarAppUtils::Params::getArg("disableShortCut"). + const auto disableShortcuts = QuasarAppUtils::Params::getArg("disableShortCut"). split(DeployCore::getSeparator(0), splitbehavior); diff --git a/Deploy/deployconfig.cpp b/Deploy/deployconfig.cpp index e9439d1..7922705 100644 --- a/Deploy/deployconfig.cpp +++ b/Deploy/deployconfig.cpp @@ -25,6 +25,19 @@ DeployConfig::getTargetsListByFilter(const QString &filter) { return result; } +QHash<QString, const TargetInfo *> +DeployConfig::getTargetsListByFilter(const QString &filter) const { + QHash<QString, const TargetInfo*> result; + + for( auto it = _targets.cbegin(); it != _targets.cend(); ++it) { + if (it.key().contains(filter, Qt::CaseInsensitive)) { + result.insert(it.key(), &(*it)); + } + } + + return result; +} + QString DeployConfig::getTargetDir(const QString &target) const { if (_targets.contains(target)) return targetDir + "/" + _targets.value(target).getPackage(); diff --git a/Deploy/deployconfig.h b/Deploy/deployconfig.h index f2935a5..9fb8468 100644 --- a/Deploy/deployconfig.h +++ b/Deploy/deployconfig.h @@ -63,6 +63,7 @@ public: */ void reset(); QHash<QString, TargetInfo *> getTargetsListByFilter(const QString& filter); + QHash<QString, const TargetInfo *> getTargetsListByFilter(const QString& filter) const; /** * @brief targetPath diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 37ba1cd..c4c948b 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -392,7 +392,9 @@ QStringList DeployCore::helpKeys() { "allowEmptyPackages", "runScript", "getDefaultTemplate", - "tr" + "tr", + "disableRunScript", + "disableShortCut" }; } diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index b2b9ab6..54a088a 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -100,6 +100,12 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { } QString MetaFileManager::generateCustoScriptBlok(bool bat) const { + + QuasarAppUtils::Params::log("The customScript option are depricated!." + " This option will be removed into next release cqtdeployer." + " Please use the runScript option", + QuasarAppUtils::Warning); + QString res = ""; QString commentMarker = "# "; diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index 0209413..e213fe4 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -13,11 +13,6 @@ TargetInfo::TargetInfo() { } -TargetInfo::~TargetInfo() { - if (_fEnableRunScript) - delete _fEnableRunScript; -} - const QString & TargetInfo::getPackage() const { return _package; } @@ -86,21 +81,16 @@ QString TargetInfo::getRunScriptFile() const { } bool TargetInfo::fEnableRunScript() const { + QFileInfo info(fullPath()); + QString compleSufix = info.completeSuffix(); - if (!_fEnableRunScript) { - QFileInfo info(fullPath()); - QString compleSufix = info.completeSuffix(); - return compleSufix.compare(".exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); - } + bool defaultRule = compleSufix.compare(".exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); - return _fEnableRunScript; + return _fEnableRunScript && defaultRule; } void TargetInfo::setFEnableRunScript(bool newFEnableRunScript) { - if (!_fEnableRunScript) - _fEnableRunScript = new bool; - - *_fEnableRunScript = newFEnableRunScript; + _fEnableRunScript = newFEnableRunScript; } void TargetInfo::disableRunScript() { diff --git a/Deploy/targetinfo.h b/Deploy/targetinfo.h index 9862b41..26fbdc2 100644 --- a/Deploy/targetinfo.h +++ b/Deploy/targetinfo.h @@ -18,7 +18,6 @@ class DEPLOYSHARED_EXPORT TargetInfo: public LibInfo { public: TargetInfo(); - ~TargetInfo(); /** * @brief getPackage This method return name of the package in that contains this target. @@ -103,7 +102,7 @@ private: QString _package = ""; QString _icon = ""; bool _fEnableShortCut = true; - bool *_fEnableRunScript = nullptr; + bool _fEnableRunScript = true; QString _runScript = ""; diff --git a/UnitTests/testRes/TestQMLWidgets.sh b/UnitTests/testRes/TestQMLWidgets.sh index 38e46b3..bebc468 100755 --- a/UnitTests/testRes/TestQMLWidgets.sh +++ b/UnitTests/testRes/TestQMLWidgets.sh @@ -1,13 +1,34 @@ #!/bin/sh + +# This is default bat run script of The CQtDeployer project. +# This file contains key word that will replaced after deploy project. +# +# #################################################################### +# +# LIB_PATH - are releative path to libraryes of a deployed distribution. +# QML_PATH - are releative path to qml libraryes of a deployed distribution. +# PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. +# BIN_PATH - are releative path to targets of a deployed distribution. + +# SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. +# BASE_NAME - are base name of the executable that will be launched after run this script. +# CUSTOM_SCRIPT_BLOCK - This is code from the customScript option +# RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. +# +# #################################################################### + BASE_DIR=$(dirname "$(readlink -f "$0")") -export LD_LIBRARY_PATH="$BASE_DIR"/lib/:"$BASE_DIR":$LD_LIBRARY_PATH:"$BASE_DIR"/lib/systemLibs +export LD_LIBRARY_PATH="$BASE_DIR"/lib/:"$BASE_DIR":$LD_LIBRARY_PATH export QML_IMPORT_PATH="$BASE_DIR"/q/and/q/:$QML_IMPORT_PATH 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 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" "$@" +export QT_QPA_PLATFORM_PLUGIN_PATH="$BASE_DIR"/plugins//platforms:$QT_QPA_PLATFORM_PLUGIN_PATH + + + +"$BASE_DIR/bin/TestQMLWidgets" "$@" diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index a9eeaee..2a6bc5c 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -48,7 +48,8 @@ private: QSet<QString> *tree = nullptr, bool noWarnings = false, bool onlySize = false, - exitCodes exitCode = exitCodes::Good); + exitCodes exitCode = exitCodes::Good, + const std::function<void (const DeployConfig *)> &cb = {}); void checkResults(const QSet<QString> &tree, bool noWarnings, @@ -1468,12 +1469,52 @@ void deploytest::testMd5() { } void deploytest::testDisableShortcuts() { - QVERIFY(false); + + TestUtils utils; + +#ifdef Q_OS_UNIX + QString bin = TestBinDir + "TestOnlyC"; +#else + QString bin = TestBinDir + "TestOnlyC.exe"; +#endif + + auto cb = [](const DeployConfig * config){ + const auto list = config->getTargetsListByFilter("TestOnlyC"); + // Check shrtcut option. all targets should be return false. + for (auto target: list) { + QVERIFY(!target->getShortCut()); + } + }; + + // Run deploy installer + runTestParams({"-bin", bin, "clear", + "-disableShortCut", "TestOnlyC", + "qif", "qifFromSystem"}, + nullptr, + false, + false, + exitCodes::Good, + cb); + + + } void deploytest::testDisableRunScripts() { - QVERIFY(false); + TestUtils utils; +#ifdef Q_OS_UNIX + QString bin = TestBinDir + "TestOnlyC"; +#else + QString bin = TestBinDir + "TestOnlyC.exe"; +#endif + + auto comapareTreeqif = TestModule.onlyC(); + comapareTreeqif -= utils.createTree({DISTRO_DIR + "/TestOnlyC.sh", + DISTRO_DIR + "/TestOnlyC.bat"}); + // Run deploy installer + runTestParams({"-bin", bin, "clear", + "-disableRunScript", "TestOnlyC"}, &comapareTreeqif); } void deploytest::customTest() { @@ -1733,7 +1774,8 @@ void deploytest::testZip() { void deploytest::runTestParams(QStringList list, QSet<QString>* tree, bool noWarnings, bool onlySize, - exitCodes exitCode) { + exitCodes exitCode, + const std::function<void (const DeployConfig *)> &cb) { QuasarAppUtils::Params::parseParams(list); @@ -1749,6 +1791,9 @@ void deploytest::runTestParams(QStringList list, if (tree) { checkResults(*tree, noWarnings, onlySize); } + + if (cb) + cb(DeployCore::_config); } void deploytest::checkResults(const QSet<QString> &tree, diff --git a/md/en/CustomScripts.md b/md/en/CustomScripts.md new file mode 100644 index 0000000..a1589e9 --- /dev/null +++ b/md/en/CustomScripts.md @@ -0,0 +1,26 @@ +# Custom Scripts + +After version 1.5.1 cqtdeployer support self variables in the custom scripts. +For using custom scripts use the **runScript option** + +### Exmaples : + +```bash +cqtdeployer -bin MyExecutable.exe -runScript MyExecutable,path/to/my/custom/script.bat +``` + +```bash +cqtdeployer -bin MyExecutable -runScript MyExecutable,path/to/my/custom/script.sh +``` + +## Suported variables list: + +* CQT_LIB_PATH - are releative path to libraryes of a deployed distribution. +* CQT_QML_PATH - are releative path to qml libraryes of a deployed distribution. +* CQT_PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. +* CQT_BIN_PATH - are releative path to targets of a deployed distribution. + +* CQT_SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. +* CQT_BASE_NAME - are base name of the executable that will be launched after run this script. +* CQT_CUSTOM_SCRIPT_BLOCK - This is code from the customScript option +* CQT_RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. diff --git a/md/en/Home.md b/md/en/Home.md index 16828c2..3953aa3 100644 --- a/md/en/Home.md +++ b/md/en/Home.md @@ -19,7 +19,8 @@ * [Retrieving packaging templates](ExtractDefaultsTemplates.md) * [Default Environment Variables](EnvironmentVariables.md) * [Disable standard shortcuts ](DisableShortcats.md) +* [Custom scripts](CustomScripts.md) ## Support the project -If you like what we do and it benefits you, you can support the project on the official page [QuasarApp in Patreon](https://www.patreon.com/QuasarApp) \ No newline at end of file +If you like what we do and it benefits you, you can support the project on the official page [QuasarApp in Patreon](https://www.patreon.com/QuasarApp) diff --git a/md/en/Options.md b/md/en/Options.md index 3733e0f..f8ce1b0 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -62,9 +62,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | | Example: cqtdeployer deb" }, | | | you can specify the path to your own DEBIAN template. | | | Examples: cqtdeployer -deb path/to/myCustom/DEBIAN. More details can be found [here](DEB.md) | -| deploySystem | Deploys all libraries not recomendet because there may be conflicts with system libraries | -| 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. | +| deploySystem | Deploys all libraries not recomendet because there may be conflicts with system libraries | +| 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) | | noHashSum | Disable computation of a packages hash sum | @@ -96,7 +95,6 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -extraPlugin [list,params]| Sets an additional path to extraPlugin of an app | | -recursiveDepth [params] | Sets the Depth of recursive search of libs and ignoreEnv (default 0) | | -targetDir [params] | Sets target directory(by default it is the path to the first deployable file)| -| -runScript [list,parems] | forces cqtdeployer swap default run script to new from the arguments of option. This option copy all content from input file and insert all code into runScript.sh or .bat. Example of use: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh"| | -verbose [0-3] | Shows debug log | ### Controll of packages options @@ -128,6 +126,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -icon [target;val,val] | Sets path to icon for a targets | | -disableRunScript [target;val,val] | Disables a generation of run script for selected targets| | -disableShortCut [target;val,val] | Disables a generation of shortcut for selected targets | +| -runScript [target;val,val] | forces cqtdeployer swap default run script to new from the arguments of option. This option copy all content from input file and insert all code into runScript.sh or .bat. Example of use: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh" For get more information about customScript see the documentation [page](CustomScripts.md)| ### Plugins Controll Options diff --git a/md/ru/CustomScripts.md b/md/ru/CustomScripts.md new file mode 100644 index 0000000..cbb0a85 --- /dev/null +++ b/md/ru/CustomScripts.md @@ -0,0 +1,26 @@ +# Пользовательские скрипты + +После версии 1.5.1 cqtdeployer поддерживает собственные переменные в пользовательских скриптах. +Для использования пользовательских сценариев используйте параметр **runScript**. + +### Примеры: + +```bash +cqtdeployer -bin MyExecutable.exe -runScript MyExecutable,path/to/my/custom/script.bat +``` + +```bash +cqtdeployer -bin MyExecutable -runScript MyExecutable,path/to/my/custom/script.sh +``` + +## Список поддерживаемых переменных: + +* CQT_LIB_PATH - это относительный путь к библиотекам развернутого дистрибутива. +* CQT_QML_PATH - это относительный путь к библиотекам qml развернутого дистрибутива. +* CQT_PLUGIN_PATH - это относительный путь к плагинам qt развернутого дистрибутива. +* CQT_BIN_PATH - это относительный путь к целям развернутого дистрибутива. + +* CQT_SYSTEM_LIB_PATH - это относительный путь к системным библиотекам развернутого дистрибутива. +* CQT_BASE_NAME - это базовое имя исполняемого файла, который будет запущен после запуска этого скрипта. +* CQT_CUSTOM_SCRIPT_BLOCK - это код из опции customScript +* CQT_RUN_COMMAND - это команда для запуска приложения. Требуется переменная BASE_DIR. diff --git a/md/ru/Home.md b/md/ru/Home.md index f33670e..e636b75 100644 --- a/md/ru/Home.md +++ b/md/ru/Home.md @@ -19,7 +19,8 @@ * [Получение шаблонов упаковки](ExtractDefaultsTemplates.md) * [Стандартные переменные окружения](EnvironmentVariables.md) * [Отключение стандартных ярлыков](DisableShortcats.md) +* [Пользовательские скрипты](CustomScripts.md) ## Поддержите проект -Если вам нравится то, что мы делаем, и это приносит вам пользу, вы можете поддержать проект на официальной странице [QuasarApp в Patreon](https://www.patreon.com/QuasarApp) \ No newline at end of file +Если вам нравится то, что мы делаем, и это приносит вам пользу, вы можете поддержать проект на официальной странице [QuasarApp в Patreon](https://www.patreon.com/QuasarApp) diff --git a/md/ru/Options.md b/md/ru/Options.md index 41ed28c..a3f9fa5 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -66,7 +66,6 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | | Примеры: cqtdeployer -deb path/to/myCustom/DEBIAN. Подробнее можно посмотреть [здесь](DEB.md) | | deploySystem | Копирует все библиотеки кроме libc | | | (не рекомендуется, так как занимает много памяти, возможны конфликты библиотек) | -| deploySystem-with-libc | Копирует все зависимости в том числе и libc, не рекомендуется использовать с gui приложения, в место этого используйте опцию deploySystem | | noQt | Игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt. | | allowEmptyPackages | Разрешите настраивать пустые пакеты. | | getDefaultTemplate | Извлекает deb или qif шаблоны по умолчанию. Для получения дополнительной информации см. [Страницу](ExtractDefaultsTemplates.md) извлечения шаблонов по умолчанию. | @@ -93,7 +92,6 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -extraPlugin [list,params] | Устанавливает дополнительный путь для extraPlugin приложения| | -recursiveDepth [params] | Устанавливает глубину поиска библиотек и глубину игнорирования окружения для ignoreEnv (по умолчанию 0) | | -targetDir [params] | Устанавливает целевой каталог (по умолчанию это путь к первому развертываемому файлу)| -| -runScript [list,parems] | заставляет cqtdeployer заменить сценарий запуска по умолчанию на новый из аргументов параметра. Эта опция копирует все содержимое из входного файла и вставляет весь код в runScript.sh или .bat. Пример использования: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh"| | -verbose [0-3] | Показывает дебаг лога | ### Параметры управлениями пакетами: @@ -126,6 +124,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -icon [target;val,val] | Установит путь к иконке или логотипу для целе | | -disableRunScript [target; val, val]| Отключает создание сценария выполнения для выбранных целей | | -disableShortCut [target; val, val] | Отключает создание ярлыков для выбранных целей | +| -runScript [target; val, val] | заставляет cqtdeployer заменить сценарий запуска по умолчанию на новый из аргументов параметра. Эта опция копирует все содержимое из входного файла и вставляет весь код в runScript.sh или .bat. Пример использования: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh". Для получения дополнительной информации смотрите статью [Кастомные скрипты](CustomScripts.md)| ### Параметры управления плагинами: From 35112180cac0decb37a1df3fdffc0024188fbded Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Thu, 10 Jun 2021 12:23:49 +0300 Subject: [PATCH 046/222] ref #560 Guide.md correction --- md/en/Guide.md | 24 ++++++++++++++++++++---- md/ru/Guide.md | 24 ++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/md/en/Guide.md b/md/en/Guide.md index 5310f2b..3e397d5 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -50,16 +50,19 @@ Done!!! ### Deploy your executable file. * For Linux systems: + ```bash cqtdeployer -bin myexecutable ``` * For Windows systems: + ```bash cqtdeployer -bin myexecutable.exe -qmake C:/Qt/5.15.0/min_gw/bin/qmake.exe ``` * For crossplatform build (Linux -> Windows) + ```bash cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qmake ``` @@ -67,16 +70,19 @@ cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/bin/qma ## Extra options If you use extra libraries, just add path for cqtdeployer to used libs. + ```bash cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs ``` If you want find libraries recursively from libDir path, just add recursive Depth option. + ```bash cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 ``` If you application use qml, just add qmlDir option + ```bash cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` @@ -97,21 +103,27 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD # Using a live animation example from [Qt Examples](https://doc.qt.io/qt-5/qtquick-animation-example.html) 1. Build the project as a release + 1. Run qmake with the -r option for release build + ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.152/quick/animation$ ~/Qt/5.15.2/gcc_64/binqmake -r . ``` 2. Call your make * For Linux: + ```bash - make -j${nproc} + make -j${nproc} ``` - * For Windows + + * For Windows + ```bash - Qt/Tools/QtCreator/bin/jom.exe + Qt/Tools/QtCreator/bin/jom.exe ``` + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp @@ -124,6 +136,7 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 3. Find our resulting executable file If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder In my case, the executable file is located in the root directory of the project. + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . @@ -177,10 +190,12 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 4. Call cqtdeployer to form the base distribution For Linux: + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` For Windows: + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` @@ -438,6 +453,7 @@ QMAKE_EXTRA_TARGETS += deploy ``` ### cmake + ```cmake find_program(Q_MAKE_EXE qmake) diff --git a/md/ru/Guide.md b/md/ru/Guide.md index c24c0f6..ce11e1d 100644 --- a/md/ru/Guide.md +++ b/md/ru/Guide.md @@ -51,16 +51,19 @@ sudo snap connect cqtdeployer:system-backup ### Разверните исполняемый файл. * Для систем Linux: + ```bash cqtdeployer -bin myexecutable ``` * Для систем Windows: + ```bash cqtdeployer -bin myexecutable.exe -qmake C: /Qt/5.15.0/min_gw/bin/qmake.exe ``` * Для кроссплатформенной сборки (Linux -> Windows) + ```bash cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/ bin / qmake ``` @@ -68,16 +71,19 @@ cqtdeployer -bin myexecutable.exe -qmake ~/crossbuildet-Qt/5.15.0/min_gw/ bin / ## Дополнительные параметры Если вы используете дополнительные библиотеки, просто добавьте путь для cqtdeployer к используемым библиотекам. + ```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs ``` Если вы хотите найти библиотеки рекурсивно из пути libDir, просто добавьте параметр рекурсивной глубины. + ```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 ``` Если ваше приложение использует qml, просто добавьте опцию qmlDir + ```bash cqtdeployer -bin myexecutable -libDir/PathToMyExtraLibs -recursiveDepth 5 -qmlDir /path/to/my/qml/sources ``` @@ -107,10 +113,13 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 2. Вызываем ваш make generator * Для Linux: + ```bash make -j${nproc} ``` + * Для Windows + ```bash Qt/Tools/QtCreator/bin/jom.exe ``` @@ -124,9 +133,11 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread ``` + 3. Находим наш получившийся исполняемый файл Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** В моем случае исполняемый файл лежит в корневом катологе проекта. + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree . @@ -180,10 +191,13 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml 4. Вызываем cqtdeployer для формирования Базового Дистрибутива Для Linux: + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` + Для Windows: + ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` @@ -459,10 +473,14 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml Info: [12449] Cleaning up... ``` -5. Готово Дистрибутив был сохранен в папку **DistributionKit** +5. Готово Дистрибутив был сохранен в папку + +**DistributionKit** + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run ``` +  После установки буду созданы все необходимые ярлыки. @@ -493,6 +511,7 @@ QMAKE_EXTRA_TARGETS += deploy ``` ### cmake + ```cmake find_program(Q_MAKE_EXE qmake) @@ -521,7 +540,8 @@ QMAKE_EXTRA_TARGETS += deploy ## Пример интеграции 1. Создаем тестовый проект - ``` qmake + + ```qmake QT += quick CONFIG += c++11 From ca888ee0049caa0faf7ebbdaa19834b1352a22be Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 11 Jun 2021 09:38:10 +0300 Subject: [PATCH 047/222] test commit --- md/en/Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/en/Guide.md b/md/en/Guide.md index 3e397d5..be4d505 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -115,7 +115,7 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD * For Linux: ```bash - make -j${nproc} + make -j${nproc} ``` * For Windows From 7e25c099c153b1b5819ce7e75fc59cee94d8b8fa Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 11 Jun 2021 09:42:07 +0300 Subject: [PATCH 048/222] remove spaces befor code blocks --- md/en/Guide.md | 580 ++++++++++++++++++++++++------------------------- 1 file changed, 290 insertions(+), 290 deletions(-) diff --git a/md/en/Guide.md b/md/en/Guide.md index be4d505..0aab265 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -106,318 +106,318 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 1. Run qmake with the -r option for release build - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.152/quick/animation$ ~/Qt/5.15.2/gcc_64/binqmake -r . - ``` +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.152/quick/animation$ ~/Qt/5.15.2/gcc_64/binqmake -r . +``` 2. Call your make * For Linux: - ```bash - make -j${nproc} - ``` +```bash +make -j${nproc} +``` * For Windows - ```bash - Qt/Tools/QtCreator/bin/jom.exe - ``` +```bash +Qt/Tools/QtCreator/bin/jom.exe +``` - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp - /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp - /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_animation.o qrc_animation.cpp - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp - g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread - ``` +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} +g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp +/home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp +/home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp +g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_animation.o qrc_animation.cpp +g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp +g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread +``` 3. Find our resulting executable file If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder In my case, the executable file is located in the root directory of the project. - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree - . - ├── animation # Here it is. - ├── animation.pro - ├── animation.qml - ├── animation.qmlproject - ├── animation.qrc - ├── basics - │ ├── animators.qml - │ ├── color-animation.qml - │ ├── images - │ │ ├── face-smile.png - │ │ ├── moon.png - │ │ ├── shadow.png - │ │ ├── star.png - │ │ └── sun.png - │ └── property-animation.qml - ├── behaviors - │ ├── behavior-example.qml - │ ├── FocusRect.qml - │ ├── SideRect.qml - │ ├── tvtennis.qml - │ └── wigglytext.qml - ├── doc - │ ├── images - │ │ └── qml-animations-example.png - │ └── src - │ └── animation.qdoc - ├── easing - │ └── easing.qml - ├── main.cpp - ├── main.o - ├── Makefile - ├── pathanimation - │ └── pathanimation.qml - ├── pathinterpolator - │ └── pathinterpolator.qml - ├── qrc_animation.cpp - ├── qrc_animation.o - ├── qrc_shared.cpp - ├── qrc_shared.o - └── states - ├── qt-logo.png - ├── states.qml - └── transitions.qml +```bash + andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree +. +├── animation # Here it is. +├── animation.pro +├── animation.qml +├── animation.qmlproject +├── animation.qrc +├── basics +│ ├── animators.qml +│ ├── color-animation.qml +│ ├── images +│ │ ├── face-smile.png +│ │ ├── moon.png +│ │ ├── shadow.png +│ │ ├── star.png +│ │ └── sun.png +│ └── property-animation.qml +├── behaviors +│ ├── behavior-example.qml +│ ├── FocusRect.qml +│ ├── SideRect.qml +│ ├── tvtennis.qml +│ └── wigglytext.qml +├── doc +│ ├── images +│ │ └── qml-animations-example.png +│ └── src +│ └── animation.qdoc +├── easing +│ └── easing.qml +├── main.cpp +├── main.o +├── Makefile +├── pathanimation +│ └── pathanimation.qml +├── pathinterpolator +│ └── pathinterpolator.qml +├── qrc_animation.cpp +├── qrc_animation.o +├── qrc_shared.cpp +├── qrc_shared.o +└── states + ├── qt-logo.png + ├── states.qml + └── transitions.qml - 10 directories, 33 files - ``` +10 directories, 33 files +``` 4. Call cqtdeployer to form the base distribution For Linux: - ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - ``` +```bash +cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake +``` For Windows: - ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe - ``` +```bash +cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe +``` - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - Info: Deploy ... - Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit - Info: target deploy started!! - Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir - Info: platform : libqvnc is disabled - Info: platform : libqvnc is disabled - Info: platform : libqwebgl is disabled - Info: platform : libqwebgl is disabled - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 - Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm - Info: try deploy msvc - Info: deploy done! - Info: copy ::/shared/Distributions/Templates/Icon.png - Error: not exits - Info: [0] Parsed arguments, ok. - Info: [2] Collecting information about available packages... - Info: [4] Found subdirectory "Application" - Info: [4] - it provides the package "Application" - "1.0" - Info: [4] Copying component data for "Application" - Info: [5] Compressing data directory "bin" - Info: [21] Compressing data directory "icons" - Info: [31] Compressing data directory "lib" - Info: [11111] Compressing data directory "plugins" - Info: [11740] Compressing data directory "qml" - Info: [11786] Compressing data directory "translations" - Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") - Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" - [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" - Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" - Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" - Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" - Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" - [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" - Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" - Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" - Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" - [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" - Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" - Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" - Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" - Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" - Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" - Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" - Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" - Info: [12360] done. - Info: [12360] Begin to copy configuration file and data. - Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" - Info: [12360] done. - Info: [12360] Read dom element: <Name>animation</Name>. - Info: [12360] Read dom element: <Version>1.0</Version>. - Info: [12360] Read dom element: <Title>animation</Title>. - Info: [12360] Read dom element: <Publisher>Company</Publisher>. - [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. - [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. - Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. - [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. - Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. - Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" - Info: [12360] done. - Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. - [12360] Read dom element: <ProductUrl></ProductUrl>. - Info: [12360] done. - Info: [12362] Creating the binary - Info: [12407] Creating resource archive for "Application" - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") - Info: [12449] Cleaning up... - ``` +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake +Info: Deploy ... +Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit +Info: target deploy started!! +Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir +Info: platform : libqvnc is disabled +Info: platform : libqvnc is disabled +Info: platform : libqwebgl is disabled +Info: platform : libqwebgl is disabled +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 +Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 +Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 +Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 +Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm +Info: try deploy msvc +Info: deploy done! +Info: copy ::/shared/Distributions/Templates/Icon.png +Error: not exits +Info: [0] Parsed arguments, ok. +Info: [2] Collecting information about available packages... +Info: [4] Found subdirectory "Application" +Info: [4] - it provides the package "Application" - "1.0" +Info: [4] Copying component data for "Application" +Info: [5] Compressing data directory "bin" +Info: [21] Compressing data directory "icons" +Info: [31] Compressing data directory "lib" +Info: [11111] Compressing data directory "plugins" +Info: [11740] Compressing data directory "qml" +Info: [11786] Compressing data directory "translations" +Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") +Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" +[12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" +Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" +Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" +[12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" +Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" +Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" +[12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" +Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" +Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" +[12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" +Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" +Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" +Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" +Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" +Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" +[12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" +Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" +Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" +Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" +Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" +Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" +Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" +Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" +Info: [12360] done. +Info: [12360] Begin to copy configuration file and data. +Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" +Info: [12360] done. +Info: [12360] Read dom element: <Name>animation</Name>. +Info: [12360] Read dom element: <Version>1.0</Version>. +Info: [12360] Read dom element: <Title>animation</Title>. +Info: [12360] Read dom element: <Publisher>Company</Publisher>. +[12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. +[12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. +Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. +[12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. +Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. +Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" +Info: [12360] done. +Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. +[12360] Read dom element: <ProductUrl></ProductUrl>. +Info: [12360] done. +Info: [12362] Creating the binary +Info: [12407] Creating resource archive for "Application" +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") +Info: [12449] Cleaning up... +``` 5. Done. The distribution has been saved to the **DistributionKit** folder ```bash From 1491fcae65ef78c4bcf00334fec1a57266a70d41 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 11 Jun 2021 09:52:38 +0300 Subject: [PATCH 049/222] enable sidebar --- doxygen.conf | 4 ++-- md/en/Guide.md | 25 +++++++++---------------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/doxygen.conf b/doxygen.conf index 5261c0c..d47b69d 100644 --- a/doxygen.conf +++ b/doxygen.conf @@ -1479,7 +1479,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. @@ -1496,7 +1496,7 @@ ENUM_VALUES_PER_LINE = 4 # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. -TREEVIEW_WIDTH = 250 +TREEVIEW_WIDTH = 300 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. diff --git a/md/en/Guide.md b/md/en/Guide.md index 0aab265..3235751 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -105,24 +105,15 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD 1. Build the project as a release 1. Run qmake with the -r option for release build - -```bash -andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.152/quick/animation$ ~/Qt/5.15.2/gcc_64/binqmake -r . -``` + >> andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.152/quick/animation$ ~/Qt/5.15.2/gcc_64/binqmake -r . 2. Call your make - * For Linux: - -```bash -make -j${nproc} -``` + >> make -j${nproc} * For Windows - -```bash -Qt/Tools/QtCreator/bin/jom.exe -``` + >> Qt/Tools/QtCreator/bin/jom.exe + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} @@ -133,7 +124,8 @@ g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread ``` -3. Find our resulting executable file + +2. Find our resulting executable file If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder In my case, the executable file is located in the root directory of the project. @@ -187,13 +179,14 @@ g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc 10 directories, 33 files ``` -4. Call cqtdeployer to form the base distribution +3. Call cqtdeployer to form the base distribution For Linux: ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` + For Windows: ```bash @@ -419,7 +412,7 @@ Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha Info: [12449] Cleaning up... ``` -5. Done. The distribution has been saved to the **DistributionKit** folder +4. Done. The distribution has been saved to the **DistributionKit** folder ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run ``` From 0ec9fffd9407f54a9f525540a728bbc07d486669 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 11 Jun 2021 10:01:28 +0300 Subject: [PATCH 050/222] fix simple bugs --- README.md | 5 ++++- md/en/Guide.md | 48 +++++++++++++++++++++++++++++++----------------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index b629df4..befdb5e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ -# CQtDeployer [](https://snapcraft.io/cqtdeployer) +# CQtDeployer + +[](https://snapcraft.io/cqtdeployer) [](https://snapcraft.io/cqtdeployer) + #  **************************** diff --git a/md/en/Guide.md b/md/en/Guide.md index 3235751..cd01cbb 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -102,18 +102,29 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD # Using a live animation example from [Qt Examples](https://doc.qt.io/qt-5/qtquick-animation-example.html) -1. Build the project as a release +## Build the project as a release - 1. Run qmake with the -r option for release build - >> andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.152/quick/animation$ ~/Qt/5.15.2/gcc_64/binqmake -r . +Run qmake with the -r option for release build - 2. Call your make - * For Linux: - >> make -j${nproc} - - * For Windows - >> Qt/Tools/QtCreator/bin/jom.exe - +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.152/quick/animation$ ~/Qt/5.15.2/gcc_64/binqmake -r . +``` + +Call your make command. + +For Linux: + +```bash +make -j${nproc} +``` + +For Windows + +```bash +Qt/Tools/QtCreator/bin/jom.exe +``` + +Build log: ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} @@ -125,9 +136,9 @@ g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB - g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread ``` -2. Find our resulting executable file - If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder - In my case, the executable file is located in the root directory of the project. +## Find our resulting executable file + +If you built the project using qtCreator, your executable file will be found one level higher in the **build-animations-Desktop_Qt_5_15_2_GCC_64bit-Release** folder. In my case, the executable file is located in the root directory of the project. ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree @@ -179,20 +190,22 @@ g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc 10 directories, 33 files ``` -3. Call cqtdeployer to form the base distribution +## Call cqtdeployer to form the base distribution - For Linux: +For Linux: ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake ``` - For Windows: +For Windows: ```bash cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe ``` +Deploy log: + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake Info: Deploy ... @@ -412,7 +425,8 @@ Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha Info: [12449] Cleaning up... ``` -4. Done. The distribution has been saved to the **DistributionKit** folder +Done. The distribution has been saved to the **DistributionKit** folder + ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run ``` From 2562fc49c9700bdd394d07c5bfcf4510ebf67f99 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 11 Jun 2021 11:17:31 +0300 Subject: [PATCH 051/222] ref #519 fix generate bat files --- Deploy/targetinfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index e213fe4..5259953 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -84,7 +84,7 @@ bool TargetInfo::fEnableRunScript() const { QFileInfo info(fullPath()); QString compleSufix = info.completeSuffix(); - bool defaultRule = compleSufix.compare(".exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); + bool defaultRule = compleSufix.compare("exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); return _fEnableRunScript && defaultRule; } From aa7ed3496d1328c7e61cea6b4a61a7b0995b0901 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Fri, 11 Jun 2021 11:45:43 +0300 Subject: [PATCH 052/222] ref #560 documentation corrections --- md/en/1_4.md | 4 +- md/en/1_5.md | 4 +- md/en/Build-and-Install.md | 4 + md/en/Changelog.md | 4 +- md/en/CompareFeatures.md | 4 +- md/en/DEB.md | 3 +- md/en/DeployConfigFile.md | 9 +- md/en/Description.md | 3 +- md/en/DisableShortcats.md | 5 +- md/en/EnvironmentVariables.md | 11 +- md/en/ExtraFiles.md | 9 +- md/en/ExtractDefaultsTemplates.md | 1 + md/en/Guide.md | 5 +- md/en/Options.md | 8 +- md/en/Packing.md | 10 +- md/en/QIF.md | 8 +- md/en/QuickGuide.md | 4 +- md/en/ReleaseReviews.md | 1 + md/en/ZIP.md | 12 +- md/ru/1_4.md | 4 +- md/ru/1_5.md | 4 +- md/ru/Build-and-Install.md | 7 +- md/ru/Changelog.md | 4 +- md/ru/CompareFeatures.md | 3 +- md/ru/DEB.md | 48 +- md/ru/DeployConfigFile.md | 8 +- md/ru/Description.md | 2 +- md/ru/DisableShortcats.md | 5 +- md/ru/EnvironmentVariables.md | 5 +- md/ru/ExtraFiles.md | 17 +- md/ru/ExtractDefaultsTemplates.md | 10 +- md/ru/Guide.md | 766 ++++++++++++++---------------- md/ru/Options.md | 4 +- md/ru/Packing.md | 10 +- md/ru/QIF.md | 21 +- md/ru/QuickGuide.md | 4 +- md/ru/ReleaseReviews.md | 1 + md/ru/ZIP.md | 21 +- 38 files changed, 567 insertions(+), 486 deletions(-) diff --git a/md/en/1_4.md b/md/en/1_4.md index 7c8b67b..866a1ad 100755 --- a/md/en/1_4.md +++ b/md/en/1_4.md @@ -1,4 +1,6 @@ -# Release of C++/Qt and QML application deployment utility CQtDeployer v1.4.0 (Binary Box) +# Release of CQtDeployer v1.4.0 (Binary Box) + +Release of C++/Qt and QML application deployment utility CQtDeployer v1.4.0 (Binary Box) Almost half a year later, a major update of the CQtDeployer deployment utility was released. This update has many new futures, but the main emphasis is on creating packages. diff --git a/md/en/1_5.md b/md/en/1_5.md index 14e63ca..3a0e7b4 100755 --- a/md/en/1_5.md +++ b/md/en/1_5.md @@ -1,4 +1,6 @@ -# Release of the C++/Qt and QML application deployment utility CQtDeployer v1.5.0 +# Release of CQtDeployer v1.5.0 + +Release of the C++/Qt and QML application deployment utility CQtDeployer v1.5.0 This is the first major update in 2021. CQtDeployer 1.5 contains many useful improvements. The biggest improvements are the addition of the ability to package deb packages, and the ability to use your own packaging template for the qt install framework. diff --git a/md/en/Build-and-Install.md b/md/en/Build-and-Install.md index 00fc179..9995601 100644 --- a/md/en/Build-and-Install.md +++ b/md/en/Build-and-Install.md @@ -1,6 +1,7 @@ # Build from sources ## Build for Linux + - install qt and qt QtInstallFrameWork from [qt installer](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f9bb77-7bb77-4bb77-4) - git clone https://github.com/QuasarApp/CQtDeployer.git - cd CQtDeployer @@ -14,6 +15,7 @@ - ./Distro/CQtDeployerInstaller.run ## Build for Windows (CMD) + - install qt and qt QtInstallFrameWork from [qt installer](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f9bb77-7bb77-4bb77-4) - git clone https://github.com/QuasarApp/CQtDeployer.git - cd CQtDeployer @@ -30,9 +32,11 @@ --- # Installation without building + You can download the latest version of the application [here](https://github.com/QuasarApp/CQtDeployer/releases). ### Snap + [](https://snapcraft.io/cqtdeployer) #### Features of the snap version diff --git a/md/en/Changelog.md b/md/en/Changelog.md index 5a4f5ec..318ecbe 100755 --- a/md/en/Changelog.md +++ b/md/en/Changelog.md @@ -1,4 +1,6 @@ -# Chnage log for all versions of the CQtDeployer. +# Change log + +Change log for all versions of the CQtDeployer. ## CQtDeployer 1.5.0 diff --git a/md/en/CompareFeatures.md b/md/en/CompareFeatures.md index b05773d..2099211 100644 --- a/md/en/CompareFeatures.md +++ b/md/en/CompareFeatures.md @@ -1,4 +1,6 @@ -# Compare Features of Distributions of the CQtDeployer +# Compare Features + +Compare Features of Distributions of the CQtDeployer ### snap vs installer vs windows installer diff --git a/md/en/DEB.md b/md/en/DEB.md index 92d0ee0..7930077 100644 --- a/md/en/DEB.md +++ b/md/en/DEB.md @@ -1,5 +1,6 @@ -## General rules for using DEB +# DEB using +General rules for using DEB #### Available from version CQtDeployer 1.5 diff --git a/md/en/DeployConfigFile.md b/md/en/DeployConfigFile.md index a3d9612..106e235 100644 --- a/md/en/DeployConfigFile.md +++ b/md/en/DeployConfigFile.md @@ -1,7 +1,9 @@ -## Deployment file +# Deployment file + **Deployment file** - it's a json file containing the parameters for cqtdeployer. This file supports all parameters except confFile, since this parameter is responsible for connecting and initializing the file itself. ### Configuration file structure + ```json { "Bool option": true/false, @@ -29,7 +31,7 @@ } ``` -Read more about cqtdeployer options in the [options](Options) section. +Read more about cqtdeployer options in the [options](Options.md) section. Examples of the contents of this file: @@ -194,6 +196,7 @@ The purpose of file is to simplify the cqtdeployer's call and move some of the p ### Creating of the file #### The first method + 1. Call `cqtdeployer init` to initialize the file for a single-package application. Or `cqtdeployer -init multi` to initialize the file for a project with multiple packages. 2. Open CQtDeployer.json and edit it to fit your needs. @@ -216,8 +219,10 @@ Where: ### Using of the deployment file. + Use the flag -confFile [path to the file] to make cqtdeployer start reading the parameters from the file #### Example: + cqtdeployer -qmake ~/Qt/bin/qmake -confFile ./deploy.json diff --git a/md/en/Description.md b/md/en/Description.md index 42f42a3..25f5a85 100644 --- a/md/en/Description.md +++ b/md/en/Description.md @@ -1,4 +1,5 @@ -## What is CQtDeployer +# What is CQtDeployer + The CQtDeployer is application for extract all depends library of executable and create launch script for your application. Key differences of this program: diff --git a/md/en/DisableShortcats.md b/md/en/DisableShortcats.md index 48b5bd3..e1e4837 100644 --- a/md/en/DisableShortcats.md +++ b/md/en/DisableShortcats.md @@ -1,4 +1,6 @@ -# Disabling shortcuts for multi targets distribution Kit in the Qt Installer framework. +# Disabling shortcuts + +Disabling shortcuts for multi targets distribution Kit in the Qt Installer framework. Some times we need to disable creating automaticly shortcuts for some applications. For solve this problem i recomendet override the default qt installer framework template. @@ -13,6 +15,7 @@ I have a distribution that deployed using next command: cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif -targetPackage MyDistribution ``` ### where: + * **-bin myExecutableFile1,myExecutableFile2** - sets executable files. * **-qmake /qmake/path** - sets path to your qmake. * **qif** - option for enabling Qt Installer FrameWork Distributions. diff --git a/md/en/EnvironmentVariables.md b/md/en/EnvironmentVariables.md index 6c72183..b88084e 100644 --- a/md/en/EnvironmentVariables.md +++ b/md/en/EnvironmentVariables.md @@ -1,7 +1,11 @@ -# Environment variables of the CQtDeployer +# Environment variables + +Environment variables of the CQtDeployer + This page contains information about environment variables of the default launcher script. -## Initialization +## 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. @@ -18,7 +22,8 @@ All environment variables initialized in the default launcher script. So if you Example : -``` bash + +```bash . ├── pakcage1 << This is local root of the package1 │ ├── bin diff --git a/md/en/ExtraFiles.md b/md/en/ExtraFiles.md index 08b7091..5de95ec 100644 --- a/md/en/ExtraFiles.md +++ b/md/en/ExtraFiles.md @@ -1,4 +1,6 @@ -# Adding extraData into distributive. +# Adding extraData + +Adding extraData into distributive. CQtDeployer has support to work with extra data files. @@ -25,7 +27,7 @@ Or in configFile.json This command support list of arguments. -``` bash +```bash cqtdeployer -extraData path/to/my/customFile,path/to/my/customFile2,path/to/my/customFile3 ``` @@ -49,7 +51,7 @@ For change location you should use the extraDataOut options. This option change ### Example. Add custom scripts into scripts folder in the Distribution. -``` bash +```bash cqtdeployer -extraData /path/to/myScripts.sh,/another/path/to/myScripts.sh -extraDataOut scripts ``` @@ -68,6 +70,7 @@ Or in configFile.json ``` ## Packages + extraData and extraDataOut options have support to work with packages. See the packaging [page](Packing.md) to get more information about packages. Sometimes we need to create a multipackages application. For example create a installer for client-server application with the client and server applications. The client and server have a own default configuration files. We add config files using the extraData option. diff --git a/md/en/ExtractDefaultsTemplates.md b/md/en/ExtractDefaultsTemplates.md index f2cba79..35ed666 100644 --- a/md/en/ExtractDefaultsTemplates.md +++ b/md/en/ExtractDefaultsTemplates.md @@ -23,6 +23,7 @@ This option support the configFile.json ### Example : #### configFile.json + ```json { diff --git a/md/en/Guide.md b/md/en/Guide.md index cd01cbb..6885443 100644 --- a/md/en/Guide.md +++ b/md/en/Guide.md @@ -1,4 +1,7 @@ -# How to deploy C++ Application +# How to deploy + +How to deploy C++ Application + In this article i describe deploy processes of c++/qt application with cqtdeployer. diff --git a/md/en/Options.md b/md/en/Options.md index 6f4bdb4..b5a9507 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -1,4 +1,7 @@ -## General rules for using options +# Options general rules + +General rules for using options + ``` cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 ``` @@ -16,7 +19,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 * **-libOut [package;path,path]** - parameter with support for selecting the package for which the flag value is set. As a separator, use ';'. Please note that the rule described above is used to enumerate parameter values. The last parameter does not have a package value, this means that this value will be set for all non-configured packages by default. * **clear** - boolean option -## Definitions in description +## Definitions in description + **System environments** - paths of directories containing the system libraries. * Windows: * Paths defined in the PATH variable. diff --git a/md/en/Packing.md b/md/en/Packing.md index b26a0e5..20ed6fb 100644 --- a/md/en/Packing.md +++ b/md/en/Packing.md @@ -1,14 +1,19 @@ -# General information on packaging your distributions in packages. +# Packaging distributions + +General information on packaging your distributions in packages. ## Packaging Types + * Automatic * Manual ## Automatic Packages + Packages with this type creates automaticly. By default the distribution have a one main package. You can configure it using [Controll of packages options](Options.md). #### Example (Set new name for pacakge) + ``` ctdeployer ... -name "MyPackage" ``` @@ -72,6 +77,7 @@ You can also do the same in the config file ## Manual Packages + Manual packages is packages created by user template. For example you have a aplication that must be execute a complex script on the debian package or the installer. So you need to create your template and add tehe path to you template for a package option. @@ -122,10 +128,12 @@ Example: ``` ### Note + You can also extract the standard package template in order to override it if for some reason you are not satisfied with the standard implementation. See this [page](ExtractDefaultsTemplates.md) for details on how to do this ## Available packages + * [Qt Install Framework](QIF.md) * [ZIP Arhive](ZIP.md) * [DEB Package](DEB.md) diff --git a/md/en/QIF.md b/md/en/QIF.md index d54dc33..dbd911b 100644 --- a/md/en/QIF.md +++ b/md/en/QIF.md @@ -1,4 +1,6 @@ -## General rules for using Qt Installer Framwork +# Qt Installer Framwork + +General rules for using Qt Installer Framwork ### What is Qt Installer Framwork @@ -45,6 +47,7 @@ Or you can describe packages in [configuration file](DeployConfigFile.md) ``` # Custom Template for QIF + Starting with CQtDeployer Version 1.5 you can use your own installer template. To do this, you must pass the path to your template to the qif parameter. ```bash @@ -52,14 +55,17 @@ cqtdeployer ... -qif /path/to/my/custom/qif/template ``` ### Template + The qif template should contain 2 folders: * packages * config ### Attention + The name of the packages in the packages folder must match the names of the packages during deployment. For example: + ```json "targetPackage": [ [ diff --git a/md/en/QuickGuide.md b/md/en/QuickGuide.md index d635653..f6137d4 100644 --- a/md/en/QuickGuide.md +++ b/md/en/QuickGuide.md @@ -1,4 +1,4 @@ - +# Quick Guide How to deploy project with cqtdeployer. @@ -77,5 +77,5 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD [1]: https://github.com/QuasarApp/CQtDeployer/releases [2]: https://github.com/QuasarApp/CQtDeployer/issues -[3]: https://github.com/QuasarApp/CQtDeployer/wiki/Options +[3]: https://github.com/QuasarApp/CQtDeployer/blob/main/md/en/Options.md diff --git a/md/en/ReleaseReviews.md b/md/en/ReleaseReviews.md index c641852..a0b5f9a 100755 --- a/md/en/ReleaseReviews.md +++ b/md/en/ReleaseReviews.md @@ -1,3 +1,4 @@ # Release Reviews +* [Review v1.5](1_5.md) * [Review v1.4 (Binary Box)](1_4.md) diff --git a/md/en/ZIP.md b/md/en/ZIP.md index 1518198..d837802 100644 --- a/md/en/ZIP.md +++ b/md/en/ZIP.md @@ -1,16 +1,18 @@ -## General rules for using ZIP +# ZIP Using + +General rules for using ZIP -#### Available from version CQtDeployer 1.5 +Available from version CQtDeployer 1.5 ### How to use zip option Just add to cqtdeployer option "zip". -#### For example: +### For example: -``` bash - cqtdeployer ... zip +```bash +cqtdeployer ... zip ``` Where: diff --git a/md/ru/1_4.md b/md/ru/1_4.md index 3fe8494..adaeef7 100755 --- a/md/ru/1_4.md +++ b/md/ru/1_4.md @@ -1,4 +1,6 @@ -# Релиз утилиты развертывания С++/Qt и QML приложений CQtDeployer v1.4.0 (Binary Box) +# Релиз CQtDeployer v1.4.0 (Binary Box) + +Релиз утилиты развертывания С++/Qt и QML приложений CQtDeployer v1.4.0 (Binary Box) Спустя почти полгода, вышло мажорное обновление утилиты развёртывания CQtDeployer. В данном обновлении множество нововведений, но основной упор в сделан на создание пакетов. diff --git a/md/ru/1_5.md b/md/ru/1_5.md index 4e8d42c..2122580 100755 --- a/md/ru/1_5.md +++ b/md/ru/1_5.md @@ -1,4 +1,6 @@ -# Выпуск утилиты развертывания приложений C ++ / Qt и QML CQtDeployer v1.5.0 +# Выпуск CQtDeployer v1.5.0 + +Выпуск утилиты развертывания приложений C ++ / Qt и QML CQtDeployer v1.5.0 Это первое крупное обновление в 2021 году. CQtDeployer 1.5 содержит множество полезных улучшений. Самыми большими улучшениями являются добавление возможности упаковывать пакеты deb и возможность использовать собственный шаблон упаковки для среды установки qt. diff --git a/md/ru/Build-and-Install.md b/md/ru/Build-and-Install.md index f8c388f..97b32ff 100644 --- a/md/ru/Build-and-Install.md +++ b/md/ru/Build-and-Install.md @@ -1,6 +1,7 @@ -# Building from source +# Сборка и установка ## Build для Linux + - установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) - git clone https://github.com/QuasarApp/CQtDeployer.git - cd CQtDeployer @@ -13,6 +14,7 @@ - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) ## Build для Windows (CMD) + - установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) - git clone https://github.com/QuasarApp/CQtDeployer.git - cd CQtDeployer @@ -28,9 +30,11 @@ - ./Distro/CQtDeployerInstaller.exe --- + # Установка без сборки ## Snap + [](https://snapcraft.io/cqtdeployer) #### Особенности snap версии @@ -47,4 +51,5 @@ sudo snap connect cqtdeployer:system-backup ``` ## Установщик + Вы можете загрузить последнюю версию приложения [здесь](https://github.com/QuasarApp/CQtDeployer/releases). diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index 1b2aee7..66f49e2 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -1,4 +1,6 @@ -# Журнал изменений для всех версий CQtDeployer. +# Журнал изменений + +Журнал изменений для всех версий CQtDeployer. ## CQtDeployer 1.5.0 Alpha ### Исправления diff --git a/md/ru/CompareFeatures.md b/md/ru/CompareFeatures.md index ffeb071..58a3624 100644 --- a/md/ru/CompareFeatures.md +++ b/md/ru/CompareFeatures.md @@ -1,5 +1,6 @@ -# Сравните особенности дистрибутивов CQtDeployer +# Сравнение особенностей +Сравните особенности дистрибутивов CQtDeployer | Название функции | Классическая версия linux (установщик) | Snap версия | Windows версия | |---|---|---|----| diff --git a/md/ru/DEB.md b/md/ru/DEB.md index 0070bda..97d308a 100644 --- a/md/ru/DEB.md +++ b/md/ru/DEB.md @@ -1,4 +1,6 @@ -## Общие правила использования DEB +# Использование DEB + +Общие правила использования DEB #### Доступно с версии CQtDeployer 1.5 @@ -13,8 +15,8 @@ ``` Где: -* ** ... ** - список других опций. -* ** deb ** - опция для создания deb пакетов. +* **...** - список других опций. +* **deb** - опция для создания deb пакетов. По умолчанию cqtdeployer создает один deb пакет . @@ -43,4 +45,42 @@ cqtdeployer создает вуи пакет для каждого пакета. } ``` -# Использование собственных шаблонов для создания деб пакетов \ No newline at end of file +# Использование собственных шаблонов для создания деб пакетов + +Вы можете создать собственный шаблон для пакетов debian. + +### Структура пакета debian: + + +```bash +└── Debian templates + ├── debPacakge1 + │ └── DEBIAN + │ ├── control + │ ├── postinst + │ └── prerm + └── debPacakge2 + └── DEBIAN + ├── control + ├── postinst + └── prerm + +``` + +Для включения ваших шаблонов в дистрибутив вам необходимо добавить путь к папке шаблонов Debian в deploy Config.json. + +```json +{ +"targetPackage": [ + [ + "debPacakge1", + "tar1" + ], + [ + "debPacakge2", + "tar2" + ], +], +"deb": "./Debian templates" +} +``` \ No newline at end of file diff --git a/md/ru/DeployConfigFile.md b/md/ru/DeployConfigFile.md index ccddf55..050845e 100644 --- a/md/ru/DeployConfigFile.md +++ b/md/ru/DeployConfigFile.md @@ -1,4 +1,5 @@ -## Файл развертывания +# Файл развертывания + **Файл развертывания** - это json файл, содержащий в себе параметры для cqtdeployer. Данный файл поддерживает все параметры кроме confFile, так как данный параметр отвечает за подключение и инициализацию самого файла. ### Структура файла конфигурации @@ -29,7 +30,7 @@ } ``` -Подробно о параметрах cqtdeployer читайте в разделе [Параметры](Options). +Подробно о параметрах cqtdeployer читайте в разделе [Параметры](Options.md). Примеры содержимого данного файла: @@ -201,6 +202,7 @@ 3. Вызовите cqtdeployer в дериктории с файлом CQtDeployer.json, или укажите путь к нему используя флаг -confFile path/to/my/CQtDeployer.json #### Способ 2 + Вызовите cqtdeployer с нужным вам набором параметров и укажите путь к файлу при помощи флага -confFile (файл должен отсутствовать). Если файл будет существовать, то cqtdeployer начнет выгружать из него параметры. Пример: @@ -215,8 +217,10 @@ cqtdeployer -confFile deploy.json -bin CQtDeployerInstaller -targetDir ./test -q ### Использование файла развертывания. + Чтобы cqtdeployer начал читать параметры из файла, используйте флаг -confFile [путь к файлу] #### Пример: + cqtdeployer -qmake ~/Qt/bin/qmake -confFile ./deploy.json diff --git a/md/ru/Description.md b/md/ru/Description.md index ef25c92..fe7a80d 100644 --- a/md/ru/Description.md +++ b/md/ru/Description.md @@ -1,4 +1,4 @@ -### Что такое CQtDeployer +# Что такое CQtDeployer CQtDeployer - это утилита для извлечения всех зависимых библиотек исполняемых файлов и создания сценария запуска для вашего приложения. diff --git a/md/ru/DisableShortcats.md b/md/ru/DisableShortcats.md index e22bab2..f126d5e 100644 --- a/md/ru/DisableShortcats.md +++ b/md/ru/DisableShortcats.md @@ -1,4 +1,6 @@ -# Отключение ярлыков для многоцелевого дистрибутива в структуре Qt Installer. +# Отключение ярлыков для Qt Installer. + + Отключение ярлыков для многоцелевого дистрибутива в структуре Qt Installer. Иногда нам нужно отключить автоматическое создание ярлыков для некоторых приложений. Для решения этой проблемы я рекомендую переопределить шаблон фреймворка установщика qt по умолчанию. @@ -13,6 +15,7 @@ cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif ``` ### где: + * **-bin myExecutableFile1, myExecutableFile2** - устанавливает исполняемые файлы. * **-qmake /qmake/path** - устанавливает путь к вашему qmake. * **qif** - опция для включения дистрибутивов Qt Installer FrameWork. diff --git a/md/ru/EnvironmentVariables.md b/md/ru/EnvironmentVariables.md index 5e777d7..4c02be6 100644 --- a/md/ru/EnvironmentVariables.md +++ b/md/ru/EnvironmentVariables.md @@ -1,7 +1,9 @@ # Переменные окружения CQtDeployer + Эта страница содержит информацию о переменных содержащихся в скрипте запуска по умолчанию. ## Инициализация + Все переменные окружения инициализируются в скрипте запуска по умолчанию. Поэтому, если вы используете опцию runScript, вам необходимо вручную воссоздать все необходимые переменные. @@ -19,7 +21,8 @@ Пример : -``` bash + +```bash . ├── pakcage1 << Это локальный корень пакета package1 │ ├── bin diff --git a/md/ru/ExtraFiles.md b/md/ru/ExtraFiles.md index 8f87a33..99d071f 100644 --- a/md/ru/ExtraFiles.md +++ b/md/ru/ExtraFiles.md @@ -1,4 +1,7 @@ -# Добавление дополнительных данных в дистрибутив. +# Добавление дополнительных данных + +Добавление дополнительных данных в дистрибутив. + CQtDeployer поддерживает работу с дополнительными файлами данных. @@ -14,7 +17,7 @@ cqtdeployer -extraData путь / к / my / customFile Или в configFile.json -``` json +```json { ... "extraData": "./path/to/my/customFile" @@ -25,13 +28,13 @@ cqtdeployer -extraData путь / к / my / customFile Эта команда поддерживает список аргументов. -``` bash +```bash cqtdeployer -extraData path/to/my/customFile,path/to/my/customFile2,path/to/my/customFile3 ``` Или в configFile.json -``` json +```json { ... "extraData": [ @@ -49,13 +52,13 @@ cqtdeployer -extraData path/to/my/customFile,path/to/my/customFile2,path/to/my/c ### Пример. Добавьте пользовательские скрипты в папку скриптов в Distribution. -``` bash +```bash cqtdeployer -extraData /path/to/myScripts.sh,/another/path/to/myScripts.sh -extraDataOut scripts ``` Или в configFile.json -``` json +```json { ... "extraData": [ @@ -77,7 +80,7 @@ cqtdeployer -extraData /path/to/myScripts.sh,/another/path/to/myScripts.sh -extr ## Пример применения мультиупаковки. -``` json +```json { "корзина": [ diff --git a/md/ru/ExtractDefaultsTemplates.md b/md/ru/ExtractDefaultsTemplates.md index d570b0b..6c53254 100644 --- a/md/ru/ExtractDefaultsTemplates.md +++ b/md/ru/ExtractDefaultsTemplates.md @@ -1,4 +1,6 @@ -# Извлечение шаблонов по умолчанию +# Извлечение шаблонов + +Извлечение шаблонов по умолчанию Иногда вам нужно создать свои собственные шаблоны для установщиков или пакетов deb. Для этого вы можете использовать опцию getDefaultTemplate. @@ -27,7 +29,8 @@ cqtdeployer -bin myExecutable getDefaultTemplate qif -targetDir "/distanation/Di ### Пример: #### configFile.json -`` json + +```json { "корзина": [ @@ -40,7 +43,7 @@ cqtdeployer -bin myExecutable getDefaultTemplate qif -targetDir "/distanation/Di ["Сервер", "myServerExecutable"] ], } -`` +``` ```bash cqtdeployer getDefaultTemplate qif -confFile "path/to/configFile.json" @@ -48,5 +51,6 @@ cqtdeployer getDefaultTemplate qif -confFile "path/to/configFile.json" ## Запись + Эта опция поддерживает работу со всеми пакетами, кроме zip. Если вы хотите получить больше информации о доступных пакетах, смотрите упаковку [страница](Packing.md). \ No newline at end of file diff --git a/md/ru/Guide.md b/md/ru/Guide.md index ce11e1d..fb16ff5 100644 --- a/md/ru/Guide.md +++ b/md/ru/Guide.md @@ -1,5 +1,4 @@ -# Создания установщика прямо из qt creator. -# Как развернуть приложение C ++ +# Как развернуть приложение В этой статье я описываю процессы развертывания приложения c++/qt с помощью cqtdeployer. @@ -103,379 +102,328 @@ cqtdeployer -bin myexecutable -libDir / PathToMyExtraLibs -recursiveDepth 5 -qml # На живом примере animation из [Примеров Qt](https://doc.qt.io/qt-5/qtquick-animation-example.html) -1. Собираем проект в релизную сборку - 1. Выполняем qmake с опцие -r для релизной сборки. - - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . - ``` - - 2. Вызываем ваш make generator - - * Для Linux: - - ```bash - make -j${nproc} - ``` - - * Для Windows - - ```bash - Qt/Tools/QtCreator/bin/jom.exe - ``` - - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp - /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp - /home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_animation.o qrc_animation.cpp - g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp - g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread - ``` - -3. Находим наш получившийся исполняемый файл - Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** - В моем случае исполняемый файл лежит в корневом катологе проекта. - - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree - . - ├── animation # Вот он. - ├── animation.pro - ├── animation.qml - ├── animation.qmlproject - ├── animation.qrc - ├── basics - │ ├── animators.qml - │ ├── color-animation.qml - │ ├── images - │ │ ├── face-smile.png - │ │ ├── moon.png - │ │ ├── shadow.png - │ │ ├── star.png - │ │ └── sun.png - │ └── property-animation.qml - ├── behaviors - │ ├── behavior-example.qml - │ ├── FocusRect.qml - │ ├── SideRect.qml - │ ├── tvtennis.qml - │ └── wigglytext.qml - ├── doc - │ ├── images - │ │ └── qml-animations-example.png - │ └── src - │ └── animation.qdoc - ├── easing - │ └── easing.qml - ├── main.cpp - ├── main.o - ├── Makefile - ├── pathanimation - │ └── pathanimation.qml - ├── pathinterpolator - │ └── pathinterpolator.qml - ├── qrc_animation.cpp - ├── qrc_animation.o - ├── qrc_shared.cpp - ├── qrc_shared.o - └── states - ├── qt-logo.png - ├── states.qml - └── transitions.qml - - 10 directories, 33 files - ``` - -4. Вызываем cqtdeployer для формирования Базового Дистрибутива - - Для Linux: - - ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - ``` - - Для Windows: - - ```bash - cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe - ``` - - ```bash - andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake - Info: Deploy ... - Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit - Info: target deploy started!! - Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir - Info: platform : libqvnc is disabled - Info: platform : libqvnc is disabled - Info: platform : libqwebgl is disabled - Info: platform : libqwebgl is disabled - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 - Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 - Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm - Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm - Info: try deploy msvc - Info: deploy done! - Info: copy ::/shared/Distributions/Templates/Icon.png - Error: not exits - Info: [0] Parsed arguments, ok. - - Info: [2] Collecting information about available packages... - - Info: [4] Found subdirectory "Application" - - Info: [4] - it provides the package "Application" - "1.0" - - Info: [4] Copying component data for "Application" - - Info: [5] Compressing data directory "bin" - - Info: [21] Compressing data directory "icons" - - Info: [31] Compressing data directory "lib" - - Info: [11111] Compressing data directory "plugins" - - Info: [11740] Compressing data directory "qml" - - Info: [11786] Compressing data directory "translations" - - Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") - - Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" - [12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" - - Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" - - Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" - - Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" - [12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" - - Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" - - Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" - [12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" - - Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" - - Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" - - Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" - - Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" - [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" - - Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" - - Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" - - Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" - - Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" - - Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" - - Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" - - Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" - - Info: [12360] done. - - Info: [12360] Begin to copy configuration file and data. - - Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" - - Info: [12360] done. - - Info: [12360] Read dom element: <Name>animation</Name>. - - Info: [12360] Read dom element: <Version>1.0</Version>. - - Info: [12360] Read dom element: <Title>animation</Title>. - - Info: [12360] Read dom element: <Publisher>Company</Publisher>. - [12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. - [12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. - - Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. - [12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. - - Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. - - Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" - - Info: [12360] done. - - Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. - [12360] Read dom element: <ProductUrl></ProductUrl>. - - Info: [12360] done. - - - Info: [12362] Creating the binary - - Info: [12407] Creating resource archive for "Application" - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") - [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") - - Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") - - Info: [12449] Cleaning up... - ``` - -5. Готово Дистрибутив был сохранен в папку - -**DistributionKit** +## Собираем проект в релизную сборку + +Выполняем qmake с опцие -r для релизной сборки. + +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ~/Qt/5.15.2/gcc_64/bin/qmake -r . +``` + +Вызываем ваш make generator + +Для Linux: + +```bash +make -j${nproc} +``` + +Для Windows + +```bash +Qt/Tools/QtCreator/bin/jom.exe +``` +Билд лог + +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ make -j${nproc} +g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o main.o main.cpp +/home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name shared ../shared/shared.qrc -o qrc_shared.cpp +/home/andrei/Qt/5.15.2/gcc_64/bin/rcc -name animation animation.qrc -o qrc_animation.cpp +g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_animation.o qrc_animation.cpp +g++ -c -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../../5.15.2/gcc_64/include -I../../../../5.15.2/gcc_64/include/QtQuick -I../../../../5.15.2/gcc_64/include/QtGui -I../../../../5.15.2/gcc_64/include/QtQmlModels -I../../../../5.15.2/gcc_64/include/QtQml -I../../../../5.15.2/gcc_64/include/QtNetwork -I../../../../5.15.2/gcc_64/include/QtCore -I. -I/usr/include/libdrm -I../../../../5.15.2/gcc_64/mkspecs/linux-g++ -o qrc_shared.o qrc_shared.cpp +g++ -Wl,-O1 -Wl,-rpath,/home/andrei/Qt/5.15.2/gcc_64/lib -o animation main.o qrc_shared.o qrc_animation.o /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so /home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lGL -lpthread +``` + +## Находим наш получившийся исполняемый файл + +Если вы собирали проект с помощью qtCreator ваш исполняемый файл будет находиться на уровень выше в папке **build-Animations-Desktop_Qt_5_15_2_GCC_64bit-Release** +В моем случае исполняемый файл лежит в корневом катологе проекта. + +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ tree +. +├── animation # Вот он. +├── animation.pro +├── animation.qml +├── animation.qmlproject +├── animation.qrc +├── basics +│ ├── animators.qml +│ ├── color-animation.qml +│ ├── images +│ │ ├── face-smile.png +│ │ ├── moon.png +│ │ ├── shadow.png +│ │ ├── star.png +│ │ └── sun.png +│ └── property-animation.qml +├── behaviors +│ ├── behavior-example.qml +│ ├── FocusRect.qml +│ ├── SideRect.qml +│ ├── tvtennis.qml +│ └── wigglytext.qml +├── doc +│ ├── images +│ │ └── qml-animations-example.png +│ └── src +│ └── animation.qdoc +├── easing +│ └── easing.qml +├── main.cpp +├── main.o +├── Makefile +├── pathanimation +│ └── pathanimation.qml +├── pathinterpolator +│ └── pathinterpolator.qml +├── qrc_animation.cpp +├── qrc_animation.o +├── qrc_shared.cpp +├── qrc_shared.o +└── states + ├── qt-logo.png + ├── states.qml + └── transitions.qml +10 directories, 33 files +``` + +## Вызываем cqtdeployer для формирования Базового Дистрибутива + +Для Linux: + +```bash +cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake +``` +Для Windows: + +```bash +cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/mingw_810_64/bin/qmake.exe +``` + +Лог развёртывания + +```bash +andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ cqtdeployer -bin animation -qmlDir . qif -qmake ~/Qt/5.15.2/gcc_64/bin/qmake +Info: Deploy ... +Info: flag targetDir not used. use default target dir :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit +Info: target deploy started!! +Info: copy :/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/animation +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/libqmlplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/libmodelsplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/Models.2/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/RemoteObjects/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/libqtqmlstatemachine.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/StateMachine/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/libworkerscriptplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQml/WorkerScript.2/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/libparticlesplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick/Particles.2/qmldir +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/libqtquick2plugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/plugins.qmltypes +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/qml/QtQuick.2/qmldir +Info: platform : libqvnc is disabled +Info: platform : libqvnc is disabled +Info: platform : libqwebgl is disabled +Info: platform : libqwebgl is disabled +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqconnmanbearer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqgenericbearer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/bearer/libqnmbearer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/iconengines/libqsvgicon.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqgif.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqicns.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqico.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqjpeg.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqsvg.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtga.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqtiff.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwbmp.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/imageformats/libqwebp.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqeglfs.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqlinuxfb.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimal.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqminimalegl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqoffscreen.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-generic.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqwayland-xcomposite-glx.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqgtk3.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/platformthemes/libqxdgdesktopportal.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-decoration-client/libbradient.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdmabuf-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libdrm-egl-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libshm-emulation-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libvulkan-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-client/libxcomposite-glx.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-dmabuf-server-buffer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-drm-egl-server-buffer.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-linux-dmabuf-unstable-v1.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-shm-emulation-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-vulkan-server.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-wayland-eglstream-controller.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-egl.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-graphics-integration-server/libqt-wayland-compositor-xcomposite-glx.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libfullscreen-shell-v1.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libivi-shell.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libwl-shell.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v5.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell-v6.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/wayland-shell-integration/libxdg-shell.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-egl-integration.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Network.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5EglFSDeviceIntegration.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5XcbQpa.so.5 +Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicui18n.so.56 +Info: copy :/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5RemoteObjects.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QuickParticles.so.5 +Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicudata.so.56 +Info: copy :/home/andrei/CQtDeployer/1.5/lib/libicuuc.so.56 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlWorkerScript.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandClient.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5DBus.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Qml.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Quick.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5QmlModels.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/lib/libQt5WaylandCompositor.so.5 +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ar.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_bg.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ca.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_cs.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_da.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_de.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_en.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_es.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fi.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_fr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_gd.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_he.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_hu.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_it.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ja.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ko.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_lv.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_pl.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_ru.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_sk.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_tr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_uk.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtbase_zh_TW.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_bg.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_da.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_de.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_en.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_es.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fi.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_fr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_hu.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ja.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ko.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_lv.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_pl.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_ru.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_sk.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_tr.qm +Info: copy :/home/andrei/Qt/5.15.2/gcc_64/translations/qtdeclarative_uk.qm +Info: try deploy msvc +Info: deploy done! +Info: copy ::/shared/Distributions/Templates/Icon.png +Error: not exits +Info: [0] Parsed arguments, ok. +Info: [2] Collecting information about available packages... +Info: [4] Found subdirectory "Application" +Info: [4] - it provides the package "Application" - "1.0" +Info: [4] Copying component data for "Application" +Info: [5] Compressing data directory "bin" +Info: [21] Compressing data directory "icons" +Info: [31] Compressing data directory "lib" +Info: [11111] Compressing data directory "plugins" +Info: [11740] Compressing data directory "qml" +Info: [11786] Compressing data directory "translations" +Info: [12321] Compressing files found in data directory: ("/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/data/animation.sh") +Info: [12321] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" +[12321] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" +Info: [12321] Generated sha1 hash: "0af6cb9dc074407a8857403f07d13aa7d1b3c9cb" +Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" +[12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" +Info: [12322] Generated sha1 hash: "aa938cb332bfb427a6d0280c07c204c1bb48da22" +Info: [12322] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" +[12322] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" +Info: [12347] Generated sha1 hash: "7c3a43111e694bc82a0ab0d19a6e4d0025f17313" +Info: [12347] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" +[12347] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" +Info: [12349] Generated sha1 hash: "4ed23c36835a9b62701478ab6897737dfe9dfc9a" +Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" +Info: [12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" +Info: [12349] Generated sha1 hash: "bd44e15d2c26c8f6cb50760032eadf0241eedf43" +Info: [12349] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" +[12349] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" +Info: [12350] Generated sha1 hash: "030e0ede0c0e058a5d5a3b6c43c6a4767119d3f1" +Info: [12350] Hash is stored in "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" +Info: [12350] Creating hash of archive "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" +Info: [12350] Generated sha1 hash: "acd2cd63e77971acedbcda2a65f93b2cc036025f" +Info: [12350] Copy meta data for package "Application" using "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/package.xml" +Info: [12350] calculate size of directory "/tmp/binarycreator-yOPMPa/Application/data" +Info: [12359] Copying associated "script" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/packages/Application/meta/installscript.qs" +Info: [12360] done. +Info: [12360] Begin to copy configuration file and data. +Info: [12360] Copying associated "configuration" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/config.xml" +Info: [12360] done. +Info: [12360] Read dom element: <Name>animation</Name>. +Info: [12360] Read dom element: <Version>1.0</Version>. +Info: [12360] Read dom element: <Title>animation</Title>. +Info: [12360] Read dom element: <Publisher>Company</Publisher>. +[12360] Read dom element: <StartMenuDir>animation</StartMenuDir>. +[12360] Read dom element: <TargetDir>@HomeDir@/animation</TargetDir>. +Info: [12360] Read dom element: <InstallActionColumnVisible>true</InstallActionColumnVisible>. +[12360] Read dom element: <RemoveTargetDir>true</RemoveTargetDir>. +Info: [12360] Read dom element: <ControlScript>controlScript.qs</ControlScript>. +Info: [12360] Copying associated "ControlScript" file "/home/andrei/Qt/Examples/Qt-5.15.2/quick/animation/DistributionKit/defaultQIFWTemplate/config/controlScript.qs" +Info: [12360] done. +Info: [12360] Read dom element: <MaintenanceToolName>animationTool</MaintenanceToolName>. +[12360] Read dom element: <ProductUrl></ProductUrl>. +Info: [12360] done. +Info: [12362] Creating the binary +Info: [12407] Creating resource archive for "Application" +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z" ("61.58 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0bin.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z" ("108.00 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0icons.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z" ("18.08 MB") +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0lib.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z" ("1.08 MB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0plugins.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z" ("53.29 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0qml.7z.sha1" ("40.00 bytes") +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z" ("595.71 KB") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0translations.7z.sha1" ("40.00 bytes") +[12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z" ("439.00 bytes") +Info: [12407] Appending "/tmp/binarycreator-yOPMPa/Application/1.0content.7z.sha1" ("40.00 bytes") +Info: [12449] Cleaning up... +``` + +Готово. дистрибутив был сохранен в папку **DistributionKit** ```bash andrei@X570-GAMING-X:~/Qt/Examples/Qt-5.15.2/quick/animation$ ./DistributionKit/Installeranimation.run @@ -538,48 +486,36 @@ QMAKE_EXTRA_TARGETS += deploy -## Пример интеграции -1. Создаем тестовый проект +## Пример интеграции - ```qmake - QT += quick +Создаем тестовый проект - CONFIG += c++11 - - # You can make your code fail to compile if it uses deprecated APIs. - # In order to do so, uncomment the following line. - #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 - - SOURCES += \ - main.cpp - - RESOURCES += qml.qrc - - # Additional import path used to resolve QML modules in Qt Creator's code model - QML_IMPORT_PATH = - - # Additional import path used to resolve QML modules just for Qt Quick Designer - QML_DESIGNER_IMPORT_PATH = - - # Default rules for deployment. - qnx: target.path = /tmp/$${TARGET}/bin - else: unix:!android: target.path = /opt/$${TARGET}/bin - !isEmpty(target.path): INSTALLS += target - - - QT_DIR= $$[QT_HOST_BINS] - win32:QMAKE_BIN= $$QT_DIR/qmake.exe - contains(QMAKE_HOST.os, Linux):{ - QMAKE_BIN= $$QT_DIR/qmake - } - - DESTDIR=$$PWD/Build - - deploy.commands= cqtdeployer -bin $$DESTDIR/$$TARGET -qmake $$QMAKE_BIN -libDir $$PWD -qmlDir $$PWD -recursiveDepth 5 qif - - QMAKE_EXTRA_TARGETS += deploy - - ``` +```qmake +QT += quick +CONFIG += c++11 +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 +SOURCES += \ + main.cpp +RESOURCES += qml.qrc +# Additional import path used to resolve QML modules in Qt Creator's code model +QML_IMPORT_PATH = +# Additional import path used to resolve QML modules just for Qt Quick Designer +QML_DESIGNER_IMPORT_PATH = +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target +QT_DIR= $$[QT_HOST_BINS] +win32:QMAKE_BIN= $$QT_DIR/qmake.exe +contains(QMAKE_HOST.os, Linux):{ + QMAKE_BIN= $$QT_DIR/qmake +} +DESTDIR=$$PWD/Build +deploy.commands= cqtdeployer -bin $$DESTDIR/$$TARGET -qmake $$QMAKE_BIN -libDir $$PWD -qmlDir $$PWD -recursiveDepth 5 qif +QMAKE_EXTRA_TARGETS += deploy +``` 2. Открываем панель управления проектом  diff --git a/md/ru/Options.md b/md/ru/Options.md index 263f90e..e53387c 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -1,6 +1,7 @@ +# Использование параметров +Общие правила использования параметров -## Общие правила использования параметров ``` cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 ``` @@ -19,6 +20,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 * **clear** - флаг ## Определения в описании + **Системное окружение** - пути к системным библиотекам. * Windows: * Пути, определенные в переменной PATH. diff --git a/md/ru/Packing.md b/md/ru/Packing.md index e22d32c..699022a 100644 --- a/md/ru/Packing.md +++ b/md/ru/Packing.md @@ -1,14 +1,19 @@ -# Общая информация об упаковке ваших дистрибутивов в пакеты. +# Упаковка дистрибутивов + +Общая информация об упаковке ваших дистрибутивов в пакеты. ## Типы упаковки + * Автоматически * Вручную ## Автоматические пакеты + Пакеты с этим типом создаются автоматически. По умолчанию в дистрибутиве есть один основной пакет. Вы можете настроить его, используя [Параметры управления пакетами](Options.md). #### Пример (Установить новое имя для pacakge) + ``` ctdeployer ... -name "MyPackage" ``` @@ -72,6 +77,7 @@ cqtdeployer ... -targetPackage myPacage; target1, myPacage; target2, myPacage2; ## Ручные пакеты + Ручные пакеты - это пакеты, созданные по шаблону пользователя. Например, у вас есть приложение, которое должно выполнять сложный сценарий в пакете debian или программе установки. Итак, вам нужно создать свой шаблон и добавить путь к вашему шаблону для варианта пакета. @@ -122,9 +128,11 @@ cqtdeployer ... -qif /path/to/my/template/installer ``` ### Примечание + Вы так же можете извлечь стандартный шаблон пакета для того что бы его переопределить если вас по каким то причинам не устраевает стандартная реализация. Подробнее как это сделать смотрите на этой [странице](ExtractDefaultsTemplates.md). ## Доступные пакеты + * [Qt Install Framework](QIF.md) * [ZIP-архив](ZIP.md) * [Пакет DEB](DEB.md) diff --git a/md/ru/QIF.md b/md/ru/QIF.md index 925e322..f4df808 100644 --- a/md/ru/QIF.md +++ b/md/ru/QIF.md @@ -1,4 +1,6 @@ -## Общие правила использования Qt Installer Framwork +# Использование Qt Installer Framwork + +Общие правила использования Qt Installer Framwork ### Что такое Qt Installer Framwork @@ -43,7 +45,8 @@ } ``` -# Пользовательский Шаблон для QIF +# Пользовательский Шаблон для QIF + Начиная с Версии CQtDeployer 1.5 вы можете использовать свой собственный шаблон установщика. Для этого вы должны передать в параметр qif путь к вашему шаблону. ``` @@ -51,14 +54,18 @@ cqtdeployer ... -qif /path/to/my/custom/qif/template ``` ### Шаблон + Шаблон qif долже содержать 2 папки: * packages * config -### Внимание +### Внимание + Название пакетов в папке packages должны совподать с названием пакетов при развертывание. -Например: -``` json + +Например: + +```json "targetPackage": [ [ "myCustomInstaller", @@ -67,7 +74,7 @@ cqtdeployer ... -qif /path/to/my/custom/qif/template ], ``` -``` bash +```bash . ├── config │ ├── config.xml @@ -93,7 +100,7 @@ cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller #### Не забудьте переименовать папку вашего пакета в имя пакета из опции имени. -``` bash +```bash . ├── config │ ├── config.xml diff --git a/md/ru/QuickGuide.md b/md/ru/QuickGuide.md index 06dd37f..8247f89 100644 --- a/md/ru/QuickGuide.md +++ b/md/ru/QuickGuide.md @@ -1,4 +1,4 @@ - +# Быстрый гайд Как развернуть приложение с помощью CQtDeployer @@ -77,5 +77,5 @@ cqtdeployer -bin myexecutable -libDir /PathToMyExtraLibs -recursiveDepth 5 -qmlD [1]: https://github.com/QuasarApp/CQtDeployer/releases [2]: https://github.com/QuasarApp/CQtDeployer/issues -[3]: https://github.com/QuasarApp/CQtDeployer/wiki/Options +[3]: https://github.com/QuasarApp/CQtDeployer/blob/main/md/ru/Options.md diff --git a/md/ru/ReleaseReviews.md b/md/ru/ReleaseReviews.md index f135d63..69cc008 100755 --- a/md/ru/ReleaseReviews.md +++ b/md/ru/ReleaseReviews.md @@ -1,3 +1,4 @@ # Обзоры на релизы +* [Обзор v1.5](1_5.md) * [Обзор v1.4 (Бинарный ящик)](1_4.md) diff --git a/md/ru/ZIP.md b/md/ru/ZIP.md index 256191e..0dedaac 100644 --- a/md/ru/ZIP.md +++ b/md/ru/ZIP.md @@ -1,24 +1,27 @@ -## Общие правила использования ZIP +# Использование ZIP -#### Доступно с версии CQtDeployer 1.5 +Общие правила использования ZIP + +Доступно с версии CQtDeployer 1.5 ### Как использовать опцию zip Просто добавьте в cqtdeployer опцию «zip». -#### Например: +### Например: -``` bash - cqtdeployer ... zip +```bash +cqtdeployer ... zip ``` Где: -* ** ... ** - список других опций. -* ** zip ** - опция использования zip архивов. + +* **...** - список других опций. +* **zip** - опция использования zip архивов. По умолчанию cqtdeployer создает один zip-архив. -Если вы хотите создать рассылку нескольких пакетов, вы должны использовать [Параметры управления пакетами](Options.md) +Если вы хотите создать рассылку нескольких пакетов, вы должны использовать [Параметры управления пакетами](Options.md). Чтобы создать новый пакет, используйте -targetPackage [package; tar1] вариант cqtdeployer создает zip-архив для каждого пакета. @@ -31,7 +34,7 @@ cqtdeployer создает zip-архив для каждого пакета. Или вы можете описать пакеты в [файле конфигурации](DeployConfigFile.md) -```JSON +```json { "targetPackage": [ [ From c3668929ce8007e37478020003d3bfdecdb93b91 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 11 Jun 2021 11:47:48 +0300 Subject: [PATCH 053/222] ref #620 "added ssl libs into Qt 3rdparty libraries" --- Deploy/deploycore.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 8d5a3dd..f19a808 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -648,13 +648,18 @@ QStringList DeployCore::Qt3rdpartyLibs(Platform platform) { QStringList result; result << QStringList { - // Begin SQL LIBS + // SQL LIBS // See task https://github.com/QuasarApp/CQtDeployer/issues/367 - "libpq", - "mysqlclient" + "mysqlclient", + + // SLL Libs + // See task https://github.com/QuasarApp/CQtDeployer/issues/620 + "libcrypto", + "libssl", + "libeay32", + "ssleay32", - // End SQL LIBS }; if (platform & Platform::Win) { From fc0c40bb6dbc7ca37c79be55d2f5c3d7d0c2895c Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Fri, 11 Jun 2021 12:00:02 +0300 Subject: [PATCH 054/222] ref #560 doxygen.conf settings change --- doxygen.conf | 8 ++++---- md/{index.md => README.md} | 0 2 files changed, 4 insertions(+), 4 deletions(-) rename md/{index.md => README.md} (100%) diff --git a/doxygen.conf b/doxygen.conf index d47b69d..b35c8ec 100644 --- a/doxygen.conf +++ b/doxygen.conf @@ -788,9 +788,9 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = ./Deploy \ - ./md \ - ./README.md +INPUT = ./md \ + + # This tag can be used to specify the character encoding of the source files @@ -983,7 +983,7 @@ FILTER_SOURCE_PATTERNS = # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = README.md +USE_MDFILE_AS_MAINPAGE = md/README.md #--------------------------------------------------------------------------- # Configuration options related to source browsing diff --git a/md/index.md b/md/README.md similarity index 100% rename from md/index.md rename to md/README.md From 858656d3a210e9e008759c021eea6204e8ca44bb Mon Sep 17 00:00:00 2001 From: EndrII <endriimail@gmail.com> Date: Fri, 11 Jun 2021 15:59:29 +0300 Subject: [PATCH 055/222] fix windows bat files --- Deploy/ScriptsTemplates/windows.bat | 8 ++++---- Deploy/metafilemanager.cpp | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Deploy/ScriptsTemplates/windows.bat b/Deploy/ScriptsTemplates/windows.bat index af3f2f6..4a385be 100644 --- a/Deploy/ScriptsTemplates/windows.bat +++ b/Deploy/ScriptsTemplates/windows.bat @@ -13,10 +13,10 @@ @echo off SET BASE_DIR=%~dp0 -SET PATH=%BASE_DIR%LIB_PATH;%PATH%;SYSTEM_LIB_PATH +SET PATH=%BASE_DIR%CQT_LIB_PATH;%PATH%;CQT_SYSTEM_LIB_PATH SET CQT_PKG_ROOT=%BASE_DIR% -SET CQT_RUN_FILE=%BASE_DIR%BASE_NAME.bat +SET CQT_RUN_FILE=%BASE_DIR%CQT_BASE_NAME.bat -CUSTOM_SCRIPT_BLOCK +CQT_CUSTOM_SCRIPT_BLOCK -RUN_COMMAND +CQT_RUN_COMMAND diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 54a088a..1a83394 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -196,28 +196,31 @@ QHash<QString, QString> MetaFileManager::toReplace(const QString& target, QFileInfo targetInfo(target); QHash<QString, QString> result = { - {"CQT_BIN_PATH", distro.getBinOutDir()}, - {"CQT_LIB_PATH", distro.getLibOutDir()}, - {"CQT_QML_PATH", distro.getQmlOutDir()}, - {"CQT_PLUGIN_PATH", distro.getPluginsOutDir()}, - {"CQT_SYSTEM_LIB_PATH", distro.getLibOutDir() + DeployCore::systemLibsFolderName()}, - {"CQT_BASE_NAME", targetInfo.baseName()} + {"CQT_BIN_PATH", QDir::toNativeSeparators(distro.getBinOutDir())}, + {"CQT_LIB_PATH", QDir::toNativeSeparators(distro.getLibOutDir())}, + {"CQT_QML_PATH", QDir::toNativeSeparators(distro.getQmlOutDir())}, + {"CQT_PLUGIN_PATH", QDir::toNativeSeparators(distro.getPluginsOutDir())}, + {"CQT_SYSTEM_LIB_PATH", QDir::toNativeSeparators(distro.getLibOutDir() + DeployCore::systemLibsFolderName())}, + {"CQT_BASE_NAME", QDir::toNativeSeparators(targetInfo.baseName())} }; bool fGui = DeployCore::isGui(_mudulesMap.value(target)); - if (targetInfo.completeSuffix().compare(".exe", Qt::CaseInsensitive) == 0) { + if (targetInfo.completeSuffix().compare("exe", Qt::CaseInsensitive) == 0) { result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(true)); // Run application as invoke of the console for consle applications // And run gui applciation in the detached mode. QString runCmd; if (fGui) { - runCmd = "start \"" + targetInfo.baseName() + "\" /B " + + runCmd = "start \"" + targetInfo.baseName() + "\" %0 " + "\"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; + runCmd = QDir::toNativeSeparators(runCmd).arg("/B"); + } else { runCmd = "call \"%BASE_DIR%" + distro.getBinOutDir() + targetInfo.fileName() + "\" %*"; + runCmd = QDir::toNativeSeparators(runCmd); } result.insert("CQT_RUN_COMMAND", runCmd); @@ -227,7 +230,7 @@ QHash<QString, QString> MetaFileManager::toReplace(const QString& target, QString runCmd = "\"$BASE_DIR" + distro.getBinOutDir() + targetInfo.fileName() + "\" \"$@\" "; - result.insert("CQT_RUN_COMMAND", runCmd); + result.insert("CQT_RUN_COMMAND", QDir::toNativeSeparators(runCmd)); } return result; From 27bddc840d50932c8c6031f7c07b729ca206e6e7 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 11 Jun 2021 16:05:23 +0300 Subject: [PATCH 056/222] ref #519 fix bat files --- Deploy/metafilemanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 54a088a..e039ed3 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -207,7 +207,7 @@ QHash<QString, QString> MetaFileManager::toReplace(const QString& target, bool fGui = DeployCore::isGui(_mudulesMap.value(target)); - if (targetInfo.completeSuffix().compare(".exe", Qt::CaseInsensitive) == 0) { + if (targetInfo.completeSuffix().compare("exe", Qt::CaseInsensitive) == 0) { result.insert("CQT_CUSTOM_SCRIPT_BLOCK", generateCustoScriptBlok(true)); // Run application as invoke of the console for consle applications From 755629dcbcc5d7b88e7d19d5bb6c435a1fcae500 Mon Sep 17 00:00:00 2001 From: EndrII <endriimail@gmail.com> Date: Fri, 11 Jun 2021 16:12:36 +0300 Subject: [PATCH 057/222] ref #519 fix windows 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 2a6bc5c..20ba059 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1513,7 +1513,7 @@ void deploytest::testDisableRunScripts() { comapareTreeqif -= utils.createTree({DISTRO_DIR + "/TestOnlyC.sh", DISTRO_DIR + "/TestOnlyC.bat"}); // Run deploy installer - runTestParams({"-bin", bin, "clear", + runTestParams({"-bin", bin, "clear", "-libDir", TestQtDir + "/bin", "-disableRunScript", "TestOnlyC"}, &comapareTreeqif); } From d404afaa077ab8af0fad4a33650d0823bb114e2c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 09:58:46 +0300 Subject: [PATCH 058/222] ref #621 "added qifOut option" --- Deploy/Distributions/qif.cpp | 4 ++++ Deploy/deploycore.cpp | 1 + UnitTests/tst_deploytest.cpp | 18 ++++++++++++++++++ md/en/Options.md | 1 + md/ru/Options.md | 1 + 5 files changed, 25 insertions(+) diff --git a/Deploy/Distributions/qif.cpp b/Deploy/Distributions/qif.cpp index 8d47ded..413a76c 100644 --- a/Deploy/Distributions/qif.cpp +++ b/Deploy/Distributions/qif.cpp @@ -248,6 +248,10 @@ QString QIF::installerFile() const { #else QString sufix = ".exe"; #endif + QString qifOut = QuasarAppUtils::Params::getArg("qifOut"); + if (qifOut.size()) { + return DeployCore::_config->getTargetDir() + "/" + qifOut; + } return DeployCore::_config->getTargetDir() + "/Installer" + generalInfo.Name + sufix; } diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 16f541d..ca8f01d 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -321,6 +321,7 @@ void DeployCore::help() { " Available styles: quasar, quasarDark"}, {"-qifBanner [path/to/banner.png]", "Sets path to the banner png file."}, {"-qifLogo [path/to/logo.png]", "Sets path to the logo png file."}, + {"-qifOut [nameOfOutputInstallerFile.run", "Sets name of output qifw installer."}, } }, { diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 20ba059..701583e 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -184,6 +184,7 @@ private slots: void testDisableShortcuts(); void testDisableRunScripts(); + void testQifOut(); void customTest(); }; @@ -1517,6 +1518,23 @@ void deploytest::testDisableRunScripts() { "-disableRunScript", "TestOnlyC"}, &comapareTreeqif); } +void deploytest::testQifOut() { + TestUtils utils; + +#ifdef Q_OS_UNIX + QString bin = TestBinDir + "TestOnlyC"; +#else + QString bin = TestBinDir + "TestOnlyC.exe"; +#endif + + auto result = utils.createTree({{DISTRO_DIR + "/QIF_OUT"}, + {DISTRO_DIR + "/QIF_OUT.md5"}}); + + // Run deploy installer + runTestParams({"-bin", bin, "clear", + "qif", "-qifOut", "QIF_OUT"}, &result); +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); diff --git a/md/en/Options.md b/md/en/Options.md index 1fbc7a6..7fbd496 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -149,6 +149,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Sets the path to the CSS style file or sets the default style. Available styles: quasar | | -qifBanner [path/to/banner.png]| Sets path to the banner png file. | | -qifLogo [path/to/logo.png]| Sets path to the logo png file. | +| -qifOut [nameOfOutputInstallerFile.run] | Sets name of output qifw installer. | #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.4/gcc_64/bin/qmake clear diff --git a/md/ru/Options.md b/md/ru/Options.md index 09d4415..905db24 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -145,6 +145,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar | | -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | | -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | +| -qifOut [nameOfOutputInstallerFile.run] | Устанавливает имя выходного установщика qifw. | From d4be53d3bd9c5174e869fe6e604e366d4b21de01 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 10:38:24 +0300 Subject: [PATCH 059/222] ref #621 fix windows tests --- Deploy/deploycore.cpp | 2 +- UnitTests/tst_deploytest.cpp | 6 +++--- md/en/Options.md | 2 +- md/ru/Options.md | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index ca8f01d..d7c06d9 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -321,7 +321,7 @@ void DeployCore::help() { " Available styles: quasar, quasarDark"}, {"-qifBanner [path/to/banner.png]", "Sets path to the banner png file."}, {"-qifLogo [path/to/logo.png]", "Sets path to the logo png file."}, - {"-qifOut [nameOfOutputInstallerFile.run", "Sets name of output qifw installer."}, + {"-qifOut [nameOfOutputInstallerFile.run", "Sets name of output qifw installer. Warning: For windows installer automatically added exe suffix."}, } }, { diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 701583e..a5b0c76 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1527,12 +1527,12 @@ void deploytest::testQifOut() { QString bin = TestBinDir + "TestOnlyC.exe"; #endif - auto result = utils.createTree({{DISTRO_DIR + "/QIF_OUT"}, - {DISTRO_DIR + "/QIF_OUT.md5"}}); + auto result = utils.createTree({{DISTRO_DIR + "/QIF_OUT.exe"}, + {DISTRO_DIR + "/QIF_OUT.exe.md5"}}); // Run deploy installer runTestParams({"-bin", bin, "clear", - "qif", "-qifOut", "QIF_OUT"}, &result); + "qif", "-qifOut", "QIF_OUT.exe"}, &result); } void deploytest::customTest() { diff --git a/md/en/Options.md b/md/en/Options.md index 7fbd496..f1d0f4b 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -149,7 +149,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Sets the path to the CSS style file or sets the default style. Available styles: quasar | | -qifBanner [path/to/banner.png]| Sets path to the banner png file. | | -qifLogo [path/to/logo.png]| Sets path to the logo png file. | -| -qifOut [nameOfOutputInstallerFile.run] | Sets name of output qifw installer. | +| -qifOut [nameOfOutputInstallerFile.run] | Sets name of output qifw installer. Warning: For windows installer automatically added exe suffix. | #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.4/gcc_64/bin/qmake clear diff --git a/md/ru/Options.md b/md/ru/Options.md index 905db24..f9dad0d 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -145,7 +145,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar | | -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | | -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | -| -qifOut [nameOfOutputInstallerFile.run] | Устанавливает имя выходного установщика qifw. | +| -qifOut [nameOfOutputInstallerFile.run] | Устанавливает имя выходного установщика qifw. Предупреждение: для установщика Windows автоматически добавляется суффикс exe. | From c9440980df9ec2a7b5d3c2579c6cb2cd3c257760 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 10:45:46 +0300 Subject: [PATCH 060/222] fix documentation about creating shortcuts --- md/en/DisableShortcats.md | 137 +++----------------------------------- md/en/Options.md | 4 +- md/ru/DisableShortcats.md | 134 ++----------------------------------- md/ru/Options.md | 4 +- 4 files changed, 19 insertions(+), 260 deletions(-) diff --git a/md/en/DisableShortcats.md b/md/en/DisableShortcats.md index e1e4837..5dc9a41 100644 --- a/md/en/DisableShortcats.md +++ b/md/en/DisableShortcats.md @@ -5,136 +5,15 @@ Disabling shortcuts for multi targets distribution Kit in the Qt Installer frame Some times we need to disable creating automaticly shortcuts for some applications. For solve this problem i recomendet override the default qt installer framework template. -For this you need to extract default template for your case. You can get more infrmation in this [page](ExtractDefaultsTemplates.md). +# Примечание +В CQtDeployer 1.5.1 вы можете добавить опцию -disableShortcuts для отключения автоматизации создания ярлыков. -## Case +### Пример: -I have a distribution that deployed using next command: - -``` bash -cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif -targetPackage MyDistribution +```bash +cqtdeployer -disableShortCut targetName,target2Name ``` -### where: -* **-bin myExecutableFile1,myExecutableFile2** - sets executable files. -* **-qmake /qmake/path** - sets path to your qmake. -* **qif** - option for enabling Qt Installer FrameWork Distributions. -* **-targetPackage MyDistribution** - sets new name for distribution pacakge. - -To add myExecutableFile2 to the shortcut creation exception list you need to do the following steps: - -1. Extract default template. - For extraction default template you need to add into your commnad the getDefaultTemplate option. Alsu you should add targetDir option to sets path of output files. - - ``` bash - cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif getDefaultTemplate -targetDir qifTemplate -targetPackage MyDistribution - ``` - - ### where: - * **-targetDir qifTemplate** - sets target dir for tempalte. - * **getDefaultTemplate** - option for extract default template. - - - So after this you get a default qif template in the targetDir. - - ``` bash - ~/qifTemplate$ tree - . - └── defaultQIFWTemplate - ├── config - │ ├── config.xml - │ └── controlScript.qs - └── packages - └── Application - └── meta - ├── installscript.qs - └── package.xml - - 5 directories, 4 files - - ``` - -2. Change you default template. - For disabling shortcuts you need to change the generateShortCutCmd method of the your package. In the my case it is **defaultQIFWTemplate/packages/Application/meta/installscript.qs** - - This is default implementation of install script: - ``` js - function Component() { - - } - - function extractFileName(path) { - const fullName = path.substring(path.lastIndexOf('/') + 1); - - const index = fullName.lastIndexOf('.'); - if (index >= 0) { - return fullName.substring(0, index) - } - - return fullName; - } - - function generateShortCutCmd(cmd) { - if (systemInfo.kernelType === "winnt") { - - console.log("create icons!!! on Windows"); - - component.addOperation( - "CreateShortcut", - "@TargetDir@/" + cmd + ".bat", - "@DesktopDir@/" + extractFileName(cmd) + ".lnk", - "iconPath=@TargetDir@/icons/Icon.png", - "iconId=0"); - - } - - - if (systemInfo.kernelType === "linux") { - console.log("create icons!!! on LINUX"); - const name = extractFileName(cmd); - component.addOperation("CreateDesktopEntry", - "@HomeDir@/.local/share/applications/" + name + ".desktop", - "Version=@Version@\n - Type=Application\n - Terminal=false\n - Exec=\"@TargetDir@/" + cmd + ".sh\"\n - Name=" + name + "\n - Icon=@TargetDir@/icons/Icon.png\n - Name[en_US]=" + name); - - console.log("create icons!!! on LINUX done"); - } - } - - Component.prototype.createOperations = function() { - // call default implementation to actually install README.txt! - component.createOperations(); - - const cmdArray = []; // will be changed in cqtdeployer - - cmdArray.forEach( function (item){ - generateShortCutCmd(item); - }); - - } - ``` - - Add into begin of the generateShortCutCmd method next lines for disable generate shorcuts of the *"myExecutableFile2"* application: - - ``` js - function generateShortCutCmd(cmd) { - if (cmd.include("myExecutableFile2")) - return; - ... - } - ``` - -3. Add your overriden template into your deploy command. - ``` bash - cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif qifTemplate/defaultQIFWTemplate - ``` - -All done. Now you have a distribution with disabled shortcut for the myExecutableFile2 application. - - -## Note If you use config File or another deploy command then your deploy configuration should be equals with generate template configuration. \ No newline at end of file +```bash +cqtdeployer -bin myProgramm.exe -disableShortCut myProgramm +``` diff --git a/md/en/Options.md b/md/en/Options.md index 1fbc7a6..4d54789 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -128,8 +128,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Sets path to icon for a targets | -| -disableRunScript [target;val,val] | Disables a generation of run script for selected targets| -| -disableShortCut [target;val,val] | Disables a generation of shortcut for selected targets | +| -disableRunScript [target,target2,target3] | Disables a generation of run script for selected targets| +| -disableShortCut [target,target2,target3] | Disables a generation of shortcut for selected targets | | -runScript [target;val,val] | forces cqtdeployer swap default run script to new from the arguments of option. This option copy all content from input file and insert all code into runScript.sh or .bat. Example of use: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh" For get more information about customScript see the documentation [page](CustomScripts.md)| ### Plugins Controll Options diff --git a/md/ru/DisableShortcats.md b/md/ru/DisableShortcats.md index f126d5e..9a676eb 100644 --- a/md/ru/DisableShortcats.md +++ b/md/ru/DisableShortcats.md @@ -5,135 +5,15 @@ Иногда нам нужно отключить автоматическое создание ярлыков для некоторых приложений. Для решения этой проблемы я рекомендую переопределить шаблон фреймворка установщика qt по умолчанию. -Для этого вам нужно извлечь шаблон по умолчанию для вашего случая. Вы можете получить дополнительную информацию на этой [странице](ExtractDefaultsTemplates.md). +# Note +From CQtDeployer 1.5.1 you can add option -disableShortcuts for disable automation create shortcuts. -## Кейс +### Example: -У меня есть дистрибутив, развернутый с помощью следующей команды: +```bash +cqtdeployer -disableShortCut targetName,target2Name +``` ```bash -cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif +cqtdeployer -bin myProgramm.exe -disableShortCut myProgramm ``` -### где: - -* **-bin myExecutableFile1, myExecutableFile2** - устанавливает исполняемые файлы. -* **-qmake /qmake/path** - устанавливает путь к вашему qmake. -* **qif** - опция для включения дистрибутивов Qt Installer FrameWork. -* **-targetPackage MyDistribution** - устанавливает новое имя для пакета распространения. - -Чтобы добавить myExecutableFile2 в список исключений создания ярлыка, вам необходимо проделать следующие шаги: - - - -1. Извлеките шаблон по умолчанию. - Для извлечения шаблона по умолчанию вам необходимо добавить в свою команду параметр getDefaultTemplate. Также вам следует добавить опцию targetDir для установки пути к выходным файлам. - - ```bash - cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif getDefaultTemplate -targetDir qifTemplate - ``` - - ### где: - * **- targetDir qifTemplate** - устанавливает целевой каталог для tempalte. - * **getDefaultTemplate** - опция для извлечения шаблона по умолчанию. - - Итак, после этого вы получите шаблон qif по умолчанию в targetDir. - ```bash - ~/qifTemplate$ tree - . - └── defaultQIFWTemplate - ├── config - │ ├── config.xml - │ └── controlScript.qs - └── packages - └── Application - └── meta - ├── installscript.qs - └── package.xml - - 5 directories, 4 files - - ``` - -2. Измените шаблон по умолчанию. - Для отключения ярлыков вам необходимо изменить метод generateShortCutCmd вашего пакета. В моем случае это **defaultQIFWTemplate/packages/Application/meta/installscript.qs** - - Это реализация сценария установки по умолчанию: - ``` js - function Component() { - - } - - function extractFileName(path) { - const fullName = path.substring(path.lastIndexOf('/') + 1); - - const index = fullName.lastIndexOf('.'); - if (index >= 0) { - return fullName.substring(0, index) - } - - return fullName; - } - - function generateShortCutCmd(cmd) { - if (systemInfo.kernelType === "winnt") { - - console.log("create icons!!! on Windows"); - - component.addOperation( - "CreateShortcut", - "@TargetDir@/" + cmd + ".bat", - "@DesktopDir@/" + extractFileName(cmd) + ".lnk", - "iconPath=@TargetDir@/icons/Icon.png", - "iconId=0"); - - } - - - if (systemInfo.kernelType === "linux") { - console.log("create icons!!! on LINUX"); - const name = extractFileName(cmd); - component.addOperation("CreateDesktopEntry", - "@HomeDir@/.local/share/applications/" + name + ".desktop", - "Version=@Version@\n - Type=Application\n - Terminal=false\n - Exec=\"@TargetDir@/" + cmd + ".sh\"\n - Name=" + name + "\n - Icon=@TargetDir@/icons/Icon.png\n - Name[en_US]=" + name); - - console.log("create icons!!! on LINUX done"); - } - } - - Component.prototype.createOperations = function() { - // call default implementation to actually install README.txt! - component.createOperations(); - - const cmdArray = []; // will be changed in cqtdeployer - - cmdArray.forEach( function (item){ - generateShortCutCmd(item); - }); - - } - ``` - - Добавьте в начало метода generateShortCutCmd следующие строки для отключения генерации ярлыков приложения *"myExecutableFile2"*: - - ``` js - function generateShortCutCmd(cmd) { - if (cmd.include("myExecutableFile2")) - return; - ... - } - ``` - -3. Добавьте измененный шаблон в команду развертывания. - ```bash - cqtdeployer -bin myExecutableFile1,myExecutableFile2 -qmake /qmake/path qif qifTemplate/defaultQIFWTemplate - ``` - -Все сделано. Теперь у вас есть дистрибутив с отключенным ярлыком для приложения myExecutableFile2. - -## Примечание. Если вы используете файл конфигурации или другую команду развертывания, ваша конфигурация развертывания должна соответствовать конфигурации генерации шаблона. \ No newline at end of file diff --git a/md/ru/Options.md b/md/ru/Options.md index 09d4415..6222e58 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -133,8 +133,8 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | Option | Descriptiion | | ----------------------------|---------------------------------------------------------- | | -extraPlugin [пакет; val1; val2, SingeleVal] | Устанавливает дополнительный путь к стороннему плагину приложения | -| -enablePlugins [пакет; val1; val2, SingeleVal] | Включает дополнительные плагины для распространения. | -| -disablePlugins [пакет; val1; val2, SingeleVal] | Отключает плагины для распространения. | +| -enablePlugins [target,target2,target3] | Включает дополнительные плагины для распространения. | +| -disablePlugins [target,target2,target3] | Отключает плагины для распространения. | | | Вы можете отключить любой плагин вашей сборки Qt, просто проверте список доступных плагинов в свой qlFolder/plugins папке. | | Пример: Если вы хотите отключить плагин qxcb: -disablePlugins qxcb. Обратите внимание, что имя плагина указывается без его расширения. From 3d847461f179cd8297b25aefcd0999d92847c9f6 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 11:24:19 +0300 Subject: [PATCH 061/222] swap of english and russian text in docs --- md/en/DisableShortcats.md | 6 +++--- md/ru/DisableShortcats.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/md/en/DisableShortcats.md b/md/en/DisableShortcats.md index 5dc9a41..f9a4233 100644 --- a/md/en/DisableShortcats.md +++ b/md/en/DisableShortcats.md @@ -5,10 +5,10 @@ Disabling shortcuts for multi targets distribution Kit in the Qt Installer frame Some times we need to disable creating automaticly shortcuts for some applications. For solve this problem i recomendet override the default qt installer framework template. -# Примечание -В CQtDeployer 1.5.1 вы можете добавить опцию -disableShortcuts для отключения автоматизации создания ярлыков. +# Note +From CQtDeployer 1.5.1 you can add option -disableShortcuts for disable automation create shortcuts. -### Пример: +### Example: ```bash cqtdeployer -disableShortCut targetName,target2Name diff --git a/md/ru/DisableShortcats.md b/md/ru/DisableShortcats.md index 9a676eb..e4d76fa 100644 --- a/md/ru/DisableShortcats.md +++ b/md/ru/DisableShortcats.md @@ -5,10 +5,10 @@ Иногда нам нужно отключить автоматическое создание ярлыков для некоторых приложений. Для решения этой проблемы я рекомендую переопределить шаблон фреймворка установщика qt по умолчанию. -# Note -From CQtDeployer 1.5.1 you can add option -disableShortcuts for disable automation create shortcuts. +# Примечание +В CQtDeployer 1.5.1 вы можете добавить опцию -disableShortcuts для отключения автоматизации создания ярлыков. -### Example: +### Пример: ```bash cqtdeployer -disableShortCut targetName,target2Name From d7ebd75b897fba1100b00af0d0737eea8cefd09a Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 11:28:50 +0300 Subject: [PATCH 062/222] Update md/en/Options.md Co-authored-by: Mozi <29089388+pzhlkj6612@users.noreply.github.com> --- md/en/Options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/en/Options.md b/md/en/Options.md index f1d0f4b..22f5ac3 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -149,7 +149,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Sets the path to the CSS style file or sets the default style. Available styles: quasar | | -qifBanner [path/to/banner.png]| Sets path to the banner png file. | | -qifLogo [path/to/logo.png]| Sets path to the logo png file. | -| -qifOut [nameOfOutputInstallerFile.run] | Sets name of output qifw installer. Warning: For windows installer automatically added exe suffix. | +| -qifOut [nameOfOutputInstallerFile.run] | Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically. | #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.4/gcc_64/bin/qmake clear From e12febc7d2de98c4d6b2efb2e37391f0bcee2dee Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 11:30:04 +0300 Subject: [PATCH 063/222] Update Options.md --- md/ru/Options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/ru/Options.md b/md/ru/Options.md index f9dad0d..411082e 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -145,7 +145,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar | | -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | | -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | -| -qifOut [nameOfOutputInstallerFile.run] | Устанавливает имя выходного установщика qifw. Предупреждение: для установщика Windows автоматически добавляется суффикс exe. | +| -qifOut [nameOfOutputInstallerFile.run] | Устанавливает имя выходного установщика qifw. Примечание: для установщика Windows автоматически добавляется суффикс exe. | From 911bf5b7ec9a73cd8bdd6e0a57390fec2541cd5c Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 11:30:38 +0300 Subject: [PATCH 064/222] Update deploycore.cpp --- Deploy/deploycore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index d7c06d9..0009c75 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -321,7 +321,7 @@ void DeployCore::help() { " Available styles: quasar, quasarDark"}, {"-qifBanner [path/to/banner.png]", "Sets path to the banner png file."}, {"-qifLogo [path/to/logo.png]", "Sets path to the logo png file."}, - {"-qifOut [nameOfOutputInstallerFile.run", "Sets name of output qifw installer. Warning: For windows installer automatically added exe suffix."}, + {"-qifOut [nameOfOutputInstallerFile.run", "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically."}, } }, { From 8f33310277ae25c2f1471759374c724de5392be1 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 14 Jun 2021 11:34:01 +0300 Subject: [PATCH 065/222] Update md/en/DisableShortcats.md Co-authored-by: Mozi <29089388+pzhlkj6612@users.noreply.github.com> --- md/en/DisableShortcats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/en/DisableShortcats.md b/md/en/DisableShortcats.md index f9a4233..3787bc3 100644 --- a/md/en/DisableShortcats.md +++ b/md/en/DisableShortcats.md @@ -6,7 +6,7 @@ Some times we need to disable creating automaticly shortcuts for some applicatio For solve this problem i recomendet override the default qt installer framework template. # Note -From CQtDeployer 1.5.1 you can add option -disableShortcuts for disable automation create shortcuts. +Starting from CQtDeployer 1.5.1, you can use the -disableShortcuts option to disable the automatic creation of shortcuts. ### Example: From 7e791bf1fc0f28aa1e4c120e02bb863c6ec896f4 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Tue, 15 Jun 2021 15:59:31 +0300 Subject: [PATCH 066/222] Update md/en/Options.md Co-authored-by: Mozi <29089388+pzhlkj6612@users.noreply.github.com> --- md/en/Options.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/md/en/Options.md b/md/en/Options.md index 4d54789..4d42dee 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -128,8 +128,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| | -icon [target;val,val] | Sets path to icon for a targets | -| -disableRunScript [target,target2,target3] | Disables a generation of run script for selected targets| -| -disableShortCut [target,target2,target3] | Disables a generation of shortcut for selected targets | +| -disableRunScript [target,target2,target3] | Disables the generation of run script for selected targets| +| -disableShortCut [target,target2,target3] | Disables the generation of shortcut for selected targets | | -runScript [target;val,val] | forces cqtdeployer swap default run script to new from the arguments of option. This option copy all content from input file and insert all code into runScript.sh or .bat. Example of use: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh" For get more information about customScript see the documentation [page](CustomScripts.md)| ### Plugins Controll Options From 51b2ed9c5ad8c254a4114c192aaabb357eea2d6e Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Tue, 15 Jun 2021 17:12:53 +0300 Subject: [PATCH 067/222] Update Deploy/deploycore.cpp Co-authored-by: Mozi <29089388+pzhlkj6612@users.noreply.github.com> --- Deploy/deploycore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 0009c75..49ddd6c 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -321,7 +321,7 @@ void DeployCore::help() { " Available styles: quasar, quasarDark"}, {"-qifBanner [path/to/banner.png]", "Sets path to the banner png file."}, {"-qifLogo [path/to/logo.png]", "Sets path to the logo png file."}, - {"-qifOut [nameOfOutputInstallerFile.run", "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically."}, + {"-qifOut [nameOfOutputInstallerFile", "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically."}, } }, { From 40b78922abd8ba6cb7423f8387ee6889340188bb Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Tue, 15 Jun 2021 17:25:24 +0300 Subject: [PATCH 068/222] Apply suggestions from code review Co-authored-by: Mozi <29089388+pzhlkj6612@users.noreply.github.com> --- md/en/Options.md | 2 +- md/ru/Options.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/md/en/Options.md b/md/en/Options.md index 22f5ac3..3180b23 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -149,7 +149,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Sets the path to the CSS style file or sets the default style. Available styles: quasar | | -qifBanner [path/to/banner.png]| Sets path to the banner png file. | | -qifLogo [path/to/logo.png]| Sets path to the logo png file. | -| -qifOut [nameOfOutputInstallerFile.run] | Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically. | +| -qifOut [nameOfOutputInstallerFile] | Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically. | #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.4/gcc_64/bin/qmake clear diff --git a/md/ru/Options.md b/md/ru/Options.md index 411082e..bf00af1 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -145,7 +145,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifStyle [path/to/style.css]| Устанавливает путь к CSS файлу стиля или устанавливает стиль по умолчанию. Доступные стили: quasar | | -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | | -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | -| -qifOut [nameOfOutputInstallerFile.run] | Устанавливает имя выходного установщика qifw. Примечание: для установщика Windows автоматически добавляется суффикс exe. | +| -qifOut [nameOfOutputInstallerFile] | Устанавливает имя выходного установщика qifw. Примечание: для установщика Windows автоматически добавляется суффикс exe. | From 55cb668725967fdd583878fb514f15449568bda0 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 15 Jun 2021 17:55:04 +0300 Subject: [PATCH 069/222] cqtdeployer 1.5.2 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 4 ++-- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index a8f196d..38e136b 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.1.1 +VERSION = 1.5.2.0 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index ea5141d..3b026bf 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.1.1</Version> + <Version>1.5.2.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 13e3f88..9dd4338 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.1.1</Version> + <Version>1.5.2.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 94540d1..dba006b 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.1.1 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.0 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 65da17f..01ac1e6 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,11 +2,11 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.1.1</Version> + <Version>1.5.2.0</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> - <ReleaseDate>2021-05-23</ReleaseDate> + <ReleaseDate>2021-06-15</ReleaseDate> <SortingPriority>201</SortingPriority> <Translations> <Translation>ru.qm</Translation> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index cf82bb2..2ced75d 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.1.1 +Version=1.5.2.0 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.1.1 +X-GNOME-Bugzilla-Version=1.5.2.0 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index bf0126d..7a81b88 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.1.1' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.0' # 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 d08d5322cb54215cf4ef6639653e721570c11d07 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 15 Jun 2021 18:04:29 +0300 Subject: [PATCH 070/222] fix change log --- md/en/Changelog.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/md/en/Changelog.md b/md/en/Changelog.md index 318ecbe..fb0d77d 100755 --- a/md/en/Changelog.md +++ b/md/en/Changelog.md @@ -1,5 +1,26 @@ # Change log +## CQtDeployer 1.5.2 + +### New parameters + +* Added **qifOut** option for set name of the output installer +* Added **disableRunScript** option for disabling the generation of run script for selected targets +* Added **disableShortCut** option for disabling the generation of shortcut for selected targets + +### Fixes + +* Fix documentation +* Fix deploy openssl libraries + +## CQtDeployer 1.5.1 + +### Fixes + +* Fix deploy multi target Debian packages +* Fix deploy qt6 qml applications + + Change log for all versions of the CQtDeployer. ## CQtDeployer 1.5.0 From dc00d225da7b7f6168d1c3602ba800414e80425f Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Sun, 20 Jun 2021 15:26:53 +0300 Subject: [PATCH 071/222] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index befdb5e..46f06e0 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ See list of all options [here](md/en/Options.md) <img src="https://user-images.githubusercontent.com/12465465/78639719-197a1180-78b7-11ea-9e82-a03dd43f4bd2.png" height="400"> #### Project installer after deploy with the qif and qifStyle option. + ``` bash #linux cqtdeployer -bin Application qif -qifStyle quasar @@ -70,6 +71,7 @@ See list of all options [here](md/en/Options.md) cqtdeployer -bin Application.exe -qmake /path/to/qmake.exe qif -qifStyle quasar ``` + <img src="https://user-images.githubusercontent.com/12465465/78639720-1aab3e80-78b7-11ea-9604-3dcdd7c78482.png" height="400"> ``` bash @@ -80,6 +82,7 @@ See list of all options [here](md/en/Options.md) cqtdeployer -bin Application.exe -qmake /path/to/qmake.exe qif -qifStyle path/to/myStyle.css ``` + <img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"> ## Build and install From ba0acf98932c1276547942023013e5c35aaec5cd Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 23 Jun 2021 12:36:10 +0300 Subject: [PATCH 072/222] ref #630 fix generate packages shortcuts --- Deploy/targetinfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index 5259953..9c9c823 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -71,7 +71,7 @@ void TargetInfo::setRunScript(const QString &newRunScript) { QString TargetInfo::getRunScriptFile() const { if (_fEnableRunScript) { - QFileInfo runscriptInfo(_runScript); + QFileInfo runscriptInfo(getRunScript()); QFileInfo info(getName()); return info.baseName() + "." + runscriptInfo.completeSuffix(); From 9fb66dd673fabf9d6042ef21597e1e80feb5f76d Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 23 Jun 2021 15:02:03 +0300 Subject: [PATCH 073/222] v 1.5.2.1 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 38e136b..42e5b51 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.0 +VERSION = 1.5.2.1 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 3b026bf..6101a03 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.0</Version> + <Version>1.5.2.1</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 9dd4338..954132c 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.0</Version> + <Version>1.5.2.1</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index dba006b..327c5fd 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.0 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.1 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 01ac1e6..cc41297 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.0</Version> + <Version>1.5.2.1</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 2ced75d..24fbd53 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.0 +Version=1.5.2.1 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.2.0 +X-GNOME-Bugzilla-Version=1.5.2.1 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7a81b88..eb0bd3a 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.0' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.1' # 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 580f4251a79ad8bd48697e928240e2520ab7d7c4 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 23 Jun 2021 15:43:20 +0300 Subject: [PATCH 074/222] try fix deploy step --- QIFData/scripts/QIF.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QIFData/scripts/QIF.py b/QIFData/scripts/QIF.py index 30e322d..8908651 100755 --- a/QIFData/scripts/QIF.py +++ b/QIFData/scripts/QIF.py @@ -20,8 +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/", +# "-b", +# "https://mirrors.ocf.berkeley.edu/qt/", "--outputdir", PATHQIF, PLATFORM, From fb4391ff3a9232dbed7c72c7c974312f103d6c53 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 28 Jun 2021 10:48:46 +0300 Subject: [PATCH 075/222] fix size of custom installer --- .../Templates/qif/config custom designe/config.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Deploy/Distributions/Templates/qif/config custom designe/config.xml b/Deploy/Distributions/Templates/qif/config custom designe/config.xml index 461812f..38e2e72 100644 --- a/Deploy/Distributions/Templates/qif/config custom designe/config.xml +++ b/Deploy/Distributions/Templates/qif/config custom designe/config.xml @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <Installer> - <WizardDefaultWidth>800px</WizardDefaultWidth> - <WizardDefaultHeight>500px</WizardDefaultHeight> <Name>$NAME</Name> <Version>$VERSION</Version> <Title>$NAME</Title> From c47513ecefd12267df6db58c54854e28bcb466bb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 28 Jun 2021 10:51:49 +0300 Subject: [PATCH 076/222] v1.5.2.2 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 42e5b51..9e3b3a5 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.1 +VERSION = 1.5.2.2 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 6101a03..751d319 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.1</Version> + <Version>1.5.2.2</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 954132c..c0e8e1c 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.1</Version> + <Version>1.5.2.2</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 327c5fd..82a40d7 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.1 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.2 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index cc41297..7901eba 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.1</Version> + <Version>1.5.2.2</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 24fbd53..450b91b 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.1 +Version=1.5.2.2 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.2.1 +X-GNOME-Bugzilla-Version=1.5.2.2 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index eb0bd3a..1b6970a 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.1' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.2' # 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 0564b5b36c0a3699576b6d39cc3a4e709c5668c4 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 30 Jun 2021 16:43:37 +0300 Subject: [PATCH 077/222] fix customScript warning --- Deploy/metafilemanager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 1a83394..905e83c 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -101,11 +101,6 @@ bool MetaFileManager::createRunScriptLinux(const QString &target) { QString MetaFileManager::generateCustoScriptBlok(bool bat) const { - QuasarAppUtils::Params::log("The customScript option are depricated!." - " This option will be removed into next release cqtdeployer." - " Please use the runScript option", - QuasarAppUtils::Warning); - QString res = ""; QString commentMarker = "# "; @@ -115,6 +110,12 @@ QString MetaFileManager::generateCustoScriptBlok(bool bat) const { auto cstSh = QuasarAppUtils::Params::getArg("customScript", ""); if (cstSh.size()) { + + QuasarAppUtils::Params::log("The customScript option are depricated!." + " This option will be removed into next release cqtdeployer." + " Please use the runScript option", + QuasarAppUtils::Warning); + res = "\n" + commentMarker + "Begin Custom Script (generated by customScript flag)\n" "%0\n" + From a5f0bb5c738454af4a1dfff9a584eafc93dfae10 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 1 Jul 2021 17:07:14 +0300 Subject: [PATCH 078/222] added support prefixes for extra data --- Deploy/configparser.cpp | 17 +---------------- Deploy/configparser.h | 1 - Deploy/deploycore.cpp | 15 +++++++++++++++ Deploy/deploycore.h | 7 +++++++ Deploy/extracter.cpp | 8 ++++++++ 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 2058f84..34028aa 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -833,7 +833,7 @@ bool ConfigParser::setTargets(const QStringList &value) { bool isfillList = false; for (const auto &i : value) { - QFileInfo targetInfo = getBinInfo(i); + QFileInfo targetInfo = DeployCore::findFile(i); if (i.isEmpty()) continue; @@ -867,21 +867,6 @@ bool ConfigParser::setTargets(const QStringList &value) { return true; } -QFileInfo ConfigParser::getBinInfo(const QString &bin) { - auto prefixes = QuasarAppUtils::Params::getArg("binPrefix"). - split(DeployCore::getSeparator(0), splitbehavior); - - for (const QString& prefix :qAsConst(prefixes)) { - QFileInfo info(prefix + "/" + bin); - - if (info.isFile()) { - return info; - } - } - - return QFileInfo(bin); -} - bool ConfigParser::setTargetsRecursive(const QString &dir) { if (!setTargetsInDir(dir, true)) { QuasarAppUtils::Params::log("setTargetsInDir failed!", diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 69f3685..2ba99c6 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -67,7 +67,6 @@ private: void setTargetDir(const QString &target = ""); bool setTargets(const QStringList &value); - QFileInfo getBinInfo(const QString& bin); bool setTargetsRecursive(const QString &dir); bool setTargetsInDir(const QString &dir, bool recursive = false); diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 49ddd6c..056d706 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -771,6 +771,21 @@ void DeployCore::printInternalError(const char * function, const char* file, int " about this problem on the official github page" " https://github.com/QuasarApp/CQtDeployer/issues/new/choose. "), QuasarAppUtils::Error); +} + +QFileInfo DeployCore::findFile(const QString &bin) { + auto prefixes = QuasarAppUtils::Params::getArg("binPrefix"). + split(DeployCore::getSeparator(0), splitbehavior); + + for (const QString& prefix :qAsConst(prefixes)) { + QFileInfo info(prefix + "/" + bin); + + if (info.isFile()) { + return info; + } + } + + return QFileInfo(bin); }; QString DeployCore::systemLibsFolderName() { diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 7639b91..b963096 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -295,6 +295,13 @@ public: */ static void printInternalError(const char *function, const char* file, int line); + /** + * @brief findFile This method search input file in prefixes and return absolute path to the found file. If file is not exists the return empty string. + * @param file This is file path. If the file path si absalute path then return @a file value. + * @return file info of the found file. + */ + static QFileInfo findFile(const QString &file); + }; #define internalError() DeployCore::printInternalError(__FUNCTION__, __FILE__, __LINE__) diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 5410dbd..cf6ba72 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -112,6 +112,14 @@ void Extracter::extractExtraDataTargets() { auto &dep = _packageDependencyes[i.key()]; const auto extraData = i.value().extraData(); for (const auto &target : extraData) { + + QFileInfo info = DeployCore::findFile(target); + if (!info.exists()) { + QuasarAppUtils::Params::log("Failed to copy extra data from: " + target + + " Error: target not exists!.", QuasarAppUtils::Warning); + continue; + } + dep.addExtraData(target); } } From 62c98de98d2720f971ef7e55fe802fe780e13775 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 2 Jul 2021 09:13:56 +0300 Subject: [PATCH 079/222] v1.5.2.3 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 9e3b3a5..599a2ad 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.2 +VERSION = 1.5.2.3 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 751d319..05a6e18 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.2</Version> + <Version>1.5.2.3</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index c0e8e1c..1f67fd8 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.2</Version> + <Version>1.5.2.3</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 82a40d7..1d5690b 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.2 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.3 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 7901eba..812f9f3 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.2</Version> + <Version>1.5.2.3</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 450b91b..aeee91a 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.2 +Version=1.5.2.3 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.2.2 +X-GNOME-Bugzilla-Version=1.5.2.3 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 1b6970a..975f58d 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.2' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.3' # 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 871a37e53525c2a2d1d3eda0ff300dec5e6a9ea0 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 2 Jul 2021 16:59:45 +0300 Subject: [PATCH 080/222] cqtdeployer v 1.5.2.4 --- Deploy/Deploy.pro | 2 +- Deploy/configparser.cpp | 2 +- Deploy/deploycore.cpp | 4 ++-- Deploy/deploycore.h | 4 ++-- Deploy/extracter.cpp | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 599a2ad..46091ab 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.3 +VERSION = 1.5.2.4 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 34028aa..bfd3d67 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -833,7 +833,7 @@ bool ConfigParser::setTargets(const QStringList &value) { bool isfillList = false; for (const auto &i : value) { - QFileInfo targetInfo = DeployCore::findFile(i); + QFileInfo targetInfo = DeployCore::findItem(i); if (i.isEmpty()) continue; diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 056d706..c885f45 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -773,14 +773,14 @@ void DeployCore::printInternalError(const char * function, const char* file, int QuasarAppUtils::Error); } -QFileInfo DeployCore::findFile(const QString &bin) { +QFileInfo DeployCore::findItem(const QString &bin) { auto prefixes = QuasarAppUtils::Params::getArg("binPrefix"). split(DeployCore::getSeparator(0), splitbehavior); for (const QString& prefix :qAsConst(prefixes)) { QFileInfo info(prefix + "/" + bin); - if (info.isFile()) { + if (info.exists()) { return info; } } diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index b963096..2628091 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -296,11 +296,11 @@ public: static void printInternalError(const char *function, const char* file, int line); /** - * @brief findFile This method search input file in prefixes and return absolute path to the found file. If file is not exists the return empty string. + * @brief findItem This method search input file in prefixes and return absolute path to the found file. If file is not exists the return empty string. * @param file This is file path. If the file path si absalute path then return @a file value. * @return file info of the found file. */ - static QFileInfo findFile(const QString &file); + static QFileInfo findItem(const QString &file); }; diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index cf6ba72..1ccc164 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -113,7 +113,7 @@ void Extracter::extractExtraDataTargets() { const auto extraData = i.value().extraData(); for (const auto &target : extraData) { - QFileInfo info = DeployCore::findFile(target); + QFileInfo info = DeployCore::findItem(target); if (!info.exists()) { QuasarAppUtils::Params::log("Failed to copy extra data from: " + target + " Error: target not exists!.", QuasarAppUtils::Warning); diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 05a6e18..3b8c0ef 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.3</Version> + <Version>1.5.2.4</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 1f67fd8..299bc4c 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.3</Version> + <Version>1.5.2.4</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 1d5690b..855c2ed 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.3 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.4 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 812f9f3..ddf5ecc 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.3</Version> + <Version>1.5.2.4</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index aeee91a..7348e02 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.3 +Version=1.5.2.4 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.2.3 +X-GNOME-Bugzilla-Version=1.5.2.4 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 975f58d..caa39eb 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.3' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.4' # 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 1af49ce7574ecd113d32900ca2ce74b768ca3994 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 2 Jul 2021 17:21:54 +0300 Subject: [PATCH 081/222] hot fix --- Deploy/Deploy.pro | 2 +- Deploy/extracter.cpp | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 46091ab..5ae8881 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.4 +VERSION = 1.5.2.5 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 1ccc164..c7a733d 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -120,7 +120,7 @@ void Extracter::extractExtraDataTargets() { continue; } - dep.addExtraData(target); + dep.addExtraData(info.absoluteFilePath()); } } } diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 3b8c0ef..d9ee3cb 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.4</Version> + <Version>1.5.2.5</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 299bc4c..0358751 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.4</Version> + <Version>1.5.2.5</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 855c2ed..823f57d 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.4 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.5 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index ddf5ecc..12a8ff1 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.4</Version> + <Version>1.5.2.5</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 7348e02..f98eee3 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.4 +Version=1.5.2.5 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.2.4 +X-GNOME-Bugzilla-Version=1.5.2.5 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index caa39eb..2e8dbbe 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.4' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.5' # 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 56deabe2b49b6fde9c9ef50ef8366a907c8ff57d Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 2 Jul 2021 17:52:16 +0300 Subject: [PATCH 082/222] fix quasar theme --- Deploy/Distributions/Templates/qif/Styles/quasar.css | 1 - 1 file changed, 1 deletion(-) diff --git a/Deploy/Distributions/Templates/qif/Styles/quasar.css b/Deploy/Distributions/Templates/qif/Styles/quasar.css index f5282ce..7ff14bd 100644 --- a/Deploy/Distributions/Templates/qif/Styles/quasar.css +++ b/Deploy/Distributions/Templates/qif/Styles/quasar.css @@ -1,6 +1,5 @@ .QWidget { background-color: rgb(255, 255, 255); - min-width: 640px; } .QLabel { From 05da80982f2acf790372412f5400e8de04fa52f8 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 2 Jul 2021 17:53:05 +0300 Subject: [PATCH 083/222] v 1.5.2.6 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 5ae8881..52a1187 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.5 +VERSION = 1.5.2.6 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index d9ee3cb..25ea7d0 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.5</Version> + <Version>1.5.2.6</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 0358751..c72629d 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.5</Version> + <Version>1.5.2.6</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 823f57d..dd109e6 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.5 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.6 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 12a8ff1..88ee057 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.5</Version> + <Version>1.5.2.6</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index f98eee3..05ba509 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.5 +Version=1.5.2.6 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.2.5 +X-GNOME-Bugzilla-Version=1.5.2.6 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 2e8dbbe..d285983 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.5' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.6' # 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 eeb09c2a18ad19064aa103225271eb22c55a27b8 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Tue, 6 Jul 2021 15:49:21 +0300 Subject: [PATCH 084/222] ref #635 ru changelog update --- md/ru/Changelog.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index 66f49e2..2aa9871 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -2,6 +2,26 @@ Журнал изменений для всех версий CQtDeployer. +## CQtDeployer 1.5.2 + +### Новые параметры + +* Добавлена опция **qifOut** для установки имени выходного установщика +* Добавлена опция **disableRunScript** для отключения генерации сценария запуска для выбранных целей +* Добавлена опция **disableShortCut** для отключения генерации ярлыка для выбранных целей + +### Исправления + +* Фикс документации +* Фикс развертывания библиотек openssl + +## CQtDeployer 1.5.1 + +### Исправления + +* Исправлено развертывание многоцелевых пакетов Debian +* Фикс развертывания qt6 qml приложений + ## CQtDeployer 1.5.0 Alpha ### Исправления - исправления ошибок и улучшения. From 4bf5479c4da66d9508f6749cf4c4be2ad201648d Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Fri, 9 Jul 2021 09:13:18 +0300 Subject: [PATCH 085/222] ref #635 fix ru changelog --- md/ru/Changelog.md | 59 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index 2aa9871..b74c737 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -6,7 +6,7 @@ ### Новые параметры -* Добавлена опция **qifOut** для установки имени выходного установщика +* Добавлена опция **qifOut** для установки имени установщика * Добавлена опция **disableRunScript** для отключения генерации сценария запуска для выбранных целей * Добавлена опция **disableShortCut** для отключения генерации ярлыка для выбранных целей @@ -22,7 +22,64 @@ * Исправлено развертывание многоцелевых пакетов Debian * Фикс развертывания qt6 qml приложений +## CQtDeployer 1.5.0 + +### Нововведения + +- Добавлена новая тема установщика qif "quasarDark". +- Добавлена поддержка работы с кастомным шаблоном для опции qif. +- Добавлена поддержка пакетов debian. +- Добавлены значки поддержки для целей. теперь опция значка работает с целями, но не с пакетами. +- Добавлена поддержка управления файлами пользовательского перевода. +- Добавлена поддержка развертывания неисполняемых данных. (опция extraData) +- Добавлены переменные окружения для развернутых приложений. +- Добавлена поддержка создания пакетов deb. +- Добавлена поддержка создания zip-архивов. +- Добавлена поддержка создания установщика qif с использованием настраиваемого шаблона. +- Добавлена команда инициализации qif по умолчанию шаблона deb (getDefaulttemplate) +- Добавлена поддержка импорта пользовательских скриптов запуска. +- Добавлена поддержка хэшей md5 пакетов. +- Добавлена поддержка Qt6.1. + +### Исправления + +- Исправлена стабильность для опции deploySystem в Windows. +- Исправлен подробный журнал. +- Исправлен общий журнал вывода. +- Исправлены опечатки в логе. +- Исправлено кросс-развертывание arm дистрибутива. +- Исправлено развертывание Qt6 qml +- Исправлены команды PowerShell в Windows. +- исправления ошибок и улучшения. + +### Новые переменные среды + +- CQT_RUN_FILE - эта переменная содержит путь к сценарию выполнения используемого приложения. +- CQT_PKG_ROOT - эта переменная содержит путь к корню текущего пакета. + +### Новые параметры + +- zip - создать ZIP-архив для развертываемых программ +- deb - Создать пакет deb для программы развертывания +- homepage - Устанавливает URL-адрес домашней страницы для пакета +- noQt - игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует фреймворк qt +- allowEmptyPackages - позволяет настраивать пустые пакеты. +- getDefaultTemplate - Извлекает шаблоны deb или qif по умолчанию. +- tr - Добавляет qm файлы в папку переводов. +- extraData - добавляет дополнительные файлы или каталоги как цель. Выбранный каталог будет скопирован в папку extraDataOut с сохранением собственной структуры. +- extraDataOut - Устанавливает путь к каталогу с дополнительными файлами данных. +- prefix - Устанавливает префикс для пакета относительно целевого каталога +- homePage - Устанавливает URL-адрес домашней страницы для пакета +- binPrefix - устанавливает префикс для опции bin. +- noHashSum - отключает хэши кампутных пакетов + +### Устаревшие и удаленные параметры + +- deploySystem-with-libc - вместо этого параметра используйте параметр deploySystem. +- allQmlDependes - вместо этого параметра используйте параметр qmlDir. + ## CQtDeployer 1.5.0 Alpha + ### Исправления - исправления ошибок и улучшения. From 56694a0bc4a524a0f2872ffb84a90c804e039a3a Mon Sep 17 00:00:00 2001 From: Oleg-designer <78071329+Oleg-designer@users.noreply.github.com> Date: Fri, 9 Jul 2021 09:27:21 +0300 Subject: [PATCH 086/222] Update md/ru/Changelog.md Co-authored-by: Andrei Yankovich <EndrIIMail@gmail.com> --- md/ru/Changelog.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index b74c737..75e8b0e 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -29,7 +29,7 @@ - Добавлена новая тема установщика qif "quasarDark". - Добавлена поддержка работы с кастомным шаблоном для опции qif. - Добавлена поддержка пакетов debian. -- Добавлены значки поддержки для целей. теперь опция значка работает с целями, но не с пакетами. +- Добавлена поддержка иконок для целей. теперь опция icon работает с целями, а не с пакетами. - Добавлена поддержка управления файлами пользовательского перевода. - Добавлена поддержка развертывания неисполняемых данных. (опция extraData) - Добавлены переменные окружения для развернутых приложений. @@ -318,4 +318,3 @@ - Исправлена ошибка развертывания плагинов - Добавлена поддержка статической сборки - From 8f86352fa54c68e2bdca8b25a7a78e7d51d4c348 Mon Sep 17 00:00:00 2001 From: Oleg-designer <78071329+Oleg-designer@users.noreply.github.com> Date: Fri, 9 Jul 2021 09:27:29 +0300 Subject: [PATCH 087/222] Update md/ru/Changelog.md Co-authored-by: Andrei Yankovich <EndrIIMail@gmail.com> --- md/ru/Changelog.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index 75e8b0e..fd18120 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -38,7 +38,7 @@ - Добавлена поддержка создания установщика qif с использованием настраиваемого шаблона. - Добавлена команда инициализации qif по умолчанию шаблона deb (getDefaulttemplate) - Добавлена поддержка импорта пользовательских скриптов запуска. -- Добавлена поддержка хэшей md5 пакетов. +- Добавлена поддержка хэш сумм md5 для всех пакетов. - Добавлена поддержка Qt6.1. ### Исправления @@ -317,4 +317,3 @@ - Исправлена ошибка развертывания qml - Исправлена ошибка развертывания плагинов - Добавлена поддержка статической сборки - From b6ebffbd6262ab57abfae19e38232c817905e929 Mon Sep 17 00:00:00 2001 From: Oleg-designer <78071329+Oleg-designer@users.noreply.github.com> Date: Fri, 9 Jul 2021 09:28:31 +0300 Subject: [PATCH 088/222] Update md/ru/Changelog.md Co-authored-by: Andrei Yankovich <EndrIIMail@gmail.com> --- md/ru/Changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index fd18120..10fbc29 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -31,7 +31,7 @@ - Добавлена поддержка пакетов debian. - Добавлена поддержка иконок для целей. теперь опция icon работает с целями, а не с пакетами. - Добавлена поддержка управления файлами пользовательского перевода. -- Добавлена поддержка развертывания неисполняемых данных. (опция extraData) +- Добавлена поддержка развертывания дополнительных файлов. (опция extraData) - Добавлены переменные окружения для развернутых приложений. - Добавлена поддержка создания пакетов deb. - Добавлена поддержка создания zip-архивов. From 5e4e37d2c2139d06c20751ac9b1b1f9aaa1d2602 Mon Sep 17 00:00:00 2001 From: Oleg-designer <sweetletal0@gmail.com> Date: Fri, 9 Jul 2021 09:36:56 +0300 Subject: [PATCH 089/222] ref #635 update ru changelog --- md/ru/Changelog.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index 10fbc29..d6d55a0 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -60,18 +60,18 @@ ### Новые параметры - zip - создать ZIP-архив для развертываемых программ -- deb - Создать пакет deb для программы развертывания -- homepage - Устанавливает URL-адрес домашней страницы для пакета -- noQt - игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует фреймворк qt -- allowEmptyPackages - позволяет настраивать пустые пакеты. +- deb - Создаст deb пакет для развертываемой программы +- homepage - Установит URL-адрес домашней страницы для пакета +- noQt - Игнорирует ошибку инициализации qmake. Используйте только в том случае, если ваше приложение не использует платформу qt +- allowEmptyPackages - разрешает настраивать пустые пакеты. - getDefaultTemplate - Извлекает шаблоны deb или qif по умолчанию. - tr - Добавляет qm файлы в папку переводов. -- extraData - добавляет дополнительные файлы или каталоги как цель. Выбранный каталог будет скопирован в папку extraDataOut с сохранением собственной структуры. -- extraDataOut - Устанавливает путь к каталогу с дополнительными файлами данных. +- extraData - Добавляет дополнительные файлы или каталоги как цель. Выбранный каталог будет скопирован в расположение extraDataOut с сохранением собственной структуры. +- extraDataOut - Устанавливает путь к каталогу с дополнительными файлами данных. По умолчанию это корневой каталог дистрибутива. - prefix - Устанавливает префикс для пакета относительно целевого каталога -- homePage - Устанавливает URL-адрес домашней страницы для пакета -- binPrefix - устанавливает префикс для опции bin. -- noHashSum - отключает хэши кампутных пакетов +- homePage - Установит URL-адрес домашней страницы для пакета +- binPrefix - Устанавливает путь префикса для опции bin +- noHashSum - Отключить вычисление хеш-суммы пакетов ### Устаревшие и удаленные параметры From bd75685de53a62b705681df35202cd20a1137178 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 12 Jul 2021 11:58:41 +0300 Subject: [PATCH 090/222] fix the getDefaultTemplate option --- Deploy/configparser.cpp | 8 ++++---- Deploy/configparser.h | 2 +- UnitTests/tst_deploytest.cpp | 6 ++---- md/en/DEB.md | 14 ++++++++++++++ md/en/QIF.md | 16 ++++++++++++++++ md/ru/DEB.md | 16 +++++++++++++++- md/ru/QIF.md | 16 +++++++++++++++- 7 files changed, 67 insertions(+), 11 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index bfd3d67..acd42b7 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -199,7 +199,7 @@ bool ConfigParser::parseParams() { QuasarAppUtils::Params::log("Deploy ...", QuasarAppUtils::Info); - if (!parseDeployMode()) { + if (!parseDeployMode(true)) { QuasarAppUtils::Params::log("Deploy failed!", QuasarAppUtils::Error); return false; @@ -212,7 +212,7 @@ bool ConfigParser::parseParams() { QuasarAppUtils::Params::log("Extract defaults Templates ...", QuasarAppUtils::Info); - if (!parseDeployMode()) { + if (!parseDeployMode(false)) { QuasarAppUtils::Params::log("Extract defaults Templates is failed!", QuasarAppUtils::Error); return false; @@ -638,7 +638,7 @@ void ConfigParser::packagesErrorLog(const QString &option) { QuasarAppUtils::Error); } -bool ConfigParser::parseDeployMode() { +bool ConfigParser::parseDeployMode(bool checkBin) { if (QuasarAppUtils::Params::isEndable("deploySystem-with-libc")) { QuasarAppUtils::Params::log("You are using a deprecated option \"deploySystem-with-libc\"." @@ -666,7 +666,7 @@ bool ConfigParser::parseDeployMode() { split(DeployCore::getSeparator(0), splitbehavior); - if (!(_config.targets().count() || xData.count())) { + if (checkBin && !(_config.targets().count() || xData.count())) { QuasarAppUtils::Params::log("Failed to initialize targets or extra data!", QuasarAppUtils::Error); diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 2ba99c6..fa5c6a4 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -52,7 +52,7 @@ private: bool loadFromFile(const QString& file); bool initDistroStruct(); bool initPackages(); - bool parseDeployMode(); + bool parseDeployMode(bool checkBin = true); bool parseInfoMode(); bool parseInitMode(); /** diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index a5b0c76..8c1dd13 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1037,8 +1037,7 @@ void deploytest::testOverridingDefaultTemplateDEB() appScript.remove(); runTestParams( - {"-bin", bin, - "force-clear", + {"force-clear", "getDefaultTemplate", "-name", "Test", "deb", @@ -1054,8 +1053,7 @@ void deploytest::testOverridingDefaultTemplateDEB() }); runTestParams( - {"-bin", bin, - "force-clear", + {"force-clear", "-deb", "temaplate/defaultDEBTemplate", "-targetPackage", "MyApp", "-name", "Test", diff --git a/md/en/DEB.md b/md/en/DEB.md index 7930077..119d0c4 100644 --- a/md/en/DEB.md +++ b/md/en/DEB.md @@ -85,3 +85,17 @@ For include your templates into your destribution you need to add path of the De "deb": "./Debian templates" } ``` + + +## Initialization of the debian template + +For initialize default templates you can use the getDefaultTemplate option. +The getDefaultTemplate option extract default template of the cqtdeployer. This is can be very convinion if you want override default behavior of the installer or anothe distribution package. + +### Example + +### Getting default debian template. + +```bash +cqtdeployer getDefaultTemplate deb +``` diff --git a/md/en/QIF.md b/md/en/QIF.md index dbd911b..a598e11 100644 --- a/md/en/QIF.md +++ b/md/en/QIF.md @@ -115,3 +115,19 @@ cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller 4 directories, 4 files ``` + +## Initialization of the qifw template + +For initialize default templates you can use the getDefaultTemplate option. +The getDefaultTemplate option extract default template of the cqtdeployer. This is can be very convinion if you want override default behavior of the installer or anothe distribution package. + +### Example + +### Getting default qt installer framwork template. + +```bash +cqtdeployer getDefaultTemplate qif +``` + + + diff --git a/md/ru/DEB.md b/md/ru/DEB.md index 97d308a..9048f6b 100644 --- a/md/ru/DEB.md +++ b/md/ru/DEB.md @@ -83,4 +83,18 @@ cqtdeployer создает вуи пакет для каждого пакета. ], "deb": "./Debian templates" } -``` \ No newline at end of file +``` + + +## Инициализация шаблона debian + +Для инициализации шаблонов по умолчанию вы можете использовать параметр getDefaultTemplate. +Параметр getDefaultTemplate извлекает шаблон по умолчанию для cqtdeployer. Это может быть очень удобно, если вы хотите переопределить поведение установщика или другого пакета распространения по умолчанию. + +### Пример + +### Получение шаблона debian по умолчанию. + +```bash +cqtdeployer getDefaultTemplate deb +``` diff --git a/md/ru/QIF.md b/md/ru/QIF.md index f4df808..e8c2852 100644 --- a/md/ru/QIF.md +++ b/md/ru/QIF.md @@ -113,4 +113,18 @@ cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller 4 directories, 4 files -``` \ No newline at end of file +``` + + +## Инициализация шаблона qifw + +Для инициализации шаблонов по умолчанию вы можете использовать параметр getDefaultTemplate. +Параметр getDefaultTemplate извлекает шаблон по умолчанию для cqtdeployer. Это может быть очень удобно, если вы хотите переопределить поведение установщика или другого пакета распространения по умолчанию. + +### Пример + +### Получение шаблона фреймворка установщика qt по умолчанию. + +```bash +cqtdeployer getDefaultTemplate qif +``` From 85f1b88b8a54f7fcbe39d741c3a592526d7457e4 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 12 Jul 2021 12:15:58 +0300 Subject: [PATCH 091/222] version 1.5.2.7 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 52a1187..7cd2662 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.6 +VERSION = 1.5.2.7 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 25ea7d0..2d1eceb 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.6</Version> + <Version>1.5.2.7</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index c72629d..519b4d9 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.6</Version> + <Version>1.5.2.7</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index dd109e6..8f65be9 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.6 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.7 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 88ee057..93783c7 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.6</Version> + <Version>1.5.2.7</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 05ba509..76ca841 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.6 +Version=1.5.2.7 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.2.6 +X-GNOME-Bugzilla-Version=1.5.2.7 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index d285983..8bd8171 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.6' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.2.7' # 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 d0e40a59c8c7cdd0db7fda1183ae21de6d2144ed Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 13 Jul 2021 10:33:36 +0300 Subject: [PATCH 092/222] fix documentation aboud qifw --- md/en/QIF.md | 43 +++++++++++++++++++++++++++++++++++++++++++ md/ru/QIF.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/md/en/QIF.md b/md/en/QIF.md index a598e11..622774e 100644 --- a/md/en/QIF.md +++ b/md/en/QIF.md @@ -130,4 +130,47 @@ cqtdeployer getDefaultTemplate qif ``` +### Note +CQtDeployer will skip create a packages directory for the template because this commmnad do not contains any deploying data. +If you want to prepare template with packages configurations then you should add deployed data to your command or your config.json file using bin or extraData options. +If you create multi pacakges distribution then you need to configure your packages in your deploying commnad. + + +#### Example: + +Extracting template with pacakges: + +```bash +cqtdeployer getDefaultTemplate qif -bin myExecutable +``` + +Extracting template for multi packages distribution + +```bash +cqtdeployer getDefaultTemplate qif -bin myExecutable1,myExecutable2 -targetPackage p1;myExecutable1,p2;myExecutable2 +``` + +You also can use the config file for configure templates. + +Config.json + +```json +{ + "qif": true, + "bin": [ + "myExecutable1", + "myExecutable2" + ], + "targetPackage": [ + ["p1", "myExecutable1"], + ["p2", "myExecutable2"] + ] +} +``` + +Run CQtDeployer for generate template: + +```bash +cqtdeployer -confFile Config.json getDefaultTemplate +``` diff --git a/md/ru/QIF.md b/md/ru/QIF.md index e8c2852..9a966eb 100644 --- a/md/ru/QIF.md +++ b/md/ru/QIF.md @@ -128,3 +128,48 @@ cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller ```bash cqtdeployer getDefaultTemplate qif ``` + +### Примечание + +CQtDeployer пропустит создание каталога пакетов для шаблона, поскольку эта команда не содержит данных для развертывания. +Если вы хотите подготовить шаблон с конфигурациями пакетов, вам следует добавить развернутые данные в свою команду или в файл config.json, используя параметры bin или extraData. +Если вы создаете дистрибутив с несколькими пакетами, вам необходимо настроить свои пакеты в развертываемой команде. + + +#### Пример: + +Извлечение шаблона с пакетами: + +```bash +cqtdeployer getDefaultTemplate qif -bin myExecutable +``` + +Извлечение шаблона для распространения нескольких пакетов + +```bash +cqtdeployer getDefaultTemplate qif -bin myExecutable1,myExecutable2 -targetPackage p1;myExecutable1,p2;myExecutable2 +``` + +Вы также можете использовать файл конфигурации для настройки шаблонов. + +Config.json + +```json +{ + "qif": true, + "bin": [ + "myExecutable1", + "myExecutable2" + ], + "targetPackage": [ + ["p1", "myExecutable1"], + ["p2", "myExecutable2"] + ] +} +``` + +Запустите CQtDeployer для создания шаблона: + +```bash +cqtdeployer -confFile Config.json getDefaultTemplate +``` From d51fdeef46e187067380cdcfe262702edc0b30bb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 15 Jul 2021 11:45:47 +0300 Subject: [PATCH 093/222] ref #628 --- QIFData/packages/cqtdeployer.1_5/meta/installscript.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js index cb08b89..cddfe12 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js +++ b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js @@ -87,14 +87,14 @@ function systemIntegration() { console.log("hometDir " + homeDir) if (systemInfo.kernelType === "winnt") { - component.addOperation('EnvironmentVariable', + component.addElevatedOperation('EnvironmentVariable', [ "cqtdeployer", targetDir + "\\" + VERSION + "\\cqtdeployer.bat" ] ) - component.addOperation('EnvironmentVariable', + component.addElevatedOperation('EnvironmentVariable', [ "cqtDir", targetDir + "\\" + VERSION + "\\" From 036728ee761c052b7ad18690d6f63eb727cce23a Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 15 Jul 2021 15:23:33 +0300 Subject: [PATCH 094/222] ref #628 "use execute commnad " --- .../cqtdeployer.1_5/meta/installscript.js | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js index cddfe12..6c594de 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js +++ b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js @@ -87,19 +87,12 @@ function systemIntegration() { console.log("hometDir " + homeDir) if (systemInfo.kernelType === "winnt") { - component.addElevatedOperation('EnvironmentVariable', - [ - "cqtdeployer", - targetDir + "\\" + VERSION + "\\cqtdeployer.bat" - ] - ) - component.addElevatedOperation('EnvironmentVariable', - [ - "cqtDir", - targetDir + "\\" + VERSION + "\\" - ] - ) + component.addOperation('Execute', ["SETX", "cqtdeployer", targetDir + "\\" + VERSION + "\\cqtdeployer.bat"], + "UNDOEXECUTE", ["SETX", "cqtdeployer="]) + component.addOperation('Execute', ["SETX", "cqtDir", targetDir + "\\" + VERSION + "\\"], + "UNDOEXECUTE", ["SETX", "cqtDir="]) + let PATH = installer.environmentVariable("PATH"); const cqtDir = installer.environmentVariable("cqtDir"); From 9051be9c605ed50a30663452e55aeb89b0ac513c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 15 Jul 2021 15:40:25 +0300 Subject: [PATCH 095/222] ref #628 reset variables --- QIFData/packages/cqtdeployer.1_5/meta/installscript.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js index 6c594de..cbc7df4 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/installscript.js +++ b/QIFData/packages/cqtdeployer.1_5/meta/installscript.js @@ -89,9 +89,9 @@ function systemIntegration() { if (systemInfo.kernelType === "winnt") { component.addOperation('Execute', ["SETX", "cqtdeployer", targetDir + "\\" + VERSION + "\\cqtdeployer.bat"], - "UNDOEXECUTE", ["SETX", "cqtdeployer="]) + "UNDOEXECUTE", ["SETX", "cqtdeployer", ""]) component.addOperation('Execute', ["SETX", "cqtDir", targetDir + "\\" + VERSION + "\\"], - "UNDOEXECUTE", ["SETX", "cqtDir="]) + "UNDOEXECUTE", ["SETX", "cqtDir", ""]) let PATH = installer.environmentVariable("PATH"); From bb851fa4bb5591fb1ab93853ea97a1cfd71e7b34 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 19 Jul 2021 16:27:45 +0300 Subject: [PATCH 096/222] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 46f06e0..e4d3e82 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Key differences of this program: * Fast create installers : Upon completion of the deployment, you will receive a self-contained installer of your distribution. ## Supported platforms: + * <img src="https://user-images.githubusercontent.com/12465465/67766480-929b5000-fa5f-11e9-8ae7-377d9ddb7c65.png" height="100"> * <img src="https://upload.wikimedia.org/wikipedia/commons/8/8d/Windows_darkblue_2012.svg" height="100"> From 3b3cf140a9c57e5a5ba75f6b4355b347e9b871d0 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 22 Jul 2021 11:07:51 +0300 Subject: [PATCH 097/222] ref #643 "added more inforamtion about custom scripts" --- md/en/CustomScripts.md | 45 +++++++++++++++++++++++++++++++++++++++++- md/ru/CustomScripts.md | 44 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 87 insertions(+), 2 deletions(-) diff --git a/md/en/CustomScripts.md b/md/en/CustomScripts.md index a1589e9..77a49d1 100644 --- a/md/en/CustomScripts.md +++ b/md/en/CustomScripts.md @@ -23,4 +23,47 @@ cqtdeployer -bin MyExecutable -runScript MyExecutable,path/to/my/custom/script.s * CQT_SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. * CQT_BASE_NAME - are base name of the executable that will be launched after run this script. * CQT_CUSTOM_SCRIPT_BLOCK - This is code from the customScript option -* CQT_RUN_COMMAND - This is command for run application. Requred BASE_DIR variable. +* CQT_RUN_COMMAND - This is command for run application. Require BASEDIR variable. Note: This variable already contains symbols for redirect input script arguments to executable. + + +## The Scripts tempalte + +### Linux + +```bash +#!/bin/sh + +BASE_DIR=$(dirname "$(readlink -f "$0")") +export LD_LIBRARY_PATH="$BASE_DIR"CQT_LIB_PATH:"$BASE_DIR":$LD_LIBRARY_PATH +export QML_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML_IMPORT_PATH +export QML2_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML2_IMPORT_PATH +export QT_PLUGIN_PATH="$BASE_DIR"CQT_PLUGIN_PATH:$QT_PLUGIN_PATH +export QTWEBENGINEPROCESS_PATH="$BASE_DIR"CQT_BIN_PATH/QtWebEngineProcess +export QTDIR="$BASE_DIR" +export CQT_PKG_ROOT="$BASE_DIR" +export CQT_RUN_FILE="$BASE_DIR/CQT_BASE_NAME.sh" + +export QT_QPA_PLATFORM_PLUGIN_PATH="$BASE_DIR"CQT_PLUGIN_PATH/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH + +CQT_CUSTOM_SCRIPT_BLOCK + +CQT_RUN_COMMAND +``` + +### Windows + +```bash + +@echo off +SET BASE_DIR=%~dp0 +SET PATH=%BASE_DIR%CQT_LIB_PATH;%PATH%;CQT_SYSTEM_LIB_PATH +SET CQT_PKG_ROOT=%BASE_DIR% +SET CQT_RUN_FILE=%BASE_DIR%CQT_BASE_NAME.bat + +CQT_CUSTOM_SCRIPT_BLOCK + +CQT_RUN_COMMAND +``` + + +Or you can get last version of this scripts from the github [repository](https://github.com/QuasarApp/CQtDeployer/tree/main/Deploy/ScriptsTemplates). diff --git a/md/ru/CustomScripts.md b/md/ru/CustomScripts.md index cbb0a85..96d823f 100644 --- a/md/ru/CustomScripts.md +++ b/md/ru/CustomScripts.md @@ -23,4 +23,46 @@ cqtdeployer -bin MyExecutable -runScript MyExecutable,path/to/my/custom/script.s * CQT_SYSTEM_LIB_PATH - это относительный путь к системным библиотекам развернутого дистрибутива. * CQT_BASE_NAME - это базовое имя исполняемого файла, который будет запущен после запуска этого скрипта. * CQT_CUSTOM_SCRIPT_BLOCK - это код из опции customScript -* CQT_RUN_COMMAND - это команда для запуска приложения. Требуется переменная BASE_DIR. +* CQT_RUN_COMMAND - это команда для запуска приложения. Требуется переменная BASE_DIR. Важно: Эта переменная уже содержит символы перенапровления аргументов скрипта в исполняемый файл. + +## Шаблоны скриптов запуска + +### Linux + +```bash +#!/bin/sh + +BASE_DIR=$(dirname "$(readlink -f "$0")") +export LD_LIBRARY_PATH="$BASE_DIR"CQT_LIB_PATH:"$BASE_DIR":$LD_LIBRARY_PATH +export QML_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML_IMPORT_PATH +export QML2_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML2_IMPORT_PATH +export QT_PLUGIN_PATH="$BASE_DIR"CQT_PLUGIN_PATH:$QT_PLUGIN_PATH +export QTWEBENGINEPROCESS_PATH="$BASE_DIR"CQT_BIN_PATH/QtWebEngineProcess +export QTDIR="$BASE_DIR" +export CQT_PKG_ROOT="$BASE_DIR" +export CQT_RUN_FILE="$BASE_DIR/CQT_BASE_NAME.sh" + +export QT_QPA_PLATFORM_PLUGIN_PATH="$BASE_DIR"CQT_PLUGIN_PATH/platforms:$QT_QPA_PLATFORM_PLUGIN_PATH + +CQT_CUSTOM_SCRIPT_BLOCK + +CQT_RUN_COMMAND +``` + +### Windows + +```bash + +@echo off +SET BASE_DIR=%~dp0 +SET PATH=%BASE_DIR%CQT_LIB_PATH;%PATH%;CQT_SYSTEM_LIB_PATH +SET CQT_PKG_ROOT=%BASE_DIR% +SET CQT_RUN_FILE=%BASE_DIR%CQT_BASE_NAME.bat + +CQT_CUSTOM_SCRIPT_BLOCK + +CQT_RUN_COMMAND +``` + + +Или вы можете получить последнюю версию этих скриптов из github [репозитория](https://github.com/QuasarApp/CQtDeployer/tree/main/Deploy/ScriptsTemplates). From 8505aa4ca96533dbbec8766dcb315358373b9f93 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 22 Jul 2021 11:28:57 +0300 Subject: [PATCH 098/222] update quasarapp lib (fix Android qt6) --- QuasarAppLib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuasarAppLib b/QuasarAppLib index 553e337..12c20dc 160000 --- a/QuasarAppLib +++ b/QuasarAppLib @@ -1 +1 @@ -Subproject commit 553e337e6a956534d34dbbfcec42359117aa35d4 +Subproject commit 12c20dc83f4c34dea9793bdf5ebf27aa18b03357 From 5dbc847f0554f0c1b32b0ab517edd8f922b2597e Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 22 Jul 2021 11:38:47 +0300 Subject: [PATCH 099/222] added warning for the libDir option --- md/en/Options.md | 2 +- md/ru/Options.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/md/en/Options.md b/md/en/Options.md index 5d62d0f..8bf03a5 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -92,7 +92,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -ignoreEnv [list,params] | The list of the environment to ignore. | | | For example -ignoreEnv /bad/dir,/my/bad/Dir | | -libDir [list,params] | Sets additional paths for extra libs of an app. | -| | For example -libDir ~/myLib,~/newLibs | +| | For example -libDir ~/myLib,~/newLibs. **Attention** the libDir option should not be children of the targetDir directory. The targetDir option is forbidden for library searches, as it may contain outdated project libraries, which in turn may lead to unwanted crashes. | | -extraLibs [list,params] | Sets the mask of the library name for forced copying. | | | Example: "-extraLib mySql" - forces to copy all libraries whose names contain mySql to the project folder. This option is case-insensitive on Windows and case-sensitive on other platforms. This option will only search libraries in system environments similar to **deploySystem**.| | -customScript [scriptCode]| Insert extra code inTo All run script. | diff --git a/md/ru/Options.md b/md/ru/Options.md index 31c8813..c86fb7b 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -88,7 +88,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -ignoreEnv [list,params] | Список путей для игнорирования. | | | Пример -ignoreEnv /bad/dir,/my/bad/Dir | | -libDir [list,params] | Устанавливает дополнительные пути к библиотекам | -| | Пример -libDir ~/myLib,~/newLibs | +| | Пример -libDir ~/myLib,~/newLibs. **Внимание** опция libDir не должна быть доченей от католога targetDir. Опция targetDir являеться запрещенной для поиска библиотек, так как может содержать устаревшие библиотеки проекта, что в свою очередь может привести к нежелательным крашам. | | -extraLibs [list,params] | Пример: «-extraLib mySql» - заставляет скопировать все библиотеки, имена которых содержат mySql, в папку проекта. Этот параметр не чувствителен к регистру в Windows и чувствителен к регистру на других платформах. Эта опция будет искать библиотеки только в системных средах, подобных **deploySystem**. | | -customScript [scriptCode] | Установит дополнительный код в скрипты запуска. | | -extraPlugin [list,params] | Устанавливает дополнительный путь для extraPlugin приложения| From 5ff05d3d41e8bdcdd27c0c4c71dc5e173e9cd147 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 22 Jul 2021 11:50:23 +0300 Subject: [PATCH 100/222] fix typo errors --- md/ru/Options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/ru/Options.md b/md/ru/Options.md index c86fb7b..149da6c 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -88,7 +88,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -ignoreEnv [list,params] | Список путей для игнорирования. | | | Пример -ignoreEnv /bad/dir,/my/bad/Dir | | -libDir [list,params] | Устанавливает дополнительные пути к библиотекам | -| | Пример -libDir ~/myLib,~/newLibs. **Внимание** опция libDir не должна быть доченей от католога targetDir. Опция targetDir являеться запрещенной для поиска библиотек, так как может содержать устаревшие библиотеки проекта, что в свою очередь может привести к нежелательным крашам. | +| | Пример -libDir ~/myLib,~/newLibs. **Внимание** опция libDir не должна быть дочерней от каталога targetDir. Опция targetDir является запрещенной для поиска библиотек, так как может содержать устаревшие библиотеки проекта, что в свою очередь может привести к нежелательным крашам. | | -extraLibs [list,params] | Пример: «-extraLib mySql» - заставляет скопировать все библиотеки, имена которых содержат mySql, в папку проекта. Этот параметр не чувствителен к регистру в Windows и чувствителен к регистру на других платформах. Эта опция будет искать библиотеки только в системных средах, подобных **deploySystem**. | | -customScript [scriptCode] | Установит дополнительный код в скрипты запуска. | | -extraPlugin [list,params] | Устанавливает дополнительный путь для extraPlugin приложения| From fd72d2be20e96232023921e7031d9a4447b4f67c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 23 Jul 2021 11:42:31 +0300 Subject: [PATCH 101/222] ref #629 "added an error message for conflict between libDir and targetDir options" --- Deploy/configparser.cpp | 18 ++++++++++++++++-- Deploy/configparser.h | 2 +- Deploy/envirement.cpp | 8 +++++++- Deploy/envirement.h | 7 +++++++ UnitTests/tst_deploytest.cpp | 19 +++++++++++++++++++ 5 files changed, 50 insertions(+), 4 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index acd42b7..e593967 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -695,7 +695,9 @@ bool ConfigParser::parseDeployMode(bool checkBin) { return false; } - initExtraPath(); + if (!initExtraPath()) { + return false; + } initExtraNames(); initPlugins(); @@ -1294,7 +1296,7 @@ bool ConfigParser::setQtDir(const QString &value) { return true; } -void ConfigParser::initExtraPath() { +bool ConfigParser::initExtraPath() { auto listLibDir = QuasarAppUtils::Params::getArg("libDir"). split(DeployCore::getSeparator(0)); @@ -1309,6 +1311,16 @@ void ConfigParser::initExtraPath() { continue; } + if (_config.envirement.isIgnore(info.absoluteFilePath())) { + QuasarAppUtils::Params::log(QString("Failed to set libDir path!" + " The %0 path will be ignored because" + " this path is child path of the targetDir path" + " or manually added into ignore environment."). + arg(info.absoluteFilePath()), + QuasarAppUtils::Error); + return false; + } + dir.setPath(info.absoluteFilePath()); auto extraDirs = getSetDirsRecursive(QDir::fromNativeSeparators(info.absoluteFilePath()), _config.depchLimit); _config.extraPaths.addExtraPaths(extraDirs); @@ -1326,6 +1338,8 @@ void ConfigParser::initExtraPath() { QuasarAppUtils::Debug); } } + + return true; } void ConfigParser::initExtraNames() { diff --git a/Deploy/configparser.h b/Deploy/configparser.h index fa5c6a4..545fb73 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -83,7 +83,7 @@ private: bool setQmake(const QString &value); bool setQtDir(const QString &value); - void initExtraPath(); + bool initExtraPath(); void initExtraNames(); bool initPlugins(); diff --git a/Deploy/envirement.cpp b/Deploy/envirement.cpp index efe403d..a7f4946 100644 --- a/Deploy/envirement.cpp +++ b/Deploy/envirement.cpp @@ -65,7 +65,9 @@ void Envirement::addEnv(const QStringList &listDirs) { for (const auto& i : listDirs) { auto path = PathUtils::fixPath(QFileInfo(i).absoluteFilePath()); - if (_ignoreEnvList && _ignoreEnvList->inThisEnvirement(i)) { + if (isIgnore(i)) { + QuasarAppUtils::Params::log(QString("The %0 path is ignored and not added to a search list!!").arg(i), + QuasarAppUtils::Debug); continue; } @@ -85,6 +87,10 @@ void Envirement::addEnv(const QStringList &listDirs) { } } +bool Envirement::isIgnore(const QString &path) const { + return _ignoreEnvList && _ignoreEnvList->inThisEnvirement(path); +} + void Envirement::clear() { if (_ignoreEnvList) delete _ignoreEnvList; diff --git a/Deploy/envirement.h b/Deploy/envirement.h index 0ae31b6..41eb11d 100644 --- a/Deploy/envirement.h +++ b/Deploy/envirement.h @@ -34,6 +34,13 @@ public: void addEnv(const QString &dir); void addEnv(const QStringList &listDirs); + /** + * @brief isIgnore This method return true if the @a path is contains in ignore list else return false. + * @brief path This is path to of the system enviroment that will be checked to ignore. + * @return true if the @a path is contains in ignore list else return false. + */ + bool isIgnore(const QString& path) const; + void clear(); // return true if file exits in this envirement diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 8c1dd13..9bfc60b 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -185,6 +185,7 @@ private slots: void testDisableShortcuts(); void testDisableRunScripts(); void testQifOut(); + void testIgnoreEnvWithLibDir(); void customTest(); }; @@ -1533,6 +1534,24 @@ void deploytest::testQifOut() { "qif", "-qifOut", "QIF_OUT.exe"}, &result); } +void deploytest::testIgnoreEnvWithLibDir() { +#ifdef Q_OS_UNIX + QString bin = TestBinDir + "TestOnlyC"; +#else + QString bin = TestBinDir + "TestOnlyC.exe"; +#endif + + QVERIFY(QDir().mkdir("libDirtest")); + + // Run deploy installer + runTestParams({"-bin", bin, "clear", + "-targetDir", "./libDirtest", + "-libDir", "./libDirtest"}, nullptr, false, false, + exitCodes::PrepareError); + + QVERIFY(QDir().rmdir("libDirtest")); +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); From 0dec595058cc0a9d058efdd01617931d138f17fd Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 23 Jul 2021 12:14:42 +0300 Subject: [PATCH 102/222] ref #640 added description for options --- md/en/Options.md | 4 +++- md/ru/Options.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/md/en/Options.md b/md/en/Options.md index 8bf03a5..44a3b5e 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -99,7 +99,9 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -extraPlugin [list,params]| Sets an additional path to extraPlugin of an app | | -recursiveDepth [params] | Sets the Depth of recursive search of libs and ignoreEnv (default 0) | | -targetDir [params] | Sets target directory(by default it is the path to the first deployable file)| -| -verbose [0-3] | Shows debug log | +| -installDirDeb [params] | Sets install target directory fordebian package (by default it is /opt path) | +| -installDirQIFW [params] | Sets install target directory for installers (by default it is /home path) | +| -verbose [0-3] | Shows debug log. By default it is 2 | ### Controll of packages options diff --git a/md/ru/Options.md b/md/ru/Options.md index 149da6c..d15ae33 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -94,7 +94,9 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -extraPlugin [list,params] | Устанавливает дополнительный путь для extraPlugin приложения| | -recursiveDepth [params] | Устанавливает глубину поиска библиотек и глубину игнорирования окружения для ignoreEnv (по умолчанию 0) | | -targetDir [params] | Устанавливает целевой каталог (по умолчанию это путь к первому развертываемому файлу)| -| -verbose [0-3] | Показывает дебаг лога | +| -installDirDeb [параметры] | Устанавливает целевой каталог для установки пакета Debian (по умолчанию это /opt путь) | +| -installDirQIFW [параметры]| Устанавливает целевой каталог установки для инсталляторов (по умолчанию это путь /home) | +| -verbose [0-3] | Показывает дебаг лог. По умолчанию равен 2 | ### Параметры управлениями пакетами: From 43275660ca15e2f3e3ea7ea3738e60912b79050c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 23 Jul 2021 12:20:55 +0300 Subject: [PATCH 103/222] fix android qt6 build --- QuasarAppLib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuasarAppLib b/QuasarAppLib index 553e337..12c20dc 160000 --- a/QuasarAppLib +++ b/QuasarAppLib @@ -1 +1 @@ -Subproject commit 553e337e6a956534d34dbbfcec42359117aa35d4 +Subproject commit 12c20dc83f4c34dea9793bdf5ebf27aa18b03357 From 5837503a946a4379cf8b3c882a16f2219f7440bd Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 24 Jul 2021 18:10:56 +0300 Subject: [PATCH 104/222] ref #640 "added implementation of installDirDeb and installDirQIFW options" --- .../Templates/deb/DEBIAN/postinst | 4 ++-- .../qif/config custom designe/config.xml | 2 +- .../Templates/qif/config/config.xml | 2 +- Deploy/Distributions/deb.cpp | 3 +-- Deploy/Distributions/idistribution.cpp | 6 +++++ Deploy/Distributions/templateinfo.cpp | 5 ++++ Deploy/Distributions/templateinfo.h | 5 ++++ Deploy/configparser.cpp | 8 +++++++ Deploy/distromodule.cpp | 11 +++++++++ Deploy/distromodule.h | 5 ++++ UnitTests/tst_deploytest.cpp | 23 +++++++++++++++++++ 11 files changed, 68 insertions(+), 6 deletions(-) diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/postinst b/Deploy/Distributions/Templates/deb/DEBIAN/postinst index 55918ee..7c3f55e 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/postinst +++ b/Deploy/Distributions/Templates/deb/DEBIAN/postinst @@ -3,7 +3,7 @@ APPS=$BASH_ARRAY_APPLICATIONS APPS_SHORTCUTS=$BASH_ARRAY_SHORTCUTS_APPLICATIONS -TARGET_DIR=/opt/$PREFIX/ +TARGET_DIR=$CQT_INSTALL_DEB_DIR/$PREFIX/ #creating shortcut DEST_FILE= @@ -21,7 +21,7 @@ function createShortCut { echo "Encoding=UTF-8" >> $DEST_FILE echo "Name=$DEST_NAME" >> $DEST_FILE echo "Type=Application" >> $DEST_FILE - echo "Icon=/opt/$ICON" >> $DEST_FILE + echo "Icon=$CQT_INSTALL_DEB_DIR/$ICON" >> $DEST_FILE echo "Terminal=false" >> $DEST_FILE echo "Exec=$SRC_FILE" >> $DEST_FILE diff --git a/Deploy/Distributions/Templates/qif/config custom designe/config.xml b/Deploy/Distributions/Templates/qif/config custom designe/config.xml index 38e2e72..b852a78 100644 --- a/Deploy/Distributions/Templates/qif/config custom designe/config.xml +++ b/Deploy/Distributions/Templates/qif/config custom designe/config.xml @@ -5,7 +5,7 @@ <Title>$NAME</Title> <Publisher>$PUBLISHER</Publisher> <StartMenuDir>$NAME</StartMenuDir> - <TargetDir>@HomeDir@/$NAME</TargetDir> + <TargetDir>$CQT_INSTALL_DIR/$NAME</TargetDir> <InstallActionColumnVisible>true</InstallActionColumnVisible> <RemoveTargetDir>true</RemoveTargetDir> <ControlScript>controlScript.qs</ControlScript> diff --git a/Deploy/Distributions/Templates/qif/config/config.xml b/Deploy/Distributions/Templates/qif/config/config.xml index bc7901d..14fd970 100644 --- a/Deploy/Distributions/Templates/qif/config/config.xml +++ b/Deploy/Distributions/Templates/qif/config/config.xml @@ -5,7 +5,7 @@ <Title>$NAME</Title> <Publisher>$PUBLISHER</Publisher> <StartMenuDir>$NAME</StartMenuDir> - <TargetDir>@HomeDir@/$NAME</TargetDir> + <TargetDir>$CQT_INSTALL_DIR/$NAME</TargetDir> <InstallActionColumnVisible>true</InstallActionColumnVisible> <RemoveTargetDir>true</RemoveTargetDir> <ControlScript>controlScript.qs</ControlScript> diff --git a/Deploy/Distributions/deb.cpp b/Deploy/Distributions/deb.cpp index bca26f2..e047737 100644 --- a/Deploy/Distributions/deb.cpp +++ b/Deploy/Distributions/deb.cpp @@ -144,8 +144,7 @@ bool Deb::cb() const { } QString Deb::dataLocation(const DistroModule &module) const { - return location(module) + "/opt/" + releativeLocation(module); - + return location(module) + module.installDirDEB() + "/" + releativeLocation(module); } QString Deb::location(const DistroModule &module) const { diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 2d8aaf6..d8f51d3 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -74,6 +74,8 @@ bool iDistribution::unpackFile(const QFileInfo &resource, inputText.replace("$PUBLISHER", info.Publisher); inputText.replace("$HOMEPAGE", info.Homepage); inputText.replace("$PREFIX", info.Prefix); + inputText.replace("$CQT_INSTALL_DIR", info.InstallDeirQIFW()); + inputText.replace("$CQT_INSTALL_DEB_DIR", info.InstallDirDEB); for (auto it = info.Custom.cbegin(); it != info.Custom.cend(); ++it) { @@ -192,6 +194,10 @@ bool iDistribution::collectInfo(const DistroModule& pkg, if (!pkg.homePage().isEmpty()) info.Homepage = pkg.homePage(); + info.InstallDirDEB = "/opt"; + if (!pkg.installDirDEB().isEmpty()) + info.InstallDirDEB = pkg.installDirDEB(); + info.Prefix = releativeLocation(pkg); QString cmdArray = "["; diff --git a/Deploy/Distributions/templateinfo.cpp b/Deploy/Distributions/templateinfo.cpp index f398944..a74f6e8 100644 --- a/Deploy/Distributions/templateinfo.cpp +++ b/Deploy/Distributions/templateinfo.cpp @@ -1 +1,6 @@ #include "templateinfo.h" +#include "quasarapp.h" + +QString TemplateInfo::InstallDeirQIFW() const { + return QuasarAppUtils::Params::getArg("installDirQIFW", "@HomeDir@"); +} diff --git a/Deploy/Distributions/templateinfo.h b/Deploy/Distributions/templateinfo.h index 715cd87..bcab0fb 100644 --- a/Deploy/Distributions/templateinfo.h +++ b/Deploy/Distributions/templateinfo.h @@ -5,6 +5,9 @@ #include <QHash> #include <deploy_global.h> +/** + * @brief The TemplateInfo struct This structure contains information about distribution packages. + */ struct DEPLOYSHARED_EXPORT TemplateInfo { QString Name; @@ -15,6 +18,8 @@ struct DEPLOYSHARED_EXPORT TemplateInfo QString Publisher; QString Homepage; QString Prefix; + QString InstallDirDEB; + QString InstallDeirQIFW() const; QHash<QString, QString> Custom; diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index acd42b7..d9d81d5 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -463,6 +463,9 @@ bool ConfigParser::initDistroStruct() { auto trData = QuasarAppUtils::Params::getArg("tr"). split(DeployCore::getSeparator(0), splitbehavior); + auto installDirDeb = QuasarAppUtils::Params::getArg("installDirDeb"). + split(DeployCore::getSeparator(0), splitbehavior); + // init distro stucts for all targets if (binOut.size() && !parsePackagesPrivate(mainDistro, binOut, &DistroModule::setBinOutDir)) { packagesErrorLog("binOut"); @@ -544,6 +547,11 @@ bool ConfigParser::initDistroStruct() { return false; } + if (installDirDeb.size() && !parsePackagesPrivate(mainDistro, installDirDeb, &DistroModule::setInstallDirDEB)) { + packagesErrorLog("installDirDeb"); + return false; + } + return true; } diff --git a/Deploy/distromodule.cpp b/Deploy/distromodule.cpp index 3093e15..0fa9032 100644 --- a/Deploy/distromodule.cpp +++ b/Deploy/distromodule.cpp @@ -148,6 +148,17 @@ void DistroModule::setKey(const QString &key) { _key = key; } +QString DistroModule::installDirDEB() const { + if (_installDirDEB.isEmpty()) + return "/opt"; + + return _installDirDEB; +} + +void DistroModule::setInstallDirDEB(const QString &newInstallDir) { + _installDirDEB = newInstallDir; +} + QSet<QString> DistroModule::tr() const { return _tr; } diff --git a/Deploy/distromodule.h b/Deploy/distromodule.h index 63ec37c..b6a9a87 100644 --- a/Deploy/distromodule.h +++ b/Deploy/distromodule.h @@ -74,6 +74,9 @@ public: void setTr(const QSet<QString> &tr); void addTr(const QString &tr); + QString installDirDEB() const; + void setInstallDirDEB(const QString &newInstallDir); + protected: void setKey(const QString &key); @@ -101,6 +104,8 @@ private: // extra translations QSet<QString> _tr; + QString _installDirDEB; + }; diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 8c1dd13..0d8309a 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -186,6 +186,9 @@ private slots: void testDisableRunScripts(); void testQifOut(); + // note: this test checking in manual mode only. + void testInstallDirsOptions(); + void customTest(); }; @@ -1533,6 +1536,26 @@ void deploytest::testQifOut() { "qif", "-qifOut", "QIF_OUT.exe"}, &result); } +void deploytest::testInstallDirsOptions() { +#ifdef QT_DEBUG +#ifdef Q_OS_UNIX + QStringList binMulti = {TestBinDir + "TestOnlyC" , TestBinDir + "TestCPPOnly"}; + +#else + QStringList binMulti = {TestBinDir + "TestOnlyC.exe" , TestBinDir + "TestCPPOnly.exe"}; + +#endif + + + runTestParams({"-bin", binMulti.join(","), "clear", + "qif", "deb", + "-targetPackage", "pkg;TestCPPOnly", + "-installDirDeb", "pkg;/var", + "-installDirQIFW", "/opt"}); + +#endif +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); From 30e28650b862be8fc661e19025c8fd6ba1743fc1 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 26 Jul 2021 13:17:35 +0300 Subject: [PATCH 105/222] update quasarapp lib --- Deploy/deploycore.cpp | 9 +++++++++ QuasarAppLib | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index c885f45..88e4892 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -187,6 +187,15 @@ RunMode DeployCore::getMode() { void DeployCore::help() { + QuasarAppUtils::OptionsDataList _help = { + {"Part 1 Boolean options", {QuasarAppUtils::OptionData{ + "init", + "will initialize cqtdeployer.json file (configuration file).", + "'cqtdeployer init' - for initialize base package configuration. " + "'cqtdeployer -init multi' - for initialize multi package configuration " + "'cqtdeployer -init single' - for initialize singel package configuration" + }}} + } QuasarAppUtils::Help::Charters help = { { diff --git a/QuasarAppLib b/QuasarAppLib index 12c20dc..fc80dba 160000 --- a/QuasarAppLib +++ b/QuasarAppLib @@ -1 +1 @@ -Subproject commit 12c20dc83f4c34dea9793bdf5ebf27aa18b03357 +Subproject commit fc80dba2923bd6ac8e03091c6025c16c317f5d3d From ecddf67508ce7e85276d42e34167e11ab93757c1 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 27 Jul 2021 18:00:52 +0300 Subject: [PATCH 106/222] ref #421 "refactoring help " --- Deploy/deploycore.cpp | 316 ++++++++++++++++++++++++++++--------- Deploy/metafilemanager.cpp | 5 - QuasarAppLib | 2 +- 3 files changed, 240 insertions(+), 83 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 88e4892..78debba 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -187,15 +187,177 @@ RunMode DeployCore::getMode() { void DeployCore::help() { - QuasarAppUtils::OptionsDataList _help = { - {"Part 1 Boolean options", {QuasarAppUtils::OptionData{ - "init", - "will initialize cqtdeployer.json file (configuration file).", - "'cqtdeployer init' - for initialize base package configuration. " - "'cqtdeployer -init multi' - for initialize multi package configuration " - "'cqtdeployer -init single' - for initialize singel package configuration" - }}} - } + QString group = "Part 1 Boolean options"; + QuasarAppUtils::OptionsDataList _help = {}; + _help.insert(group, {QuasarAppUtils::OptionData{ + {"init"}, + "will initialize cqtdeployer.json file (configuration file).", + "'cqtdeployer init' - for initialize base package configuration. " + "'cqtdeployer -init multi' - for initialize multi package configuration " + "'cqtdeployer -init single' - for initialize singel package configuration" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"clear"}, "", + "Deletes deployable files of the previous session." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"force-clear"}, "", + "Deletes the destination directory before deployment." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noStrip"}, "", + "Skips strip step" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noTranslations"}, "", + "Skips the translations files. It doesn't work without qmake." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noOverwrite"}, "", + "Prevents replacing existing files." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noCheckRPATH"}, "", + "Disables automatic search of paths to qmake in executable files." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noCheckPATH"}, "", + "Disables automatic search of paths to qmake in system PATH." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noRecursiveiIgnoreEnv"}, "", + "Disables recursive ignore for ignoreEnv option." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"v", "version"}, + "Shows compiled version" + }}); + + _help.insert(group, {QuasarAppUtils::OptionData{ + {"qif","-qif"}, "", + "Create the QIF installer for deployment programm" + " You can specify the path to your own installer template.", + "Examples: cqtdeployer -qif path/to/myCustom/qif." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"qifFromSystem"}, "", + "force use system binarycreator tool of qif from path or qt" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"zip"}, "", + "Create the ZIP arhive for deployment programm" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"deb", "-deb"}, "", + "Create the deb package for deployment programm" + " You can specify the path to your own debian template.", + "cqtdeployer -deb path/to/myCustom/DEBIAN." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"deploySystem"}, "", + "Deploys all libraries." + " Not recomendet because there may be conflicts with system libraries" + " (on snap version you need to turn on permission)" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noQt"}, "", + "Ignors the error of initialize of a qmake. Use only if your application does not use the qt framework." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"allowEmptyPackages"}, "", + "Allows configure the empty packages." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"getDefaultTemplate"}, "", + "Extracts defaults deb or qif templates." + " All templates extract into targetDirectory." + " For change target directory use the targetDir option.", + "cqtdeployer -bin myExecutable getDefaultTemplate qif deb." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"noHashSum"}, "", + "This option disable computation of a packages hash sum" + }}); + + group = "Part 2 Deploy options"; + + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-bin"}, "{list,params}", + "Files to deploy or folders that contain files to deploy.", + "-bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll." + " For files: These files will be unconditional copied to the destination directory," + " regardless of their format or suffix." + " For folders:" + " CCQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory." + " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths." + }}); + + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-binPrefix"}, "{prefixPath}", + "Sets prefix path for bin option.", + "-bin path/MyExecutable is some as -bin MyExecutable -binPrefix path" + }}); + + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-confFile"}, "{params}", + "The path to the json file with all deployment configurations. Using this file," + " you can add the necessary options, thereby simplifying the command invocation in the console." + " However, the parameters in Kansol have a higher priority than in the file." + " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-qmlDir"}, "{params}", + "Sets path to Qml data dir", + "-qmlDir ~/my/project/qml" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-qmake"}, "{params}", + "Sets path to the qmake executable.", + "-qmake ~/Qt/bin/qmake or -qmake ~/Qt/bin/qmake.exe" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-ignore"}, "{list,params}", + "Sets the list of libs to ignore.", + "-ignore libicudata.so.56,libicudata2.so.56" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-ignoreEnv"}, "{list,params}", + "Sets the list of the environment to ignore.", + "-ignoreEnv /bad/dir,/my/bad/Dir" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-libDir"}, "{list,params}", + "Sets additional paths for extra libs of an app.", + "-libDir ~/myLib,~/newLibs" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-extraLibs"}, "{list,params}", + "Sets the mask of the library name for forced copying.", + "\"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." + " This option is case-insensitive on Windows and case-sensitive on other platforms." + " This option will only search libraries in system environments similar to **deploySystem**." + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-customScript"}, "{scriptCode}", + "Insert extra code inTo All run script.", + "", + " This option will be removed into next release cqtdeployer." + " Please use the runScript option" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-recursiveDepth"}, "{params}", + "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-targetDir"}, "{params}", + "Sets target directory(by default it is the path to the first deployable file)" + }}); + _help.insert(group, {QuasarAppUtils::OptionData{ + {"-runScript"}, "{list,parems}", + "forces cqtdeployer swap default run script to new from the arguments of option." + " This option copy all content from input file and insert all code into runScript.sh or .bat", + "cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\"" + }}); QuasarAppUtils::Help::Charters help = { { @@ -204,78 +366,78 @@ void DeployCore::help() { {"Usage", "cqtdeployer <-bin [params]> [options]"}, } }, - { - "Part 1 Boolean options", { - {"init", "will initialize cqtdeployer.json file (configuration file)." - " For example: 'cqtdeployer init' - for initialize base package configuration." - " 'cqtdeployer -init multi' - for initialize multi package configuration" - " 'cqtdeployer -init single' - for initialize singel package configuration"}, - {"help / h", "Shows help"}, - {"clear", "Deletes deployable files of the previous session."}, - {"force-clear", "Deletes the destination directory before deployment."}, - {"noStrip", "Skips strip step"}, - {"noTranslations", "Skips the translations files. It doesn't work without qmake."}, - {"noOverwrite", "Prevents replacing existing files."}, - {"noCheckRPATH", "Disables automatic search of paths to qmake in executable files."}, - {"noCheckPATH", "Disables automatic search of paths to qmake in system PATH."}, - {"noRecursiveiIgnoreEnv", "Disables recursive ignore for ignoreEnv option."}, - {"v / version", "Shows compiled version"}, - {"qif", "Create the QIF installer for deployment programm" - " You can specify the path to your own installer template. Examples: cqtdeployer -qif path/to/myCustom/qif."}, - {"qifFromSystem", "force use system binarycreator tool of qif from path or qt"}, - {"zip", "Create the ZIP arhive for deployment programm"}, - {"deb", "Create the deb package for deployment programm" - " You can specify the path to your own debian template. Examples: cqtdeployer -deb path/to/myCustom/DEBIAN."}, - {"deploySystem", "Deploys all libraries." - " Not recomendet because there may be conflicts with system libraries" - " (on snap version you need to turn on permission)"}, - {"noQt", "Ignors the error of initialize of a qmake. Use only if your application does not use the qt framework."}, - {"allowEmptyPackages", "Allows configure the empty packages."}, - {"getDefaultTemplate", "Extracts defaults deb or qif templates." - " All templates extract into targetDirectory." - " For change target directory use the targetDir option." - " Example: cqtdeployer -bin myExecutable getDefaultTemplate qif deb."}, - {"noHashSum", "This option disable computation of a packages hash sum"} +// { +// "Part 1 Boolean options", { +// {"init", "will initialize cqtdeployer.json file (configuration file)." +// " For example: 'cqtdeployer init' - for initialize base package configuration." +// " 'cqtdeployer -init multi' - for initialize multi package configuration" +// " 'cqtdeployer -init single' - for initialize singel package configuration"}, +// {"help / h", "Shows help"}, +// {"clear", "Deletes deployable files of the previous session."}, +// {"force-clear", "Deletes the destination directory before deployment."}, +// {"noStrip", "Skips strip step"}, +// {"noTranslations", "Skips the translations files. It doesn't work without qmake."}, +// {"noOverwrite", "Prevents replacing existing files."}, +// {"noCheckRPATH", "Disables automatic search of paths to qmake in executable files."}, +// {"noCheckPATH", "Disables automatic search of paths to qmake in system PATH."}, +// {"noRecursiveiIgnoreEnv", "Disables recursive ignore for ignoreEnv option."}, +// {"v / version", "Shows compiled version"}, +// {"qif", "Create the QIF installer for deployment programm" +// " You can specify the path to your own installer template. Examples: cqtdeployer -qif path/to/myCustom/qif."}, +// {"qifFromSystem", "force use system binarycreator tool of qif from path or qt"}, +// {"zip", "Create the ZIP arhive for deployment programm"}, +// {"deb", "Create the deb package for deployment programm" +// " You can specify the path to your own debian template. Examples: cqtdeployer -deb path/to/myCustom/DEBIAN."}, +// {"deploySystem", "Deploys all libraries." +// " Not recomendet because there may be conflicts with system libraries" +// " (on snap version you need to turn on permission)"}, +// {"noQt", "Ignors the error of initialize of a qmake. Use only if your application does not use the qt framework."}, +// {"allowEmptyPackages", "Allows configure the empty packages."}, +// {"getDefaultTemplate", "Extracts defaults deb or qif templates." +// " All templates extract into targetDirectory." +// " For change target directory use the targetDir option." +// " Example: cqtdeployer -bin myExecutable getDefaultTemplate qif deb."}, +// {"noHashSum", "This option disable computation of a packages hash sum"} - } - }, - { - "Part 2 Deploy options", { - {"-bin [list, params]", "Files to deploy or folders that contain files to deploy." - " For example -bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll." - " For files: These files will be unconditional copied to the destination directory," - " regardless of their format or suffix." - " For folders:" - " CCQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory." - " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths."}, - {"-binPrefix [prefixPath]", "Sets prefix path for bin option." - " Example: " - "-bin path/MyExecutable is some as -bin MyExecutable -binPrefix path" }, +// } +// }, +// { +// "Part 2 Deploy options", { +// {"-bin [list, params]", "Files to deploy or folders that contain files to deploy." +// " For example -bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll." +// " For files: These files will be unconditional copied to the destination directory," +// " regardless of their format or suffix." +// " For folders:" +// " CCQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory." +// " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths."}, +// {"-binPrefix [prefixPath]", "Sets prefix path for bin option." +// " Example: " +// "" }, - {"-confFile [params]", "The path to the json file with all deployment configurations. Using this file," - " you can add the necessary options, thereby simplifying the command invocation in the console." - " However, the parameters in Kansol have a higher priority than in the file." - " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn"}, - {"-qmlDir [params]", "Qml data dir. For example -qmlDir ~/my/project/qml"}, - {"-qmake [params]", "Deployable file or folder. For example -bin ~/my/project/bin/,~/my/project/bin.exe"}, - {"-ignore [list,params]", "The list of libs to ignore. For example -ignore libicudata.so.56,libicudata2.so.56"}, - {"-ignoreEnv [list,params]", "The list of the environment to ignore. For example -ignoreEnv /bad/dir,/my/bad/Dir"}, - {"-libDir [list,params]", "Sets additional paths for extra libs of an app. For example -libDir ~/myLib,~/newLibs"}, - {"-extraLibs [list,params]", "Sets the mask of the library name for forced copying." - " Example: \"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." - " This option is case-insensitive on Windows and case-sensitive on other platforms." - " This option will only search libraries in system environments similar to **deploySystem**."}, - {"-customScript [scriptCode]", "Insert extra code inTo All run script."}, - {"-recursiveDepth [params]", "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)"}, - {"-targetDir [params]", "Sets target directory(by default it is the path to the first deployable file)"}, - {"-runScript [list,parems]", "forces cqtdeployer swap default run script to new from the arguments of option." - " This option copy all content from input file and insert all code into runScript.sh or .bat" - " Example of use: cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\""}, - {"-verbose [0-3]", "Shows debug log"}, +// {"-confFile [params]", "The path to the json file with all deployment configurations. Using this file," +// " you can add the necessary options, thereby simplifying the command invocation in the console." +// " However, the parameters in Kansol have a higher priority than in the file." +// " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn"}, +// {"-qmlDir [params]", "Qml data dir. For example -qmlDir ~/my/project/qml"}, +// {"-qmake [params]", "Deployable file or folder. For example -bin ~/my/project/bin/,~/my/project/bin.exe"}, +// {"-ignore [list,params]", "The list of libs to ignore. For example -ignore libicudata.so.56,libicudata2.so.56"}, +// {"-ignoreEnv [list,params]", "The list of the environment to ignore. For example -ignoreEnv /bad/dir,/my/bad/Dir"}, +// {"-libDir [list,params]", "Sets additional paths for extra libs of an app. For example -libDir ~/myLib,~/newLibs"}, +// {"-extraLibs [list,params]", "Sets the mask of the library name for forced copying." +// " Example: \"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." +// " This option is case-insensitive on Windows and case-sensitive on other platforms." +// " This option will only search libraries in system environments similar to **deploySystem**."}, +// {"-customScript [scriptCode]", "Insert extra code inTo All run script."}, +// {"-recursiveDepth [params]", "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)"}, +// {"-targetDir [params]", "Sets target directory(by default it is the path to the first deployable file)"}, +// {"-runScript [list,parems]", "forces cqtdeployer swap default run script to new from the arguments of option." +// " This option copy all content from input file and insert all code into runScript.sh or .bat" +// " Example of use: cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\""}, +// {"-verbose [0-3]", "Shows debug log"}, - } - }, +// } +// }, { "Part 3 Control of packages options", { {"-targetPackage [package;tar1,package;tar2]", "Creates a new package and adds 'tar1 and tar2' to it." diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 905e83c..8dcfcf8 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -111,11 +111,6 @@ QString MetaFileManager::generateCustoScriptBlok(bool bat) const { auto cstSh = QuasarAppUtils::Params::getArg("customScript", ""); if (cstSh.size()) { - QuasarAppUtils::Params::log("The customScript option are depricated!." - " This option will be removed into next release cqtdeployer." - " Please use the runScript option", - QuasarAppUtils::Warning); - res = "\n" + commentMarker + "Begin Custom Script (generated by customScript flag)\n" "%0\n" + diff --git a/QuasarAppLib b/QuasarAppLib index fc80dba..93839d1 160000 --- a/QuasarAppLib +++ b/QuasarAppLib @@ -1 +1 @@ -Subproject commit fc80dba2923bd6ac8e03091c6025c16c317f5d3d +Subproject commit 93839d1dc0faab01d81a57bb0e8ef418e463675c From 7ef3e58cfd543280c3214f559ca50c545593ff83 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 28 Jul 2021 12:39:25 +0300 Subject: [PATCH 107/222] ref #421 added new help page --- CQtDeployer/main.cpp | 7 +- Deploy/configparser.cpp | 9 +- Deploy/deploycore.cpp | 413 ++++++++++++++++++---------------------- Deploy/deploycore.h | 3 +- Deploy/filemanager.cpp | 3 + QuasarAppLib | 2 +- 6 files changed, 197 insertions(+), 240 deletions(-) diff --git a/CQtDeployer/main.cpp b/CQtDeployer/main.cpp index fbbb40b..560f014 100644 --- a/CQtDeployer/main.cpp +++ b/CQtDeployer/main.cpp @@ -21,10 +21,9 @@ int main(int argc, char *argv[]) { QCoreApplication::setApplicationName("CQtDeployer"); - if (!QuasarAppUtils::Params::parseParams(argc, argv)) { - QuasarAppUtils::Params::log("Wrong parameters", QuasarAppUtils::Warning); - DeployCore::help(); - exit(0); + if (!QuasarAppUtils::Params::parseParams(argc, argv, DeployCore::avilableOptions())) { + QuasarAppUtils::Params::log("Wrong parameters. Please use the 'help' of 'h' option for show help page.", QuasarAppUtils::Warning); + exit(4); } Deploy deploy; diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index acd42b7..4890917 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -273,9 +273,7 @@ QJsonValue ConfigParser::writeKeyArray(int separatorLvl, const QString ¶mete void ConfigParser::writeKey(const QString& key, QJsonObject& obj, const QString& confFileDir) const { - if (QuasarAppUtils::Params::isEndable(key)) { - obj[key] = writeKeyArray(0, QuasarAppUtils::Params::getArg(key), confFileDir); - } + obj[key] = writeKeyArray(0, QuasarAppUtils::Params::getArg(key), confFileDir); } QString ConfigParser::readKeyArray(int separatorLvl, const QJsonArray &array, @@ -357,9 +355,10 @@ bool ConfigParser::createFromDeploy(const QString& confFile) const { auto info = QFileInfo(confFile); - const auto keys = DeployCore::helpKeys(); + const auto keys = QuasarAppUtils::Params::getUserParamsMap().keys(); for (const auto &key :keys) { - writeKey(key, obj, info.absolutePath()); + if (key != "confFile") + writeKey(key, obj, info.absolutePath()); } if (!QFile::exists(info.absolutePath()) && diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 78debba..e0d9af9 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -7,7 +7,6 @@ #include "extracter.h" #include "deploycore.h" -#include "quasarapp.h" #include "pathutils.h" #include "pluginsparser.h" @@ -185,103 +184,106 @@ RunMode DeployCore::getMode() { return RunMode::Info; } -void DeployCore::help() { - +QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { QString group = "Part 1 Boolean options"; - QuasarAppUtils::OptionsDataList _help = {}; - _help.insert(group, {QuasarAppUtils::OptionData{ - {"init"}, + QuasarAppUtils::OptionsDataList help = {}; + help.insert(group, {QuasarAppUtils::OptionData{ + {"init"}, "", "will initialize cqtdeployer.json file (configuration file).", "'cqtdeployer init' - for initialize base package configuration. " "'cqtdeployer -init multi' - for initialize multi package configuration " "'cqtdeployer -init single' - for initialize singel package configuration" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"clear"}, "", "Deletes deployable files of the previous session." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"force-clear"}, "", "Deletes the destination directory before deployment." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noStrip"}, "", "Skips strip step" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noTranslations"}, "", "Skips the translations files. It doesn't work without qmake." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noOverwrite"}, "", "Prevents replacing existing files." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noCheckRPATH"}, "", "Disables automatic search of paths to qmake in executable files." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noCheckPATH"}, "", "Disables automatic search of paths to qmake in system PATH." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noRecursiveiIgnoreEnv"}, "", "Disables recursive ignore for ignoreEnv option." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ - {"v", "version"}, + help.insert(group, {QuasarAppUtils::OptionData{ + {"v", "version"}, "", "Shows compiled version" }}); - - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ + {"h", "help"}, "", + "Show all help or help of the selected options." + " You can add any another option to a command line for show help about using options" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ {"qif","-qif"}, "", "Create the QIF installer for deployment programm" " You can specify the path to your own installer template.", "Examples: cqtdeployer -qif path/to/myCustom/qif." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"qifFromSystem"}, "", "force use system binarycreator tool of qif from path or qt" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"zip"}, "", "Create the ZIP arhive for deployment programm" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"deb", "-deb"}, "", "Create the deb package for deployment programm" " You can specify the path to your own debian template.", "cqtdeployer -deb path/to/myCustom/DEBIAN." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"deploySystem"}, "", "Deploys all libraries." " Not recomendet because there may be conflicts with system libraries" " (on snap version you need to turn on permission)" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noQt"}, "", "Ignors the error of initialize of a qmake. Use only if your application does not use the qt framework." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"allowEmptyPackages"}, "", "Allows configure the empty packages." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"getDefaultTemplate"}, "", "Extracts defaults deb or qif templates." " All templates extract into targetDirectory." " For change target directory use the targetDir option.", "cqtdeployer -bin myExecutable getDefaultTemplate qif deb." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"noHashSum"}, "", "This option disable computation of a packages hash sum" }}); group = "Part 2 Deploy options"; - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-bin"}, "{list,params}", "Files to deploy or folders that contain files to deploy.", "-bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll." @@ -292,73 +294,215 @@ void DeployCore::help() { " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-binPrefix"}, "{prefixPath}", "Sets prefix path for bin option.", "-bin path/MyExecutable is some as -bin MyExecutable -binPrefix path" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-confFile"}, "{params}", "The path to the json file with all deployment configurations. Using this file," " you can add the necessary options, thereby simplifying the command invocation in the console." " However, the parameters in Kansol have a higher priority than in the file." " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-qmlDir"}, "{params}", "Sets path to Qml data dir", "-qmlDir ~/my/project/qml" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-qmake"}, "{params}", "Sets path to the qmake executable.", "-qmake ~/Qt/bin/qmake or -qmake ~/Qt/bin/qmake.exe" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-ignore"}, "{list,params}", "Sets the list of libs to ignore.", "-ignore libicudata.so.56,libicudata2.so.56" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-ignoreEnv"}, "{list,params}", "Sets the list of the environment to ignore.", "-ignoreEnv /bad/dir,/my/bad/Dir" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-libDir"}, "{list,params}", "Sets additional paths for extra libs of an app.", "-libDir ~/myLib,~/newLibs" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-extraLibs"}, "{list,params}", "Sets the mask of the library name for forced copying.", "\"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." " This option is case-insensitive on Windows and case-sensitive on other platforms." " This option will only search libraries in system environments similar to **deploySystem**." }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-customScript"}, "{scriptCode}", "Insert extra code inTo All run script.", "", " This option will be removed into next release cqtdeployer." " Please use the runScript option" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-recursiveDepth"}, "{params}", "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-targetDir"}, "{params}", "Sets target directory(by default it is the path to the first deployable file)" }}); - _help.insert(group, {QuasarAppUtils::OptionData{ + help.insert(group, {QuasarAppUtils::OptionData{ {"-runScript"}, "{list,parems}", "forces cqtdeployer swap default run script to new from the arguments of option." " This option copy all content from input file and insert all code into runScript.sh or .bat", "cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\"" }}); + group = "Part 3 Control of packages options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-targetPackage"}, "{package;tar1,package;tar2}", + "Creates a new package and adds 'tar1 and tar2' to it. " + "If you want configure the package that do not have any targets use the allowEmptyPackages option." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qmlOut"}, "{package;path,path}", + "Sets path to qml out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-libOut"}, "{package;path,path}", + "Sets path to libraries out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-trOut"}, "{package;path,path}", + "Sets path to Sets path to translations out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-pluginOut"}, "{package;path,path}", + "Sets path to plugins out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-binOut"}, "{package;path,path}", + "Sets path to binary out directory" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-recOut"}, "{package;path,path}", + "Sets path to recurses out directory" + }}); + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-extraDataOut"}, "{package;path,path}", + "Sets path to extra data files out directory. By Default it is root dir of the distribution." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-name"}, "{package;val,val}", + "Sets name for a package." + "If this if you do not specify a package, the value will be assigned to the default package ("")" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-description"}, "{package;val,val}", + "Sets description for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-deployVersion"}, "{package;val,val}", + "Sets version for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-releaseDate"}, "{package;val,val}", + "Sets release date for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-publisher"}, "{package;val,val}", + "Sets publisher for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-homePage"}, "{package;val,val}", + "Sets the home page url for a package" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-prefix"}, "{package;val,val}", + "Sets the prefix for the package relatively a target directory " + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-extraData"}, "{package;val,val}", + "Adds the extra files or directories like a target. The selected directory will be copy to the extraDataOut location with save own structure." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-tr"}, "{package;val,val}", + "Adds qm files into the translations folder." + }}); + + group = "Part 4 Control of packages options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-icon"}, "{target;val,val}", + "Sets path to icon for a targets" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-disableRunScript"}, "{package;val,val}", + "Disables a generation of run script for selected targets" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-disableShortCut"}, "{package;val,val}", + "Disables a generation of shortcut for selected targets" + }}); + + group = "Part 5 Plugins Control Options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-extraPlugin"}, "{package;val1;val2,SingeleVal}", + "Sets an additional path to third-party application plug-in" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-enablePlugins"}, "{package;val1;val2,SingeleVa}", + "Enables additional plugins for distribution." + " By default disabled next plugins: " + PluginsParser::defaultForbidenPlugins().join(',') + " if you want enable" + " it then use '-enablePlugins " + PluginsParser::defaultForbidenPlugins().join(',') + "' option" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-disablePlugins"}, "{package;val1;val2,SingeleVal}", + "Disables plugins for distribution. " + "You can disable any plugin of your Qt build, just see the yourQtFolder/plugins forlder for available plugins." + " Example if you want disable qxcb plugin: -disablePlugins qxcb." + " Note that the name of the plugin is indicated without its extension" + }}); + + group = "Part 6 QtInstallFramework options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifStyle"}, "{path/to/style.css}", + "Sets the path to the CSS style file or sets the default style." + " Available styles: quasar, quasarDark" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifBanner"}, "{path/to/banner.png}", + "Sets path to the banner png file." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifLogo"}, "{path/to/logo.png}", + "Sets path to the logo png file." + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifOut"}, "{nameOfOutputInstallerFile}", + "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically." + }}); + + return help; +} + +void DeployCore::help() { + + auto localHelp = QuasarAppUtils::Params::getHelpOfInputOptions(); + + if(!localHelp.isEmpty()) { + QuasarAppUtils::Help::print(localHelp); + return; + } + + // help extra data; QuasarAppUtils::Help::Charters help = { { "Part 0 General", { @@ -366,135 +510,6 @@ void DeployCore::help() { {"Usage", "cqtdeployer <-bin [params]> [options]"}, } }, -// { -// "Part 1 Boolean options", { -// {"init", "will initialize cqtdeployer.json file (configuration file)." -// " For example: 'cqtdeployer init' - for initialize base package configuration." -// " 'cqtdeployer -init multi' - for initialize multi package configuration" -// " 'cqtdeployer -init single' - for initialize singel package configuration"}, -// {"help / h", "Shows help"}, -// {"clear", "Deletes deployable files of the previous session."}, -// {"force-clear", "Deletes the destination directory before deployment."}, -// {"noStrip", "Skips strip step"}, -// {"noTranslations", "Skips the translations files. It doesn't work without qmake."}, -// {"noOverwrite", "Prevents replacing existing files."}, -// {"noCheckRPATH", "Disables automatic search of paths to qmake in executable files."}, -// {"noCheckPATH", "Disables automatic search of paths to qmake in system PATH."}, -// {"noRecursiveiIgnoreEnv", "Disables recursive ignore for ignoreEnv option."}, -// {"v / version", "Shows compiled version"}, -// {"qif", "Create the QIF installer for deployment programm" -// " You can specify the path to your own installer template. Examples: cqtdeployer -qif path/to/myCustom/qif."}, -// {"qifFromSystem", "force use system binarycreator tool of qif from path or qt"}, -// {"zip", "Create the ZIP arhive for deployment programm"}, -// {"deb", "Create the deb package for deployment programm" -// " You can specify the path to your own debian template. Examples: cqtdeployer -deb path/to/myCustom/DEBIAN."}, -// {"deploySystem", "Deploys all libraries." -// " Not recomendet because there may be conflicts with system libraries" -// " (on snap version you need to turn on permission)"}, -// {"noQt", "Ignors the error of initialize of a qmake. Use only if your application does not use the qt framework."}, -// {"allowEmptyPackages", "Allows configure the empty packages."}, -// {"getDefaultTemplate", "Extracts defaults deb or qif templates." -// " All templates extract into targetDirectory." -// " For change target directory use the targetDir option." -// " Example: cqtdeployer -bin myExecutable getDefaultTemplate qif deb."}, -// {"noHashSum", "This option disable computation of a packages hash sum"} - - -// } -// }, -// { -// "Part 2 Deploy options", { -// {"-bin [list, params]", "Files to deploy or folders that contain files to deploy." -// " For example -bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll." -// " For files: These files will be unconditional copied to the destination directory," -// " regardless of their format or suffix." -// " For folders:" -// " CCQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory." -// " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths."}, -// {"-binPrefix [prefixPath]", "Sets prefix path for bin option." -// " Example: " -// "" }, - -// {"-confFile [params]", "The path to the json file with all deployment configurations. Using this file," -// " you can add the necessary options, thereby simplifying the command invocation in the console." -// " However, the parameters in Kansol have a higher priority than in the file." -// " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn"}, -// {"-qmlDir [params]", "Qml data dir. For example -qmlDir ~/my/project/qml"}, -// {"-qmake [params]", "Deployable file or folder. For example -bin ~/my/project/bin/,~/my/project/bin.exe"}, -// {"-ignore [list,params]", "The list of libs to ignore. For example -ignore libicudata.so.56,libicudata2.so.56"}, -// {"-ignoreEnv [list,params]", "The list of the environment to ignore. For example -ignoreEnv /bad/dir,/my/bad/Dir"}, -// {"-libDir [list,params]", "Sets additional paths for extra libs of an app. For example -libDir ~/myLib,~/newLibs"}, -// {"-extraLibs [list,params]", "Sets the mask of the library name for forced copying." -// " Example: \"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." -// " This option is case-insensitive on Windows and case-sensitive on other platforms." -// " This option will only search libraries in system environments similar to **deploySystem**."}, -// {"-customScript [scriptCode]", "Insert extra code inTo All run script."}, -// {"-recursiveDepth [params]", "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)"}, -// {"-targetDir [params]", "Sets target directory(by default it is the path to the first deployable file)"}, -// {"-runScript [list,parems]", "forces cqtdeployer swap default run script to new from the arguments of option." -// " This option copy all content from input file and insert all code into runScript.sh or .bat" -// " Example of use: cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\""}, -// {"-verbose [0-3]", "Shows debug log"}, - -// } -// }, - { - "Part 3 Control of packages options", { - {"-targetPackage [package;tar1,package;tar2]", "Creates a new package and adds 'tar1 and tar2' to it." - "If you want configure the package that do not have any targets use the allowEmptyPackages option."}, - {"-qmlOut [package;path,path]", "Sets path to qml out directory"}, - {"-libOut [package;path,path]", "Sets path to libraries out directory"}, - {"-trOut [package;path,path]", "Sets path to translations out directory"}, - {"-pluginOut [package;path,path]", "Sets path to plugins out directory"}, - {"-binOut [package;path,path]", "Sets path to binary out directory"}, - {"-recOut [package;path,path]", "Sets path to recurses out directory"}, - {"-extraDataOut [package;path,path]", "Sets path to extra data files out directory. By Default it is root dir of the distribution."}, - {"-name [package;val,val]", "Sets name for a package. " - "If this if you do not specify a package, the value will be assigned to the default package ("")"}, - {"-description [package;val,val]", "Sets description for a package"}, - {"-deployVersion [package;val,val]", "Sets version for a package"}, - {"-releaseDate [package;val,val]", "Sets release date for a package"}, - {"-publisher [package;val,val]", "Sets publisher for a package"}, - {"-homePage [package;val,val]", "Sets the home page url for a package"}, - {"-prefix [package;val,val]", "Sets the prefix for the package relatively a target directory "}, - {"-extraData [package;val,val]", "Adds the extra files or directories like a target. The selected directory will be copy to the extraDataOut location with save own structure."}, - {"-tr [package;val,val]", "Adds qm files into the translations folder."}, - - - } - }, - - { - "Part 4 Control of packages options", { - {"-icon [target;val,val]", "Sets path to icon for a targets"}, - {"-disableRunScript [target;val,val]", "Disables a generation of run script for selected targets"}, - {"-disableShortCut [target;val,val]", "Disables a generation of shortcut for selected targets"} - - } - }, - - { - "Part 5 Plugins Control Options", { - {"-extraPlugin [package;val1;val2,SingeleVal]", "Sets an additional path to third-party application plug-in"}, - {"-enablePlugins [package;val1;val2,SingeleVal", "Enables additional plugins for distribution." - " By default disabled next plugins: " + PluginsParser::defaultForbidenPlugins().join(',') + " if you want enable" - " it then use '-enablePlugins " + PluginsParser::defaultForbidenPlugins().join(',') + "' option"}, - {"-disablePlugins [package;val1;val2,SingeleVal]", "Disables plugins for distribution. " - "You can disable any plugin of your Qt build, just see the yourQtFolder/plugins forlder for available plugins." - " Example if you want disable qxcb plugin: -disablePlugins qxcb." - " Note that the name of the plugin is indicated without its extension"}, - - } - }, - { - "Part 6 QtInstallFramework options", { - {"-qifStyle [path/to/style.css]", "Sets the path to the CSS style file or sets the default style." - " Available styles: quasar, quasarDark"}, - {"-qifBanner [path/to/banner.png]", "Sets path to the banner png file."}, - {"-qifLogo [path/to/logo.png]", "Sets path to the logo png file."}, - {"-qifOut [nameOfOutputInstallerFile", "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically."}, - } - }, { "Support", { {"Support for you", "If you have any questions or problems with cqtdeployer you can write to us about the problem on the GitHub page: https://github.com/QuasarApp/CQtDeployer/issues"}, @@ -503,73 +518,13 @@ void DeployCore::help() { } }; - help.unite(QuasarAppUtils::Params::getParamsHelp()); + help += QuasarAppUtils::Params::getHelp(); QuasarAppUtils::Help::print(help); return; } -QStringList DeployCore::helpKeys() { - return { - "help", - "noOverwrite", - "bin", - "extraData", - "qmlDir", - "deploySystem", - "qmake", - "ignore", - "ignoreEnv", - "clear", - "force-clear", - "libDir", - "extraLibs", - "extraPlugin", - "recursiveDepth", - "targetDir", - "targetPackage", - "noStrip", - "extractPlugins", - "noTranslations", - "noRecursiveiIgnoreEnv", - "qifFromSystem", - "qmlOut", - "libOut", - "trOut", - "pluginOut", - "binOut", - "recOut", - "extraDataOut", - "version", - "verbose", - "qif", - "noCheckRPATH", - "noCheckPATH", - "name", - "description", - "deployVersion", - "releaseDate", - "icon", - "publisher", - "customScript", - "qifStyle", - "qifBanner", - "qifLogo", - "zip", - "noQt", - "homePage", - "prefix", - "deb", - "allowEmptyPackages", - "runScript", - "getDefaultTemplate", - "tr", - "disableRunScript", - "disableShortCut" - }; -} - QStringList DeployCore::extractTranslation(const QSet<QString> &libs) { QSet<QString> res; const size_t qtModulesCount = sizeof(qtModuleEntries) / sizeof(QtModuleEntry); diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 2628091..f091966 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -13,6 +13,7 @@ #include <QFileInfo> #include "deploy_global.h" #include "defines.h" +#include "quasarapp.h" enum MSVCVersion: int { MSVC_Unknown = 0x0, @@ -249,7 +250,7 @@ public: static bool isGui(DeployCore::QtModule module); static RunMode getMode(); static void help(); - static QStringList helpKeys(); + static QuasarAppUtils::OptionsDataList avilableOptions(); static QStringList extractTranslation(const QSet<QString> &libs); static QString getAppVersion(); diff --git a/Deploy/filemanager.cpp b/Deploy/filemanager.cpp index 688ec2c..1d5d73b 100644 --- a/Deploy/filemanager.cpp +++ b/Deploy/filemanager.cpp @@ -117,6 +117,9 @@ void FileManager::removeFromDeployed(const QString &path) { } void FileManager::saveDeploymendFiles(const QString& targetDir) { + if (targetDir.isEmpty()) + return; + auto settings = QuasarAppUtils::Settings::instance(); settings->setValue(targetDir, getDeployedFilesStringList()); } diff --git a/QuasarAppLib b/QuasarAppLib index 93839d1..cae8747 160000 --- a/QuasarAppLib +++ b/QuasarAppLib @@ -1 +1 @@ -Subproject commit 93839d1dc0faab01d81a57bb0e8ef418e463675c +Subproject commit cae874728fe3e86e98d18ba6654654ce0717d04e From 38fbafa8b576bec58e5c653838586affa736a47d Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 28 Jul 2021 13:30:30 +0300 Subject: [PATCH 108/222] update quasarapplib --- QuasarAppLib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QuasarAppLib b/QuasarAppLib index cae8747..d69306c 160000 --- a/QuasarAppLib +++ b/QuasarAppLib @@ -1 +1 @@ -Subproject commit cae874728fe3e86e98d18ba6654654ce0717d04e +Subproject commit d69306c1210fe6def35cf0ff7323e3e82f9ae8f4 From 05e2e8e7415cb9e7cf6af098b1e3b093a169aa34 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 28 Jul 2021 13:40:09 +0300 Subject: [PATCH 109/222] added missing arguments --- Deploy/deploycore.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index e0d9af9..23a6708 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -354,6 +354,14 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { {"-targetDir"}, "{params}", "Sets target directory(by default it is the path to the first deployable file)" }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-installDirDeb"}, "{params}", + "Sets install target directory fordebian package (by default it is /opt path)" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-installDirQIFW"}, "{params}", + "Sets install target directory for installers (by default it is /home path)" + }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-runScript"}, "{list,parems}", "forces cqtdeployer swap default run script to new from the arguments of option." From 090519e236da4d7da5b32c506b6b002a23556ccb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 28 Jul 2021 13:45:34 +0300 Subject: [PATCH 110/222] v1.5.3.0 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 2 +- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 7cd2662..56b3cd6 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.2.7 +VERSION = 1.5.3.0 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 2d1eceb..6366e10 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.7</Version> + <Version>1.5.3.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 519b4d9..daa86a2 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.2.7</Version> + <Version>1.5.3.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 8f65be9..bc190ed 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -20,7 +20,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.2.7 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.3.0 DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 93783c7..eebd8c2 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.2.7</Version> + <Version>1.5.3.0</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 76ca841..0084308 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.2.7 +Version=1.5.3.0 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.2.7 +X-GNOME-Bugzilla-Version=1.5.3.0 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8bd8171..28f523f 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.2.7' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.3.0' # 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 65a765fed305b5c07d5350783e17b3150176481f Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 29 Jul 2021 11:06:37 +0300 Subject: [PATCH 111/222] fix change log --- md/en/Changelog.md | 11 +++++++++++ md/ru/Changelog.md | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/md/en/Changelog.md b/md/en/Changelog.md index fb0d77d..c623563 100755 --- a/md/en/Changelog.md +++ b/md/en/Changelog.md @@ -1,5 +1,16 @@ # Change log +## CQtDeployer 1.5.3 + +## New options +* installDirDeb - Sets install target directory for debian package (by default it is /opt path) #640 +* installDirQIFW - Sets install target directory for installers (by default it is /home path) #640 + +## Bug fixes : +* Fix warning on installer fix #628 +* Added support validation input options of the command line fix #421 +* Added Error message for conflict between libDir and targetDir options #629 + ## CQtDeployer 1.5.2 ### New parameters diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index d6d55a0..cccab25 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -2,6 +2,17 @@ Журнал изменений для всех версий CQtDeployer. +## CQtDeployer 1.5.3 + +## Новые параметры +* installDirDeb - Устанавливает целевой каталог установки для пакета debian (по умолчанию это / opt путь) +* installDirQIFW - Устанавливает целевой каталог установки для установщиков (по умолчанию это / home путь) + +## Исправления +* Исправлено предупреждение при установке В windows +* Добавлена пороверка параметров ввода +* Добавлено сообщение об ошибке из-за конфликта между опциями libDir и targetDir + ## CQtDeployer 1.5.2 ### Новые параметры From 82c3b1a97132b02c978aabaaf4d14712d74c3ceb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 9 Aug 2021 10:58:48 +0300 Subject: [PATCH 112/222] fix install docs --- md/en/Build-and-Install.md | 51 ++++++++++++++++++++++++++++++++------ md/ru/Build-and-Install.md | 45 +++++++++++++++++++++++++++------ 2 files changed, 82 insertions(+), 14 deletions(-) diff --git a/md/en/Build-and-Install.md b/md/en/Build-and-Install.md index 9995601..8efa35d 100644 --- a/md/en/Build-and-Install.md +++ b/md/en/Build-and-Install.md @@ -7,11 +7,11 @@ - cd CQtDeployer - git submodule update --init --recursive - qmake -r - - Here you must definitely call the qmake that was loaded from the 1st item. - - Example: ~/Qt/5.15.0/gcc_64/bin/qmake -r + - Here you must definitely call the qmake that was loaded from the 1st item. + - Example: ~/Qt/5.15.0/gcc_64/bin/qmake -r - make -j$(nproc) - make deploy - - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) + - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - ./Distro/CQtDeployerInstaller.run ## Build for Windows (CMD) @@ -21,24 +21,60 @@ - cd CQtDeployer - git submodule update --init --recursive - SET PATH=C:/Qt/Tools/mingw810_64/bin;%PATH% - - It is important to set up the qt environment. + - It is important to set up the qt environment. - qmake.exe -r - - Here you must definitely call the qmake that was loaded from the 1st item. - - Example: C:/Qt/5.15.0/mingw81_64/bin/qmake.exe -r + - Here you must definitely call the qmake that was loaded from the 1st item. + - Example: C:/Qt/5.15.0/mingw81_64/bin/qmake.exe -r - migw32-make -j8 - migw32-make deploy - - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) + - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - ./Distro/CQtDeployerInstaller.exe + --- # Installation without building You can download the latest version of the application [here](https://github.com/QuasarApp/CQtDeployer/releases). +### Installer + +- [Download](https://github.com/QuasarApp/CQtDeployer/releases) CQtDeployer_X.X.X.X_Installer_Linux64.run or CQtDeployer_X.X.X.X_Installer_Win64.exe + +#### Install without gui + +##### Linux + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Linux64.run +chmod +x CQtDeployer_1.5.3.0_Installer_Linux64.run +./CQtDeployer_1.5.3.0_Installer_Linux64.run install +``` + +##### Windows + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Win64.exe +CQtDeployer_1.5.3.0_Installer_Win64.exe install +``` + +### Deb + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Linux64.deb +sudo dpkg -i CQtDeployer_1.5.3.0_Linux64.deb +``` + + +**Note** the package name and links can be changed, please check [Download](https://github.com/QuasarApp/CQtDeployer/releases) page before installation. + ### Snap [](https://snapcraft.io/cqtdeployer) +``` bash +sudo snap install cqtdeployer +``` + #### Features of the snap version If you are using the snap version of the application. Enable all permissions for cqtdeployer. @@ -46,6 +82,7 @@ this can be done in the snap-store Or starting with ubuntu 20.04 in the ubuntu application settings manager. If you do not have the GUI then you can enable all permissions using next commands: + ``` bash sudo snap connect cqtdeployer:process-control sudo snap connect cqtdeployer:removable-media diff --git a/md/ru/Build-and-Install.md b/md/ru/Build-and-Install.md index 97b32ff..85be235 100644 --- a/md/ru/Build-and-Install.md +++ b/md/ru/Build-and-Install.md @@ -7,11 +7,11 @@ - cd CQtDeployer - git submodule update --init --recursive - qmake -r - - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. - - Пример: ~/Qt/5.15.0/gcc_64/bin/qmake -r + - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. + - Пример: ~/Qt/5.15.0/gcc_64/bin/qmake -r - make -j$(nproc) - make deploy - - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) + - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) ## Build для Windows (CMD) @@ -33,10 +33,43 @@ # Установка без сборки -## Snap +Вы можете загрузить последнее подготовленные сборки [здесь](https://github.com/QuasarApp/CQtDeployer/releases). + +### Установщик + +- [Загрузить](https://github.com/QuasarApp/CQtDeployer/releases) CQtDeployer_X.X.X.X_Installer_Linux64.run или CQtDeployer_X.X.X.X_Installer_Win64.exe + +#### Установка в консоли (CMD) без GUI + +##### Linux + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Linux64.run +chmod +x CQtDeployer_1.5.3.0_Installer_Linux64.run +./CQtDeployer_1.5.3.0_Installer_Linux64.run install +``` + +##### Windows + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Win64.exe +CQtDeployer_1.5.3.0_Installer_Win64.exe install +``` + +### Deb + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Linux64.deb +sudo dpkg -i CQtDeployer_1.5.3.0_Linux64.deb +``` + +**Примечание** имя пакета и ссылки могут быть изменены, пожалуйста, проверьте страницу [Загрузки](https://github.com/QuasarApp/CQtDeployer/releases) перед установкой. + +### Snap [](https://snapcraft.io/cqtdeployer) + #### Особенности snap версии Если вы используете snap версию приложения. Включите все разрешения для cqtdeployer. @@ -44,12 +77,10 @@ Или начиная с ubuntu 20.04 в менеджере настроек приложений ubuntu. Если у вас нет графического интерфейса, вы можете включить все разрешения, используя следующие команды: + ``` bash sudo snap connect cqtdeployer:process-control sudo snap connect cqtdeployer:removable-media sudo snap connect cqtdeployer:system-backup ``` -## Установщик - -Вы можете загрузить последнюю версию приложения [здесь](https://github.com/QuasarApp/CQtDeployer/releases). From bd054959e8e2425b2e5fb8edd8fe03474345e2c0 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 9 Aug 2021 11:42:51 +0300 Subject: [PATCH 113/222] fix title --- md/en/Build-and-Install.md | 116 ++++++++++++++++++------------------- md/ru/Build-and-Install.md | 68 +++++++++++----------- 2 files changed, 92 insertions(+), 92 deletions(-) diff --git a/md/en/Build-and-Install.md b/md/en/Build-and-Install.md index 8efa35d..abc4ea3 100644 --- a/md/en/Build-and-Install.md +++ b/md/en/Build-and-Install.md @@ -1,3 +1,61 @@ +# Install CQtDeployer + +You can download the latest version of the application [here](https://github.com/QuasarApp/CQtDeployer/releases). + +### Installer + +- [Download](https://github.com/QuasarApp/CQtDeployer/releases) CQtDeployer_X.X.X.X_Installer_Linux64.run or CQtDeployer_X.X.X.X_Installer_Win64.exe + +#### Install without gui + +##### Linux + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Linux64.run +chmod +x CQtDeployer_1.5.3.0_Installer_Linux64.run +./CQtDeployer_1.5.3.0_Installer_Linux64.run install +``` + +##### Windows + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Win64.exe +CQtDeployer_1.5.3.0_Installer_Win64.exe install +``` + +### Deb + +``` bash +wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Linux64.deb +sudo dpkg -i CQtDeployer_1.5.3.0_Linux64.deb +``` + +**Note** the package name and links can be changed, please check [Download](https://github.com/QuasarApp/CQtDeployer/releases) page before installation. + +### Snap + +[](https://snapcraft.io/cqtdeployer) + +``` bash +sudo snap install cqtdeployer +``` + +#### Features of the snap version + +If you are using the snap version of the application. Enable all permissions for cqtdeployer. +this can be done in the snap-store +Or starting with ubuntu 20.04 in the ubuntu application settings manager. + +If you do not have the GUI then you can enable all permissions using next commands: + +``` bash +sudo snap connect cqtdeployer:process-control +sudo snap connect cqtdeployer:removable-media +sudo snap connect cqtdeployer:system-backup +``` + +--- + # Build from sources ## Build for Linux @@ -30,61 +88,3 @@ - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - ./Distro/CQtDeployerInstaller.exe ---- - -# Installation without building - -You can download the latest version of the application [here](https://github.com/QuasarApp/CQtDeployer/releases). - -### Installer - -- [Download](https://github.com/QuasarApp/CQtDeployer/releases) CQtDeployer_X.X.X.X_Installer_Linux64.run or CQtDeployer_X.X.X.X_Installer_Win64.exe - -#### Install without gui - -##### Linux - -``` bash -wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Linux64.run -chmod +x CQtDeployer_1.5.3.0_Installer_Linux64.run -./CQtDeployer_1.5.3.0_Installer_Linux64.run install -``` - -##### Windows - -``` bash -wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Installer_Win64.exe -CQtDeployer_1.5.3.0_Installer_Win64.exe install -``` - -### Deb - -``` bash -wget https://github.com/QuasarApp/CQtDeployer/releases/download/1.5.3/CQtDeployer_1.5.3.0_Linux64.deb -sudo dpkg -i CQtDeployer_1.5.3.0_Linux64.deb -``` - - -**Note** the package name and links can be changed, please check [Download](https://github.com/QuasarApp/CQtDeployer/releases) page before installation. - -### Snap - -[](https://snapcraft.io/cqtdeployer) - -``` bash -sudo snap install cqtdeployer -``` - -#### Features of the snap version - -If you are using the snap version of the application. Enable all permissions for cqtdeployer. -this can be done in the snap-store -Or starting with ubuntu 20.04 in the ubuntu application settings manager. - -If you do not have the GUI then you can enable all permissions using next commands: - -``` bash -sudo snap connect cqtdeployer:process-control -sudo snap connect cqtdeployer:removable-media -sudo snap connect cqtdeployer:system-backup -``` diff --git a/md/ru/Build-and-Install.md b/md/ru/Build-and-Install.md index 85be235..7059c9b 100644 --- a/md/ru/Build-and-Install.md +++ b/md/ru/Build-and-Install.md @@ -1,37 +1,4 @@ -# Сборка и установка - -## Build для Linux - -- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- qmake -r - - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. - - Пример: ~/Qt/5.15.0/gcc_64/bin/qmake -r -- make -j$(nproc) -- make deploy - - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - -## Build для Windows (CMD) - -- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) -- git clone https://github.com/QuasarApp/CQtDeployer.git -- cd CQtDeployer -- git submodule update --init --recursive -- SET PATH=C:/Qt/Tools/mingw810_64/bin;%PATH% - - Здесь важно настроить окружение qt. -- qmake.exe -r - - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. - - Пример: C:/Qt/5.15.0/mingw81_64/bin/qmake.exe -r -- migw32-make -j8 -- migw32-make deploy - - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) -- ./Distro/CQtDeployerInstaller.exe - ---- - -# Установка без сборки +# Установка CQtDeployer Вы можете загрузить последнее подготовленные сборки [здесь](https://github.com/QuasarApp/CQtDeployer/releases). @@ -84,3 +51,36 @@ sudo snap connect cqtdeployer:removable-media sudo snap connect cqtdeployer:system-backup ``` +--- + +# Сборка из исходников + +## Build для Linux + +- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) +- git clone https://github.com/QuasarApp/CQtDeployer.git +- cd CQtDeployer +- git submodule update --init --recursive +- qmake -r + - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. + - Пример: ~/Qt/5.15.0/gcc_64/bin/qmake -r +- make -j$(nproc) +- make deploy + - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) + +## Build для Windows (CMD) + +- установите qt и qt QtInstallFrameWork из [Установщик qt](https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5) +- git clone https://github.com/QuasarApp/CQtDeployer.git +- cd CQtDeployer +- git submodule update --init --recursive +- SET PATH=C:/Qt/Tools/mingw810_64/bin;%PATH% + - Здесь важно настроить окружение qt. +- qmake.exe -r + - Здесь нужно обязательно вызвать тот qmake, который был загружен из 1го пункта. + - Пример: C:/Qt/5.15.0/mingw81_64/bin/qmake.exe -r +- migw32-make -j8 +- migw32-make deploy + - эта команда требует установленный [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) +- ./Distro/CQtDeployerInstaller.exe + From ad021e251a44f862dfbfedbc2a4a2fdcb7863be3 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 30 Aug 2021 13:24:37 +0300 Subject: [PATCH 114/222] ref #653 added new options --- Deploy/deploycore.cpp | 14 +++++++++++++- md/en/Options.md | 4 +++- md/ru/Options.md | 3 +++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 23a6708..7081f42 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -443,7 +443,7 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { "Adds qm files into the translations folder." }}); - group = "Part 4 Control of packages options"; + group = "Part 4 Control of target options"; help.insert(group, {QuasarAppUtils::OptionData{ {"-icon"}, "{target;val,val}", @@ -497,6 +497,18 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { {"-qifOut"}, "{nameOfOutputInstallerFile}", "Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically." }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifConfig"}, "{path/to/config.xml}", + "Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifPackages"}, "{path/to/packagesFodoler}", + "Sets a custom path to the packages directories. By default it is qif/packages" + }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifResources"}, "{path/to/resources1.qrc,path/to/resources2.qrc}", + "Sets a custom path to the resources files. By default this option is skipped" + }}); return help; } diff --git a/md/en/Options.md b/md/en/Options.md index 44a3b5e..9d4b922 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -152,6 +152,8 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifBanner [path/to/banner.png]| Sets path to the banner png file. | | -qifLogo [path/to/logo.png]| Sets path to the logo png file. | | -qifOut [nameOfOutputInstallerFile] | Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically. | - +| -qifConfig [path/to/config.xml] | Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml | +| -qifPackages [path/to/packagesFodoler] | Sets a custom path to the packages directories. By default it is qif/packages | +| -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Sets a custom path to the resources files. By default this option is skipped | #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.4/gcc_64/bin/qmake clear diff --git a/md/ru/Options.md b/md/ru/Options.md index d15ae33..89a4f78 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -148,6 +148,9 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | | -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | | -qifOut [nameOfOutputInstallerFile] | Устанавливает имя выходного установщика qifw. Примечание: для установщика Windows автоматически добавляется суффикс exe. | +| -qifConfig [path/to/config.xml] | Устанавливает пользовательский путь к файлу конфигурации установщика qt ifw. По умолчанию это qif/config/config.xml | +| -qifPackages [path/to/packagesFodoler] | Устанавливает пользовательский путь к каталогам пакетов. По умолчанию это qif/packages | +| -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Устанавливает пользовательский путь к файлам ресурсов. По умолчанию эта опция пропущена | From 6feb83b077183caa4d29b639590e2dd9bd125184 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 31 Aug 2021 10:50:03 +0300 Subject: [PATCH 115/222] ref #653 "tests passed" --- Deploy/Distributions/qif.cpp | 15 +++++-- .../testRes/QIFCustomTemplate/customRes.qrc | 5 +++ .../QIFCustomTemplate/customconfig.xml | 11 ++++++ .../meta/installscript.qs | 39 +++++++++++++++++++ .../meta/package.xml | 8 ++++ UnitTests/tst_deploytest.cpp | 31 +++++++++++++++ 6 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 UnitTests/testRes/QIFCustomTemplate/customRes.qrc create mode 100644 UnitTests/testRes/QIFCustomTemplate/customconfig.xml create mode 100644 UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/installscript.qs create mode 100644 UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/package.xml diff --git a/Deploy/Distributions/qif.cpp b/Deploy/Distributions/qif.cpp index 413a76c..5fb4507 100644 --- a/Deploy/Distributions/qif.cpp +++ b/Deploy/Distributions/qif.cpp @@ -72,13 +72,20 @@ QList<SystemCommandData> QIF::runCmd() { cmd.arguments = QStringList{ "-c", - location + "/config/config.xml", + QuasarAppUtils::Params::getArg("qifConfig", location + "/config/config.xml"), "-p", - location + "/packages/", - "-v", - installerFile() + QuasarAppUtils::Params::getArg("qifPackages", location + "/packages/"), + "-v" }; + QString resources = QuasarAppUtils::Params::getArg("qifResources"); + if (resources.size()) { + cmd.arguments.push_back("-r"); + cmd.arguments.push_back(resources); + } + + cmd.arguments.push_back(installerFile()); + return {cmd}; } diff --git a/UnitTests/testRes/QIFCustomTemplate/customRes.qrc b/UnitTests/testRes/QIFCustomTemplate/customRes.qrc new file mode 100644 index 0000000..eeb4453 --- /dev/null +++ b/UnitTests/testRes/QIFCustomTemplate/customRes.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>customconfig.xml</file> + </qresource> +</RCC> diff --git a/UnitTests/testRes/QIFCustomTemplate/customconfig.xml b/UnitTests/testRes/QIFCustomTemplate/customconfig.xml new file mode 100644 index 0000000..72b8992 --- /dev/null +++ b/UnitTests/testRes/QIFCustomTemplate/customconfig.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Installer> + <Name>Stylesheet Example</Name> + <Version>1.0.0</Version> + <Title>Stylesheet Example</Title> + <Publisher>Qt-Project</Publisher> + <StartMenuDir>Qt IFW Examples</StartMenuDir> + <TargetDir>@HomeDir@/IfwExamples/stylesheet</TargetDir> + <WizardStyle>Classic</WizardStyle> + <TitleColor>#FFFFFF</TitleColor> +</Installer> diff --git a/UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/installscript.qs b/UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/installscript.qs new file mode 100644 index 0000000..e99733f --- /dev/null +++ b/UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/installscript.qs @@ -0,0 +1,39 @@ +/************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Installer Framework. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** +** $QT_END_LICENSE$ +** +**************************************************************************/ + +function Component() +{ + // constructor + installer.setDefaultPageVisible(QInstaller.ComponentSelection, false); +} diff --git a/UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/package.xml b/UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/package.xml new file mode 100644 index 0000000..c0698a4 --- /dev/null +++ b/UnitTests/testRes/QIFCustomTemplate/custompackages/org.qtproject.ifw.example.stylesheet/meta/package.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Package> + <DisplayName>Dummy</DisplayName> + <ReleaseDate>2015-09-09</ReleaseDate> + <Version>1.0.1</Version> + <Default>true</Default> + <Script>installscript.qs</Script> +</Package> diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 0050454..cc57bd6 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -190,6 +190,8 @@ private slots: // note: this test checking in manual mode only. void testInstallDirsOptions(); + void testQIFResources(); + void customTest(); }; @@ -1575,6 +1577,35 @@ void deploytest::testInstallDirsOptions() { #endif } +void deploytest::testQIFResources() { + TestUtils utils; + +#ifdef Q_OS_UNIX + QString bin = {TestBinDir + "TestOnlyC"}; + + auto result = utils.createTree({{DISTRO_DIR + "/InstallerTestOnlyC.run"}, + {DISTRO_DIR + "/InstallerTestOnlyC.run.md5"}}); +#else + QString bin = {TestBinDir + "TestOnlyC.exe"}; + + auto result = utils.createTree({{DISTRO_DIR + "/InstallerTestOnlyC.exe"}, + {DISTRO_DIR + "/InstallerTestOnlyC.exe.md5"}}); +#endif + + + auto templateDir = TestBinDir + "/../../UnitTests/testRes/QIFCustomTemplate"; + runTestParams({ + "-bin", bin, + "clear", + "qif", + "-qifConfig", templateDir + "/customconfig.xml", + "-qifPackages", templateDir + "/custompackages", + "-qifResources", templateDir + "customRes.qrc" + }, &result + ); + +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); From f7576405e6791d5432e9b83b7c0aae14f70221d4 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 31 Aug 2021 11:42:45 +0300 Subject: [PATCH 116/222] ref #652 fix case sensitivity of checked libraries --- Deploy/Distributions/idistribution.cpp | 2 +- Deploy/dependenciesscanner.cpp | 2 +- Deploy/deploy_global.h | 6 -- Deploy/deploycore.cpp | 95 +++++++++++++++----------- Deploy/deploycore.h | 6 ++ Deploy/extracter.cpp | 2 +- Deploy/filemanager.cpp | 8 +-- Deploy/ignorerule.cpp | 2 +- Deploy/qtdir.cpp | 14 ++-- UnitTests/modulesqt513.cpp | 2 +- 10 files changed, 79 insertions(+), 60 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index d8f51d3..787041a 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -221,7 +221,7 @@ bool iDistribution::collectInfo(const DistroModule& pkg, bashShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; } - if (fileinfo.suffix().compare("exe", ONLY_WIN_CASE_INSENSIATIVE) == 0 || fileinfo.suffix().isEmpty()) { + if (fileinfo.suffix().compare("exe", Qt::CaseInsensitive) == 0 || fileinfo.suffix().isEmpty()) { if (cmdArray.size() > initSize) { cmdArray += ","; bashArray += " "; diff --git a/Deploy/dependenciesscanner.cpp b/Deploy/dependenciesscanner.cpp index 50f0e58..201ff09 100644 --- a/Deploy/dependenciesscanner.cpp +++ b/Deploy/dependenciesscanner.cpp @@ -149,7 +149,7 @@ void DependenciesScanner::recursiveDep(LibInfo &lib, QSet<LibInfo> &res, QSet<QS if (!scanedLib.isValid()) { QSet<LibInfo> listDep = {}; - if (!lib._name.compare(dep.value()._name, ONLY_WIN_CASE_INSENSIATIVE)) + if (!lib._name.compare(dep.value()._name, DeployCore::getCaseSensitivity(lib._name))) continue; recursiveDep(*dep, listDep, libStack); diff --git a/Deploy/deploy_global.h b/Deploy/deploy_global.h index 0c8145c..a1838b2 100644 --- a/Deploy/deploy_global.h +++ b/Deploy/deploy_global.h @@ -14,12 +14,6 @@ #define DISTRO_DIR QString("DistributionKit") -#ifdef Q_OS_WIN -#define ONLY_WIN_CASE_INSENSIATIVE Qt::CaseInsensitive -#else -#define ONLY_WIN_CASE_INSENSIATIVE Qt::CaseSensitive -#endif - #if defined(DEPLOY_LIBRARY) # define DEPLOYSHARED_EXPORT Q_DECL_EXPORT #else diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 23a6708..599308e 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -105,12 +105,12 @@ DeployCore::QtModule DeployCore::getQtModule(const QString& path) { void DeployCore::addQtModule(DeployCore::QtModule &module, const QString &path) { QuasarAppUtils::Params::log("Current module " + QString::number(module), - QuasarAppUtils::Debug); + QuasarAppUtils::Debug); auto mod = getQtModule(path); QuasarAppUtils::Params::log("Add new module from path " + path + - " module value " + QString::number(mod), - QuasarAppUtils::Debug); + " module value " + QString::number(mod), + QuasarAppUtils::Debug); module = static_cast<DeployCore::QtModule>( @@ -251,15 +251,15 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { }}); help.insert(group, {QuasarAppUtils::OptionData{ {"deb", "-deb"}, "", - "Create the deb package for deployment programm" - " You can specify the path to your own debian template.", - "cqtdeployer -deb path/to/myCustom/DEBIAN." + "Create the deb package for deployment programm" + " You can specify the path to your own debian template.", + "cqtdeployer -deb path/to/myCustom/DEBIAN." }}); help.insert(group, {QuasarAppUtils::OptionData{ {"deploySystem"}, "", - "Deploys all libraries." - " Not recomendet because there may be conflicts with system libraries" - " (on snap version you need to turn on permission)" + "Deploys all libraries." + " Not recomendet because there may be conflicts with system libraries" + " (on snap version you need to turn on permission)" }}); help.insert(group, {QuasarAppUtils::OptionData{ {"noQt"}, "", @@ -271,10 +271,10 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { }}); help.insert(group, {QuasarAppUtils::OptionData{ {"getDefaultTemplate"}, "", - "Extracts defaults deb or qif templates." - " All templates extract into targetDirectory." - " For change target directory use the targetDir option.", - "cqtdeployer -bin myExecutable getDefaultTemplate qif deb." + "Extracts defaults deb or qif templates." + " All templates extract into targetDirectory." + " For change target directory use the targetDir option.", + "cqtdeployer -bin myExecutable getDefaultTemplate qif deb." }}); help.insert(group, {QuasarAppUtils::OptionData{ {"noHashSum"}, "", @@ -302,10 +302,10 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { help.insert(group, {QuasarAppUtils::OptionData{ {"-confFile"}, "{params}", - "The path to the json file with all deployment configurations. Using this file," - " you can add the necessary options, thereby simplifying the command invocation in the console." - " However, the parameters in Kansol have a higher priority than in the file." - " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn" + "The path to the json file with all deployment configurations. Using this file," + " you can add the necessary options, thereby simplifying the command invocation in the console." + " However, the parameters in Kansol have a higher priority than in the file." + " For more info about this flag see https://github.com/QuasarApp/CQtDeployer/wiki/DeployConfigFileEn" }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-qmlDir"}, "{params}", @@ -336,8 +336,8 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { {"-extraLibs"}, "{list,params}", "Sets the mask of the library name for forced copying.", "\"-extraLib mySql\" - forces to copy all libraries whose names contain mySql to the project folder." - " This option is case-insensitive on Windows and case-sensitive on other platforms." - " This option will only search libraries in system environments similar to **deploySystem**." + " This option is case-insensitive on Windows and case-sensitive on other platforms." + " This option will only search libraries in system environments similar to **deploySystem**." }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-customScript"}, "{scriptCode}", @@ -364,9 +364,9 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-runScript"}, "{list,parems}", - "forces cqtdeployer swap default run script to new from the arguments of option." - " This option copy all content from input file and insert all code into runScript.sh or .bat", - "cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\"" + "forces cqtdeployer swap default run script to new from the arguments of option." + " This option copy all content from input file and insert all code into runScript.sh or .bat", + "cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\"" }}); group = "Part 3 Control of packages options"; @@ -374,7 +374,7 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { help.insert(group, {QuasarAppUtils::OptionData{ {"-targetPackage"}, "{package;tar1,package;tar2}", "Creates a new package and adds 'tar1 and tar2' to it. " - "If you want configure the package that do not have any targets use the allowEmptyPackages option." + "If you want configure the package that do not have any targets use the allowEmptyPackages option." }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-qmlOut"}, "{package;path,path}", @@ -408,7 +408,7 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { help.insert(group, {QuasarAppUtils::OptionData{ {"-name"}, "{package;val,val}", "Sets name for a package." - "If this if you do not specify a package, the value will be assigned to the default package ("")" + "If this if you do not specify a package, the value will be assigned to the default package ("")" }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-description"}, "{package;val,val}", @@ -466,16 +466,16 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-enablePlugins"}, "{package;val1;val2,SingeleVa}", - "Enables additional plugins for distribution." - " By default disabled next plugins: " + PluginsParser::defaultForbidenPlugins().join(',') + " if you want enable" - " it then use '-enablePlugins " + PluginsParser::defaultForbidenPlugins().join(',') + "' option" + "Enables additional plugins for distribution." + " By default disabled next plugins: " + PluginsParser::defaultForbidenPlugins().join(',') + " if you want enable" + " it then use '-enablePlugins " + PluginsParser::defaultForbidenPlugins().join(',') + "' option" }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-disablePlugins"}, "{package;val1;val2,SingeleVal}", - "Disables plugins for distribution. " - "You can disable any plugin of your Qt build, just see the yourQtFolder/plugins forlder for available plugins." - " Example if you want disable qxcb plugin: -disablePlugins qxcb." - " Note that the name of the plugin is indicated without its extension" + "Disables plugins for distribution. " + "You can disable any plugin of your Qt build, just see the yourQtFolder/plugins forlder for available plugins." + " Example if you want disable qxcb plugin: -disablePlugins qxcb." + " Note that the name of the plugin is indicated without its extension" }}); group = "Part 6 QtInstallFramework options"; @@ -589,7 +589,7 @@ QString DeployCore::findProcess(const QString &env, const QString& proc) { auto files = QDir(path).entryInfoList(QDir::NoDotAndDotDot | QDir::Files); for (const auto& bin : files) { - if (bin.baseName().compare(proc, ONLY_WIN_CASE_INSENSIATIVE) == 0) { + if (bin.baseName().compare(proc, DeployCore::getCaseSensitivity()) == 0) { return bin.absoluteFilePath(); } } @@ -605,7 +605,7 @@ QStringList DeployCore::debugExtensions() { bool DeployCore::isDebugFile(const QString &file) { auto debug = debugExtensions(); for (const auto& debugEx: debug) { - if (file.contains(debugEx, ONLY_WIN_CASE_INSENSIATIVE)) { + if (file.contains(debugEx, Qt::CaseInsensitive)) { return true; } } @@ -752,11 +752,11 @@ QtMajorVersion DeployCore::isQtLibName(const QString &lib) { } QString fileName = info.fileName(); - if (fileName.contains("Qt4", ONLY_WIN_CASE_INSENSIATIVE)) { + if (fileName.contains("Qt4", getCaseSensitivity(fileName))) { isQt = QtMajorVersion::Qt4; - } else if (fileName.contains("Qt5", ONLY_WIN_CASE_INSENSIATIVE)) { + } else if (fileName.contains("Qt5", getCaseSensitivity(fileName))) { isQt = QtMajorVersion::Qt5; - } else if (fileName.contains("Qt6", ONLY_WIN_CASE_INSENSIATIVE)) { + } else if (fileName.contains("Qt6", getCaseSensitivity(fileName))) { isQt = QtMajorVersion::Qt6; } @@ -774,8 +774,8 @@ bool DeployCore::isExtraLib(const QString &lib) { } bool DeployCore::isAlienLib(const QString &lib) { - return lib.contains("/opt/", ONLY_WIN_CASE_INSENSIATIVE) || - lib.contains("/PROGRAM FILES", ONLY_WIN_CASE_INSENSIATIVE); + return lib.contains("/opt/", Qt::CaseSensitive) || + lib.contains("/PROGRAM FILES", Qt::CaseInsensitive); } bool DeployCore::isAllowedLib(const QString &lib) { @@ -920,6 +920,25 @@ QFileInfo DeployCore::findItem(const QString &bin) { } return QFileInfo(bin); +} + +Qt::CaseSensitivity DeployCore::getCaseSensitivity(const QString &checkedFile) { + + if (checkedFile.isEmpty()) { +#ifdef Q_OS_WIN + return Qt::CaseInsensitive; +#else + return Qt::CaseSensitive; +#endif + } + + QString sufix = QFileInfo(checkedFile).completeSuffix(); + if (sufix.compare("dll", Qt::CaseInsensitive) == 0 || + sufix.compare("exe", Qt::CaseInsensitive)) { + return Qt::CaseInsensitive; + } + + return Qt::CaseSensitive; }; QString DeployCore::systemLibsFolderName() { diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index f091966..36b51e7 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -303,6 +303,12 @@ public: */ static QFileInfo findItem(const QString &file); + /** + * @brief getCaseSensitivity This method return case sensitivity for a @a checkedFile. Usualy return Qt::CaseSensiativy exept windows binaryes files like a dll and exe. + * @param checkedFile This is checked file. By default empty value. + * @return Qt CaseSensitivity value + */ + static Qt::CaseSensitivity getCaseSensitivity(const QString& checkedFile = ""); }; #define internalError() DeployCore::printInternalError(__FUNCTION__, __FILE__, __LINE__) diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index c7a733d..664cacc 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -390,7 +390,7 @@ void Extracter::extractLib(const QString &file, for (const auto &line : data.getAllDep()) { - if (mask.size() && !line.getName().contains(mask, ONLY_WIN_CASE_INSENSIATIVE)) { + if (mask.size() && !line.getName().contains(mask, DeployCore::getCaseSensitivity())) { continue; } diff --git a/Deploy/filemanager.cpp b/Deploy/filemanager.cpp index 1d5d73b..89af746 100644 --- a/Deploy/filemanager.cpp +++ b/Deploy/filemanager.cpp @@ -178,7 +178,7 @@ bool FileManager::fileActionPrivate(const QString &file, const QString &target, bool copy = !masks; if (masks) { for (const auto &mask : qAsConst(*masks)) { - if (info.absoluteFilePath().contains(mask, ONLY_WIN_CASE_INSENSIATIVE)) { + if (info.absoluteFilePath().contains(mask, DeployCore::getCaseSensitivity())) { copy = true; break; } @@ -263,7 +263,7 @@ bool FileManager::smartCopyFile(const QString &file, bool ifFileTarget) { auto config = DeployCore::_config; - if (file.contains(config->getTargetDir(), ONLY_WIN_CASE_INSENSIATIVE)) { + if (file.contains(config->getTargetDir(), DeployCore::getCaseSensitivity())) { if (!moveFile(file, target, mask)) { QuasarAppUtils::Params::log("Failed to move the file. Trying to copy it"); @@ -309,7 +309,7 @@ bool FileManager::copyFolder(const QString &from, if (!force) { QString skipFilter = ""; for (const auto &i: filter) { - if (item.fileName().contains(i, ONLY_WIN_CASE_INSENSIATIVE)) { + if (item.fileName().contains(i, DeployCore::getCaseSensitivity())) { skipFilter = i; break; } @@ -496,7 +496,7 @@ bool FileManager::copyFiles(const QStringList &source, QString skipFilter = ""; for (const auto &i: filter) { - if (info.fileName().contains(i, ONLY_WIN_CASE_INSENSIATIVE)) { + if (info.fileName().contains(i, DeployCore::getCaseSensitivity())) { skipFilter = i; break; } diff --git a/Deploy/ignorerule.cpp b/Deploy/ignorerule.cpp index 3f8b297..ccd31c3 100644 --- a/Deploy/ignorerule.cpp +++ b/Deploy/ignorerule.cpp @@ -27,7 +27,7 @@ void IgnoreRule::addRule(const IgnoreData &rule) { } bool IgnoreRule::check(const LibInfo &info, const QString& ignoreLabel) const { - if (info.fullPath().contains(ignoreLabel, ONLY_WIN_CASE_INSENSIATIVE)) { + if (info.fullPath().contains(ignoreLabel, DeployCore::getCaseSensitivity())) { QuasarAppUtils::Params::log(info.fullPath() + " ignored by filter" + ignoreLabel); return true; } diff --git a/Deploy/qtdir.cpp b/Deploy/qtdir.cpp index f9c790e..1cef4d9 100644 --- a/Deploy/qtdir.cpp +++ b/Deploy/qtdir.cpp @@ -86,11 +86,11 @@ bool QtDir::isQt(QString path) const { path = PathUtils::fixPath(path); return - (!libs.isEmpty() && path.contains(libs, ONLY_WIN_CASE_INSENSIATIVE)) || - (!bins.isEmpty() && path.contains(bins, ONLY_WIN_CASE_INSENSIATIVE)) || - (!libexecs.isEmpty() && path.contains(libexecs, ONLY_WIN_CASE_INSENSIATIVE)) || - (!plugins.isEmpty() && path.contains(plugins, ONLY_WIN_CASE_INSENSIATIVE)) || - (!qmls.isEmpty() && path.contains(qmls, ONLY_WIN_CASE_INSENSIATIVE)) || - (!translations.isEmpty() && path.contains(translations, ONLY_WIN_CASE_INSENSIATIVE)) || - (!resources.isEmpty() && path.contains(resources, ONLY_WIN_CASE_INSENSIATIVE)); + (!libs.isEmpty() && path.contains(libs, DeployCore::getCaseSensitivity())) || + (!bins.isEmpty() && path.contains(bins, DeployCore::getCaseSensitivity())) || + (!libexecs.isEmpty() && path.contains(libexecs, DeployCore::getCaseSensitivity())) || + (!plugins.isEmpty() && path.contains(plugins, DeployCore::getCaseSensitivity())) || + (!qmls.isEmpty() && path.contains(qmls, DeployCore::getCaseSensitivity())) || + (!translations.isEmpty() && path.contains(translations, DeployCore::getCaseSensitivity())) || + (!resources.isEmpty() && path.contains(resources, DeployCore::getCaseSensitivity())); } diff --git a/UnitTests/modulesqt513.cpp b/UnitTests/modulesqt513.cpp index 6ad654f..b82ebbc 100644 --- a/UnitTests/modulesqt513.cpp +++ b/UnitTests/modulesqt513.cpp @@ -20,7 +20,7 @@ ModulesQt513::~ModulesQt513() { QSet<QString> ModulesQt513::ignoreFilter(const QSet<QString> &input, const QString &filter) const { QSet<QString> res; for (auto& val : input) { - if (!val.contains(filter, ONLY_WIN_CASE_INSENSIATIVE)) { + if (!val.contains(filter, DeployCore::getCaseSensitivity())) { res.insert(val); } } From e1f72f739fd116330d1b9f0f8e992848f4574a20 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 1 Sep 2021 11:25:07 +0300 Subject: [PATCH 117/222] add zipout and debout options --- Deploy/Distributions/deb.cpp | 26 ++++++-------------- Deploy/Distributions/deb.h | 12 +++++++--- Deploy/Distributions/idistribution.cpp | 10 ++++++++ Deploy/Distributions/templateinfo.h | 3 +++ Deploy/Distributions/ziparhive.cpp | 2 +- Deploy/configparser.cpp | 16 +++++++++++++ Deploy/deploycore.cpp | 33 +++++++++++++++++++------- Deploy/distromodule.cpp | 16 +++++++++++++ Deploy/distromodule.h | 27 ++++++++++++++++++++- QIFData/installerCQtDeployer.pri | 8 +++---- UnitTests/tst_deploytest.cpp | 19 ++++++++++++--- md/en/Options.md | 12 ++++++++++ md/ru/Options.md | 11 +++++++++ 13 files changed, 156 insertions(+), 39 deletions(-) diff --git a/Deploy/Distributions/deb.cpp b/Deploy/Distributions/deb.cpp index e047737..7380cd3 100644 --- a/Deploy/Distributions/deb.cpp +++ b/Deploy/Distributions/deb.cpp @@ -60,8 +60,7 @@ bool Deb::deployTemplate(PackageControl &pkg) { QuasarAppUtils::Params::log("Failed to set permissions", QuasarAppUtils::Warning); } - outFiles.push_back(DeployCore::_config->getTargetDir() + "/" + info.Name + ".deb"); - packageFolders.push_back(local); + inouts.push_back({local, cfg->getTargetDir() + "/" + info.debOut}); } return true; @@ -117,30 +116,19 @@ QProcessEnvironment Deb::processEnvirement() const { QList<SystemCommandData> Deb::runCmd() { QList<SystemCommandData> res; - for (const auto& dir: qAsConst(packageFolders)) { - res.push_back({"dpkg-deb", QStringList{"--build", "--verbose"} << dir}); + for (const auto& inout: qAsConst(inouts)) { + res.push_back({"dpkg-deb", QStringList{"--build", "--verbose"} << inout.input << inout.output}); } return res; } QStringList Deb::outPutFiles() const { - return outFiles; -} - -bool Deb::cb() const { - const DeployConfig* cfg = DeployCore::_config; - - QString from = cfg->getTargetDir() + "/" + getLocation() + "/"; - QString to = cfg->getTargetDir() + "/" + getLocation() + "/../"; - auto const outputFiles = outPutFiles(); - for (const QString& file : outputFiles) { - if(!moveData(from + PathUtils::getName(file), to, "")) { - return false; - } + QStringList result; + for (const auto& inout: qAsConst(inouts)) { + result.push_back(inout.output); } - - return true; + return result; } QString Deb::dataLocation(const DistroModule &module) const { diff --git a/Deploy/Distributions/deb.h b/Deploy/Distributions/deb.h index 031b4fe..8075e50 100644 --- a/Deploy/Distributions/deb.h +++ b/Deploy/Distributions/deb.h @@ -3,6 +3,14 @@ #include "idistribution.h" +/** + * @brief The DebInOut struct contains input and output value of the debian packages. + */ +struct DebInOut { + QString input; + QString output; +}; + /** * @brief The deb class contains methods for create a debian pacakge. */ @@ -21,7 +29,6 @@ public: QProcessEnvironment processEnvirement() const override; QList<SystemCommandData> runCmd() override; QStringList outPutFiles() const override; - bool cb() const override; // iDistribution interface protected: @@ -30,8 +37,7 @@ protected: QString releativeLocation(const DistroModule &module) const override; private: - QStringList outFiles; - QStringList packageFolders; + QList<DebInOut> inouts; }; #endif // DEB_H diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index d8f51d3..06abaed 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -168,6 +168,8 @@ bool iDistribution::collectInfoWithDeployIcons(const DistroModule &pkg, bool iDistribution::collectInfo(const DistroModule& pkg, TemplateInfo &info) { + const DeployConfig *cfg = DeployCore::_config; + info.Name = getName(pkg); @@ -198,6 +200,14 @@ bool iDistribution::collectInfo(const DistroModule& pkg, if (!pkg.installDirDEB().isEmpty()) info.InstallDirDEB = pkg.installDirDEB(); + info.debOut = cfg->getTargetDir() + "/" + info.Name + ".deb"; + if (!pkg.debOut().isEmpty()) + info.debOut = pkg.debOut(); + + info.zipOut = cfg->getTargetDir() + "/" + info.Name + ".zip"; + if (!pkg.zipOut().isEmpty()) + info.zipOut = pkg.zipOut(); + info.Prefix = releativeLocation(pkg); QString cmdArray = "["; diff --git a/Deploy/Distributions/templateinfo.h b/Deploy/Distributions/templateinfo.h index bcab0fb..00fa591 100644 --- a/Deploy/Distributions/templateinfo.h +++ b/Deploy/Distributions/templateinfo.h @@ -19,6 +19,9 @@ struct DEPLOYSHARED_EXPORT TemplateInfo QString Homepage; QString Prefix; QString InstallDirDEB; + QString zipOut; + QString debOut; + QString InstallDeirQIFW() const; QHash<QString, QString> Custom; diff --git a/Deploy/Distributions/ziparhive.cpp b/Deploy/Distributions/ziparhive.cpp index 07495cb..a21a004 100644 --- a/Deploy/Distributions/ziparhive.cpp +++ b/Deploy/Distributions/ziparhive.cpp @@ -38,7 +38,7 @@ bool ZipArhive::deployTemplate(PackageControl &pkg) { return false; } - auto arr = cfg->getTargetDir() + "/" + info.Name + ".zip"; + auto arr = cfg->getTargetDir() + "/" + info.zipOut; if (!zipWorker.compress(local, arr)) { return false; } diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index b484a04..0069a07 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -465,6 +465,12 @@ bool ConfigParser::initDistroStruct() { auto installDirDeb = QuasarAppUtils::Params::getArg("installDirDeb"). split(DeployCore::getSeparator(0), splitbehavior); + auto debOut = QuasarAppUtils::Params::getArg("debOut"). + split(DeployCore::getSeparator(0), splitbehavior); + + auto zipOut = QuasarAppUtils::Params::getArg("zipOut"). + split(DeployCore::getSeparator(0), splitbehavior); + // init distro stucts for all targets if (binOut.size() && !parsePackagesPrivate(mainDistro, binOut, &DistroModule::setBinOutDir)) { packagesErrorLog("binOut"); @@ -551,6 +557,16 @@ bool ConfigParser::initDistroStruct() { return false; } + if (debOut.size() && !parsePackagesPrivate(mainDistro, debOut, &DistroModule::setDebOut)) { + packagesErrorLog("debOut"); + return false; + } + + if (zipOut.size() && !parsePackagesPrivate(mainDistro, zipOut, &DistroModule::setZipOut)) { + packagesErrorLog("zipOut"); + return false; + } + return true; } diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 7081f42..0819d6a 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -350,14 +350,6 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { {"-recursiveDepth"}, "{params}", "Sets the Depth of recursive search of libs and depth for ignoreEnv option (default 0)" }}); - help.insert(group, {QuasarAppUtils::OptionData{ - {"-targetDir"}, "{params}", - "Sets target directory(by default it is the path to the first deployable file)" - }}); - help.insert(group, {QuasarAppUtils::OptionData{ - {"-installDirDeb"}, "{params}", - "Sets install target directory fordebian package (by default it is /opt path)" - }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-installDirQIFW"}, "{params}", "Sets install target directory for installers (by default it is /home path)" @@ -510,6 +502,31 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { "Sets a custom path to the resources files. By default this option is skipped" }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-targetDir"}, "{params}", + "Sets target directory(by default it is the path to the first deployable file)" + }}); + + group = "Part 7 Deb package options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-debOut"}, "{package;nameOfOutputDebFile,nameOfOutputDebFile}", + "Sets name of the output debian file. This option can be work with multiple packages" + }}); + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-installDirDeb"}, "{params}", + "Sets install target directory fordebian package (by default it is /opt path)" + }}); + + + group = "Part 8 zip package options"; + + help.insert(group, {QuasarAppUtils::OptionData{ + {"-zipOut"}, "{package;nameOfOutputZipFile,nameOfOutputZipFile}", + "Sets name of the output zip arrhive. This option can be work with multiple packages" + }}); + return help; } diff --git a/Deploy/distromodule.cpp b/Deploy/distromodule.cpp index 0fa9032..e47b627 100644 --- a/Deploy/distromodule.cpp +++ b/Deploy/distromodule.cpp @@ -148,6 +148,22 @@ void DistroModule::setKey(const QString &key) { _key = key; } +const QString &DistroModule::zipOut() const { + return _zipOut; +} + +void DistroModule::setZipOut(const QString &newZipOut) { + _zipOut = newZipOut; +} + +const QString &DistroModule::debOut() const { + return _debOut; +} + +void DistroModule::setDebOut(const QString &newDebOut) { + _debOut = newDebOut; +} + QString DistroModule::installDirDEB() const { if (_installDirDEB.isEmpty()) return "/opt"; diff --git a/Deploy/distromodule.h b/Deploy/distromodule.h index b6a9a87..e27bf2c 100644 --- a/Deploy/distromodule.h +++ b/Deploy/distromodule.h @@ -77,6 +77,30 @@ public: QString installDirDEB() const; void setInstallDirDEB(const QString &newInstallDir); + /** + * @brief debOut This method return output filePath to debian pacakge + * @return output filePath to debian pacakge + */ + const QString &debOut() const; + + /** + * @brief setDebOut This method sets new value of debian outpup path. + * @param newDebOut This is new value of the debian output + */ + void setDebOut(const QString &newDebOut); + + /** + * @brief debOut This method return output filePath to zip pacakge + * @return output filePath to zip pacakge + */ + const QString &zipOut() const; + + /** + * @brief setDebOut This method sets new value of zip outpup path. + * @param newDebOut This is new value of the zip output + */ + void setZipOut(const QString &newZipOut); + protected: void setKey(const QString &key); @@ -105,7 +129,8 @@ private: QSet<QString> _tr; QString _installDirDEB; - + QString _debOut; + QString _zipOut; }; diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index bc190ed..f2f6948 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,10 +1,10 @@ include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) -win32:OUT_FILE = CQtDeployerInstaller.exe -unix:OUT_FILE = CQtDeployerInstaller.run +win32:OUT_FILE = CQtDeployer_$$VERSION_Installer_Win64.exe +unix:OUT_FILE = CQtDeployer_$$VERSION_Installer_Linux64.run -win32:OUT_FILE_OFF = CQtDeployerOfflineInstaller.exe -unix:OUT_FILE_OFF = CQtDeployerOfflineInstaller.run +win32:OUT_FILE_OFF = CQtDeployer_$$VERSION_OfflineInstaller_Win64.exe +unix:OUT_FILE_OFF = CQtDeployer_$$VERSION_OfflineInstaller_Linux64.run DEPLOY_TARGET = $$PWD/../CQtDeployer/build/release diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index cc57bd6..a2dbf45 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1531,12 +1531,25 @@ void deploytest::testQifOut() { QString bin = TestBinDir + "TestOnlyC.exe"; #endif - auto result = utils.createTree({{DISTRO_DIR + "/QIF_OUT.exe"}, - {DISTRO_DIR + "/QIF_OUT.exe.md5"}}); +#ifdef Q_OS_UNIX + auto result = utils.createTree({{DISTRO_DIR + "/QIF_OUT.exe"}, {DISTRO_DIR + "/QIF_OUT.exe.md5"}, + {DISTRO_DIR + "/DEB_OUT.deb"}, {DISTRO_DIR + "/DEB_OUT.deb.md5"}, + {DISTRO_DIR + "/ZIP_OUT.zip"}, {DISTRO_DIR + "/ZIP_OUT.zip.md5"}}); // Run deploy installer runTestParams({"-bin", bin, "clear", - "qif", "-qifOut", "QIF_OUT.exe"}, &result); + "qif", "-qifOut", "QIF_OUT.exe", + "deb", "-debOut", "DEB_OUT.deb", + "zip", "-zipOut", "ZIP_OUT.zip"}, &result); +#else + auto result = utils.createTree({{DISTRO_DIR + "/QIF_OUT.exe"}, {DISTRO_DIR + "/QIF_OUT.exe.md5"}, + {DISTRO_DIR + "/ZIP_OUT.zip"}, {DISTRO_DIR + "/ZIP_OUT.zip.md5"}}); + + // Run deploy installer + runTestParams({"-bin", bin, "clear", + "qif", "-qifOut", "QIF_OUT.exe", + "zip", "-zipOut", "ZIP_OUT.zip"}, &result); +#endif } void deploytest::testIgnoreEnvWithLibDir() { diff --git a/md/en/Options.md b/md/en/Options.md index 9d4b922..6562328 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -156,4 +156,16 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifPackages [path/to/packagesFodoler] | Sets a custom path to the packages directories. By default it is qif/packages | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Sets a custom path to the resources files. By default this option is skipped | +### Deb package options + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -debOut [package;nameOfOutputDebFile,nameOfOutputDebFile]| Sets name of the output debian file. This option can be work with multiple packages | + +### Zip pacakge options + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -debOut [package;nameOfOutputZipFile,nameOfOutputZipFile]| Sets name of the output zip arrhive. This option can be work with multiple packages | + #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.4/gcc_64/bin/qmake clear diff --git a/md/ru/Options.md b/md/ru/Options.md index 89a4f78..1ef6bb2 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -152,6 +152,17 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifPackages [path/to/packagesFodoler] | Устанавливает пользовательский путь к каталогам пакетов. По умолчанию это qif/packages | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Устанавливает пользовательский путь к файлам ресурсов. По умолчанию эта опция пропущена | +### Deb package options: + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -debOut [package;nameOfOutputDebFile,nameOfOutputDebFile]| Устанавливает имя выходного файла debian. Эта опция может работать с несколькими пакетами | + +### Zip pacakge options: + +| Option | Descriptiion | +|-----------------------------|-----------------------------------------------------------| +| -debOut [package;nameOfOutputZipFile,nameOfOutputZipFile]| Устанавливает имя выходного zip архива. Эта опция может работать с несколькими пакетами | #### Пример: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.0/gcc_64/bin/qmake clear From 32325ed82a14480435219253fe1d85c25c76f38b Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 1 Sep 2021 12:38:39 +0300 Subject: [PATCH 118/222] fix tests --- 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 06abaed..aa803d1 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -200,11 +200,11 @@ bool iDistribution::collectInfo(const DistroModule& pkg, if (!pkg.installDirDEB().isEmpty()) info.InstallDirDEB = pkg.installDirDEB(); - info.debOut = cfg->getTargetDir() + "/" + info.Name + ".deb"; + info.debOut = info.Name + ".deb"; if (!pkg.debOut().isEmpty()) info.debOut = pkg.debOut(); - info.zipOut = cfg->getTargetDir() + "/" + info.Name + ".zip"; + info.zipOut = info.Name + ".zip"; if (!pkg.zipOut().isEmpty()) info.zipOut = pkg.zipOut(); From b30369211daa18a5c51b61830c8f32f460a61c88 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 1 Sep 2021 12:40:31 +0300 Subject: [PATCH 119/222] fix warnings --- Deploy/Distributions/idistribution.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index aa803d1..9398192 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -168,8 +168,6 @@ bool iDistribution::collectInfoWithDeployIcons(const DistroModule &pkg, bool iDistribution::collectInfo(const DistroModule& pkg, TemplateInfo &info) { - const DeployConfig *cfg = DeployCore::_config; - info.Name = getName(pkg); From b9c31b665c675416c0e6edb8881f5ffaec1620a7 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Thu, 2 Sep 2021 09:21:57 +0300 Subject: [PATCH 120/222] Update Deploy/deploycore.h Co-authored-by: Igor loschinin <igor.loschinin2014@yandex.ru> --- Deploy/deploycore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 36b51e7..8df3199 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -304,7 +304,7 @@ public: static QFileInfo findItem(const QString &file); /** - * @brief getCaseSensitivity This method return case sensitivity for a @a checkedFile. Usualy return Qt::CaseSensiativy exept windows binaryes files like a dll and exe. + * @brief getCaseSensitivity This method return case sensitivity for a @a checkedFile. Usually return Qt::CaseSensiativy exept windows binaryes files like a dll and exe. * @param checkedFile This is checked file. By default empty value. * @return Qt CaseSensitivity value */ From c3eecdf0d1015dadbfc06788c207b807c576ffad Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 4 Sep 2021 18:41:06 +0300 Subject: [PATCH 121/222] fix output names --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 13 ++++++++----- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- md/en/Build-and-Install.md | 2 ++ md/ru/Build-and-Install.md | 1 + snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 9 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 56b3cd6..ada67c5 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.3.0 +VERSION = 1.5.4.0 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 6366e10..4fcf4f5 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.3.0</Version> + <Version>1.5.4.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index daa86a2..cb99d2c 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.3.0</Version> + <Version>1.5.4.0</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index f2f6948..c858588 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,10 +1,13 @@ +VERSION = 1.5.4.0 + + include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) -win32:OUT_FILE = CQtDeployer_$$VERSION_Installer_Win64.exe -unix:OUT_FILE = CQtDeployer_$$VERSION_Installer_Linux64.run +win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win64.exe +unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux64.run -win32:OUT_FILE_OFF = CQtDeployer_$$VERSION_OfflineInstaller_Win64.exe -unix:OUT_FILE_OFF = CQtDeployer_$$VERSION_OfflineInstaller_Linux64.run +win32:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Win64.exe +unix:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Linux64.run DEPLOY_TARGET = $$PWD/../CQtDeployer/build/release @@ -20,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.3.0 +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.0 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index eebd8c2..b2d2dff 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.3.0</Version> + <Version>1.5.4.0</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/md/en/Build-and-Install.md b/md/en/Build-and-Install.md index 9995601..f134a32 100644 --- a/md/en/Build-and-Install.md +++ b/md/en/Build-and-Install.md @@ -29,6 +29,7 @@ - migw32-make deploy - this command requires installed [cqtdeployer](https://github.com/QuasarApp/CQtDeployer/releases) - ./Distro/CQtDeployerInstaller.exe + --- # Installation without building @@ -46,6 +47,7 @@ this can be done in the snap-store Or starting with ubuntu 20.04 in the ubuntu application settings manager. If you do not have the GUI then you can enable all permissions using next commands: + ``` bash sudo snap connect cqtdeployer:process-control sudo snap connect cqtdeployer:removable-media diff --git a/md/ru/Build-and-Install.md b/md/ru/Build-and-Install.md index 97b32ff..b749fa0 100644 --- a/md/ru/Build-and-Install.md +++ b/md/ru/Build-and-Install.md @@ -44,6 +44,7 @@ Или начиная с ubuntu 20.04 в менеджере настроек приложений ubuntu. Если у вас нет графического интерфейса, вы можете включить все разрешения, используя следующие команды: + ``` bash sudo snap connect cqtdeployer:process-control sudo snap connect cqtdeployer:removable-media diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 0084308..942e9d7 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.3.0 +Version=1.5.4.0 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.3.0 +X-GNOME-Bugzilla-Version=1.5.4.0 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 28f523f..a180119 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.3.0' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.0' # 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 815c0d27bfbb075c1379bc0a9a12c651197c2404 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 4 Sep 2021 18:50:46 +0300 Subject: [PATCH 122/222] fix change log --- md/en/Changelog.md | 20 +++++++++++++++++++- md/ru/Changelog.md | 16 ++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/md/en/Changelog.md b/md/en/Changelog.md index c623563..1145da6 100755 --- a/md/en/Changelog.md +++ b/md/en/Changelog.md @@ -1,12 +1,30 @@ # Change log +## CQtDeployer 1.5.4 + + +## New options + +* qifConfig - Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml #653 +* qifPackages - Sets a custom path to the packages directories. By default it is qif/packages #653 +* qifResources - Sets a custom path to the resources files. By default this option is skipped #653 +* debOut - Sets name of the output debian file. This option can be work with multiple packages +* zipOut - Sets name of the output zip arrhive. This option can be work with multiple packages + +## Bug fixes : + +* fixed crossdeploy linux -> windows #652 + + ## CQtDeployer 1.5.3 ## New options + * installDirDeb - Sets install target directory for debian package (by default it is /opt path) #640 * installDirQIFW - Sets install target directory for installers (by default it is /home path) #640 -## Bug fixes : +## Bug fixes + * Fix warning on installer fix #628 * Added support validation input options of the command line fix #421 * Added Error message for conflict between libDir and targetDir options #629 diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index cccab25..64d7571 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -2,9 +2,25 @@ Журнал изменений для всех версий CQtDeployer. + +## CQtDeployer 1.5.4 + +## Новые параметры +* qifConfig - Устанавливает собственный путь к файлу конфигурации установщика qt ifw. По умолчанию это qif/config/config.xml #653. +* qifPackages - Устанавливает собственный путь к каталогам пакетов. По умолчанию это qif/packages #653. +* qifResources - Устанавливает собственный путь к файлам ресурсов. По умолчанию эта опция пропущена #653 +* debOut - Устанавливает имя выходного файла debian. Эта опция может работать с несколькими пакетами +* zipOut - Устанавливает имя выходного zip-архива. Эта опция может работать с несколькими пакетами + +## Исправление ошибок : + +* исправлено crossdeploy linux -> windows # 652 + + ## CQtDeployer 1.5.3 ## Новые параметры + * installDirDeb - Устанавливает целевой каталог установки для пакета debian (по умолчанию это / opt путь) * installDirQIFW - Устанавливает целевой каталог установки для установщиков (по умолчанию это / home путь) From 68d84d0eb7339bca40e0f4b424ddfccc01fa24aa Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 4 Sep 2021 18:51:43 +0300 Subject: [PATCH 123/222] simple fix --- md/en/Changelog.md | 8 ++++---- md/ru/Changelog.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/md/en/Changelog.md b/md/en/Changelog.md index 1145da6..18394ea 100755 --- a/md/en/Changelog.md +++ b/md/en/Changelog.md @@ -3,7 +3,7 @@ ## CQtDeployer 1.5.4 -## New options +### New options * qifConfig - Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml #653 * qifPackages - Sets a custom path to the packages directories. By default it is qif/packages #653 @@ -11,19 +11,19 @@ * debOut - Sets name of the output debian file. This option can be work with multiple packages * zipOut - Sets name of the output zip arrhive. This option can be work with multiple packages -## Bug fixes : +### Bug fixes : * fixed crossdeploy linux -> windows #652 ## CQtDeployer 1.5.3 -## New options +### New options * installDirDeb - Sets install target directory for debian package (by default it is /opt path) #640 * installDirQIFW - Sets install target directory for installers (by default it is /home path) #640 -## Bug fixes +### Bug fixes * Fix warning on installer fix #628 * Added support validation input options of the command line fix #421 diff --git a/md/ru/Changelog.md b/md/ru/Changelog.md index 64d7571..3836333 100755 --- a/md/ru/Changelog.md +++ b/md/ru/Changelog.md @@ -5,26 +5,26 @@ ## CQtDeployer 1.5.4 -## Новые параметры +### Новые параметры * qifConfig - Устанавливает собственный путь к файлу конфигурации установщика qt ifw. По умолчанию это qif/config/config.xml #653. * qifPackages - Устанавливает собственный путь к каталогам пакетов. По умолчанию это qif/packages #653. * qifResources - Устанавливает собственный путь к файлам ресурсов. По умолчанию эта опция пропущена #653 * debOut - Устанавливает имя выходного файла debian. Эта опция может работать с несколькими пакетами * zipOut - Устанавливает имя выходного zip-архива. Эта опция может работать с несколькими пакетами -## Исправление ошибок : +### Исправление ошибок : * исправлено crossdeploy linux -> windows # 652 ## CQtDeployer 1.5.3 -## Новые параметры +### Новые параметры * installDirDeb - Устанавливает целевой каталог установки для пакета debian (по умолчанию это / opt путь) * installDirQIFW - Устанавливает целевой каталог установки для установщиков (по умолчанию это / home путь) -## Исправления +### Исправления * Исправлено предупреждение при установке В windows * Добавлена пороверка параметров ввода * Добавлено сообщение об ошибке из-за конфликта между опциями libDir и targetDir From 80b066f7e3dacefc08d2e6e84ce21a83c2cf9b4a Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 4 Sep 2021 18:59:05 +0300 Subject: [PATCH 124/222] temp commit for release cqtdeployer v1.5.4 --- QIFData/installerCQtDeployer.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index c858588..753c122 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.0 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.0 #-debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT From 9eeb7f6dda438549bd457af082c05a1907e7a181 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 4 Sep 2021 22:06:06 +0300 Subject: [PATCH 125/222] Revert "temp commit for release cqtdeployer v1.5.4" This reverts commit 80b066f7e3dacefc08d2e6e84ce21a83c2cf9b4a. --- QIFData/installerCQtDeployer.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 753c122..c858588 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.0 #-debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.0 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT From eb42c6198797ca07f8141483d19c5dc04877c2ee Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Sep 2021 16:24:55 +0300 Subject: [PATCH 126/222] fix windows shortcuts --- Deploy/Distributions/idistribution.cpp | 17 ++++++++--------- Deploy/targetinfo.cpp | 9 +++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index c5cf45e..7b67a4c 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -220,24 +220,23 @@ bool iDistribution::collectInfo(const DistroModule& pkg, auto targetInfo = cfg->targets().value(target); if (targetInfo.getShortCut()) { + if (cmdArray.size() > initSize) { + cmdArray += ","; + bashArray += " "; cmdShortCutsArray += ","; bashShortCutsArray += " "; } + cmdArray += "\"" + fileinfo.baseName() + "\""; + bashArray += "\"" + fileinfo.baseName() + "\""; + + cmdShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; bashShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\""; } - - if (fileinfo.suffix().compare("exe", Qt::CaseInsensitive) == 0 || fileinfo.suffix().isEmpty()) { - if (cmdArray.size() > initSize) { - cmdArray += ","; - bashArray += " "; - } - cmdArray += "\"" + fileinfo.baseName() + "\""; - bashArray += "\"" + fileinfo.baseName() + "\""; - } } + cmdArray += "]"; bashArray += ")"; cmdShortCutsArray += "]"; diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index 9c9c823..047829a 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -40,7 +40,12 @@ void TargetInfo::setIcon(const QString &value) { } bool TargetInfo::getShortCut() const { - return _fEnableShortCut; + QFileInfo info(fullPath()); + QString compleSufix = info.completeSuffix(); + + bool defaultRule = compleSufix.compare("exe", Qt::CaseInsensitive) == 0 || compleSufix.isEmpty(); + + return _fEnableShortCut && defaultRule; } void TargetInfo::setShortCut(bool shortcut) { @@ -70,7 +75,7 @@ void TargetInfo::setRunScript(const QString &newRunScript) { QString TargetInfo::getRunScriptFile() const { - if (_fEnableRunScript) { + if (fEnableRunScript()) { QFileInfo runscriptInfo(getRunScript()); QFileInfo info(getName()); From fd498c911a1f465dffbda9b786a3fc863d0fafde Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Sep 2021 17:05:39 +0300 Subject: [PATCH 127/222] cqtdeployer 1.5.4.1 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index ada67c5..f1baff4 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.0 +VERSION = 1.5.4.1 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 4fcf4f5..7879bc8 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.0</Version> + <Version>1.5.4.1</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index cb99d2c..1f33e20 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.0</Version> + <Version>1.5.4.1</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index c858588..98f8687 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.0 +VERSION = 1.5.4.1 include($$PWD/InstallerBase.pri); @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.0 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.1 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index b2d2dff..6db4e0d 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.0</Version> + <Version>1.5.4.1</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 942e9d7..78c8e04 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.0 +Version=1.5.4.1 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.4.0 +X-GNOME-Bugzilla-Version=1.5.4.1 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index a180119..1387180 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.0' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.1' # 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 f87c41ced5b11935d62271a2411f4c75546c7a7a Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Sun, 12 Sep 2021 10:44:39 +0300 Subject: [PATCH 128/222] Update doxygen.conf change documentation title --- doxygen.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doxygen.conf b/doxygen.conf index b35c8ec..2d9a0e4 100644 --- a/doxygen.conf +++ b/doxygen.conf @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = CQtDeployer +PROJECT_NAME = CQtDeployer official documentation page # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. From e6d940ad7635dcda0613660188b58d3714db3a18 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 13 Sep 2021 10:00:47 +0300 Subject: [PATCH 129/222] added warning message for icon option --- Deploy/Deploy.pro | 2 +- Deploy/Distributions/idistribution.cpp | 12 +++++++++++- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 8 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index f1baff4..c28c758 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.1 +VERSION = 1.5.4.2 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 7b67a4c..30dcc7a 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -279,7 +279,17 @@ bool iDistribution::deployIcon(TemplateInfo &info, const DistroModule& pkg) { info.Icon = "icons/Icon.png"; QSet<QString> icons; for (const auto& target: pkg.targets()) { - auto icon = cfg->targets().value(target).getIcon(); + auto targetObject = cfg->targets().value(target); + + if (!targetObject.isValid()) { + QuasarAppUtils::Params::log(QString("The target '%0' is not detected in the target list." + " Available Target List : %1" + " So icon will be copy by Default."). + arg(target, cfg->targets().keys().join(',')), + QuasarAppUtils::Warning); + } + + auto icon = targetObject.getIcon(); QuasarAppUtils::Params::log(QString("%0: %1").arg(target, icon), QuasarAppUtils::Debug); diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 7879bc8..2fc16f4 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.1</Version> + <Version>1.5.4.2</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 1f33e20..061b60c 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.1</Version> + <Version>1.5.4.2</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 98f8687..98b4882 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.1 +VERSION = 1.5.4.2 include($$PWD/InstallerBase.pri); @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.1 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.2 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 6db4e0d..ca62acc 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.1</Version> + <Version>1.5.4.2</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 78c8e04..3ce3cb9 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.1 +Version=1.5.4.2 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.4.1 +X-GNOME-Bugzilla-Version=1.5.4.2 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 1387180..5070f94 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.1' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.2' # 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 b62c61e802787f8b26c41e91035963b4dc326f75 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 13 Sep 2021 15:21:20 +0300 Subject: [PATCH 130/222] ref #659 "change deploy icons logick" --- Deploy/Distributions/Templates/deb/DEBIAN/postinst | 2 +- .../qif/packages/default/meta/installscript.qs | 4 ++-- Deploy/Distributions/idistribution.cpp | 14 ++++++++------ Deploy/Distributions/idistribution.h | 2 +- Deploy/Distributions/templateinfo.h | 1 - Deploy/configparser.cpp | 4 ++-- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Deploy/Distributions/Templates/deb/DEBIAN/postinst b/Deploy/Distributions/Templates/deb/DEBIAN/postinst index 7c3f55e..75d600c 100755 --- a/Deploy/Distributions/Templates/deb/DEBIAN/postinst +++ b/Deploy/Distributions/Templates/deb/DEBIAN/postinst @@ -21,7 +21,7 @@ function createShortCut { echo "Encoding=UTF-8" >> $DEST_FILE echo "Name=$DEST_NAME" >> $DEST_FILE echo "Type=Application" >> $DEST_FILE - echo "Icon=$CQT_INSTALL_DEB_DIR/$ICON" >> $DEST_FILE + echo "Icon=$CQT_INSTALL_DEB_DIR/icons/${SRC_FILE%%.*}.png" >> $DEST_FILE echo "Terminal=false" >> $DEST_FILE echo "Exec=$SRC_FILE" >> $DEST_FILE diff --git a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs index 4a74850..98b8018 100644 --- a/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs +++ b/Deploy/Distributions/Templates/qif/packages/default/meta/installscript.qs @@ -21,7 +21,7 @@ function generateShortCutCmd(cmd) { "CreateShortcut", "@TargetDir@/" + prefix + "/" + cmd, "@DesktopDir@/" + getBasename(cmd) + ".lnk", - "iconPath=@TargetDir@/$ICON", + "iconPath=@TargetDir@/" + prefix + "/icons/" + getBasename(cmd) + ".ico", "iconId=0"); } @@ -36,7 +36,7 @@ function generateShortCutCmd(cmd) { Terminal=false\n Exec=\"@TargetDir@/" + prefix + "/" + cmd + "\"\n Name=" + getBasename(cmd) + "\n - Icon=@TargetDir@/$ICON\n + Icon=@TargetDir@/" + prefix + "/icons/" + getBasename(cmd) + ".png\n Name[en_US]=" + getBasename(cmd)); console.log("create icons!!! on LINUX done"); diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 30dcc7a..834dd36 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -70,7 +70,6 @@ bool iDistribution::unpackFile(const QFileInfo &resource, inputText.replace("$DESCRIPTION", info.Description); inputText.replace("$VERSION", info.Version); inputText.replace("$RELEASEDATA", info.ReleaseData); - inputText.replace("$ICON", info.Icon); inputText.replace("$PUBLISHER", info.Publisher); inputText.replace("$HOMEPAGE", info.Homepage); inputText.replace("$PREFIX", info.Prefix); @@ -162,7 +161,7 @@ bool iDistribution::collectInfoWithDeployIcons(const DistroModule &pkg, return false; } - return deployIcon(info, pkg); + return deployIcon(pkg); } @@ -272,11 +271,10 @@ QString iDistribution::getName(const DistroModule& pkg) const { return name; } -bool iDistribution::deployIcon(TemplateInfo &info, const DistroModule& pkg) { +bool iDistribution::deployIcon(const DistroModule& pkg) { auto localData = dataLocation(pkg); const DeployConfig *cfg = DeployCore::_config; - info.Icon = "icons/Icon.png"; QSet<QString> icons; for (const auto& target: pkg.targets()) { auto targetObject = cfg->targets().value(target); @@ -298,14 +296,18 @@ bool iDistribution::deployIcon(TemplateInfo &info, const DistroModule& pkg) { break; QFileInfo iconInfo(icon); - info.Icon = releativeLocation(pkg) + "/icons/" + iconInfo.fileName(); - if (!copyFile(icon, localData + "/icons/", false)) { + QFileInfo runScript(targetObject.getRunScriptFile()); + + QString dist = localData + "/icons/" + runScript.baseName() + "/" + iconInfo.suffix(); + + if (!copyFile(icon, dist, true)) { QuasarAppUtils::Params::log(QString("Failed to copy icon: %0.").arg(icon), QuasarAppUtils::Error); return false; } + icons += icon; } diff --git a/Deploy/Distributions/idistribution.h b/Deploy/Distributions/idistribution.h index 07dfa17..c690b92 100644 --- a/Deploy/Distributions/idistribution.h +++ b/Deploy/Distributions/idistribution.h @@ -105,7 +105,7 @@ protected: * @param pkg This is package info * @return true if this method finished successful. */ - bool deployIcon(TemplateInfo &info, const DistroModule &pkg); + bool deployIcon(const DistroModule &pkg); /** * @brief dataLocation This method should be retrun location of application or package files. diff --git a/Deploy/Distributions/templateinfo.h b/Deploy/Distributions/templateinfo.h index 00fa591..1f503a2 100644 --- a/Deploy/Distributions/templateinfo.h +++ b/Deploy/Distributions/templateinfo.h @@ -14,7 +14,6 @@ struct DEPLOYSHARED_EXPORT TemplateInfo QString Description; QString Version; QString ReleaseData; - QString Icon; QString Publisher; QString Homepage; QString Prefix; diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 0069a07..66df862 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -71,8 +71,8 @@ void parseTargetPrivate(DeployConfig& conf, auto &cointainer = conf.targetsEdit(); - for (const auto &iconPair: inputParams) { - auto pair = iconPair.split(DeployCore::getSeparator(1), splitbehavior); + for (const auto &targetPair: inputParams) { + auto pair = targetPair.split(DeployCore::getSeparator(1), splitbehavior); if (pair.size() == 1) { QuasarAppUtils::Params::log(QString("Set new default property for all tagets: " + pair.value(0)), From 886e93c2b44958d9a43c60132ec202f4112edbdd Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 13 Sep 2021 15:27:08 +0300 Subject: [PATCH 131/222] added docs --- md/en/Options.md | 2 +- md/ru/Options.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/md/en/Options.md b/md/en/Options.md index 6562328..25145ef 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -129,7 +129,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| -| -icon [target;val,val] | Sets path to icon for a targets | +| -icon [target;val,val] | Sets path to icon for a targets. This option support only png (Linux) and ico (Windows) files. | | -disableRunScript [target,target2,target3] | Disables the generation of run script for selected targets| | -disableShortCut [target,target2,target3] | Disables the generation of shortcut for selected targets | | -runScript [target;val,val] | forces cqtdeployer swap default run script to new from the arguments of option. This option copy all content from input file and insert all code into runScript.sh or .bat. Example of use: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh" For get more information about customScript see the documentation [page](CustomScripts.md)| diff --git a/md/ru/Options.md b/md/ru/Options.md index 1ef6bb2..380174b 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -125,7 +125,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| -| -icon [target;val,val] | Установит путь к иконке или логотипу для целе | +| -icon [target;val,val] | Установит путь к иконке или логотипу для целе. Эта комманда поддерживает только png файлы для Linux и ico файлы для Windows | | -disableRunScript [target; val, val]| Отключает создание сценария выполнения для выбранных целей | | -disableShortCut [target; val, val] | Отключает создание ярлыков для выбранных целей | | -runScript [target; val, val] | заставляет cqtdeployer заменить сценарий запуска по умолчанию на новый из аргументов параметра. Эта опция копирует все содержимое из входного файла и вставляет весь код в runScript.sh или .bat. Пример использования: cqtdeployer -runScript "myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh". Для получения дополнительной информации смотрите статью [Кастомные скрипты](CustomScripts.md)| From 8d6c6603ed1972b32997c1676ee7e111f56da4d8 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 14 Sep 2021 09:44:18 +0300 Subject: [PATCH 132/222] monual tests is passed --- Deploy/Distributions/idistribution.cpp | 2 +- UnitTests/tst_deploytest.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 834dd36..ae4cc1c 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -298,7 +298,7 @@ bool iDistribution::deployIcon(const DistroModule& pkg) { QFileInfo iconInfo(icon); QFileInfo runScript(targetObject.getRunScriptFile()); - QString dist = localData + "/icons/" + runScript.baseName() + "/" + iconInfo.suffix(); + QString dist = localData + "/icons/" + runScript.baseName() + "." + iconInfo.suffix(); if (!copyFile(icon, dist, true)) { diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index a2dbf45..bd4f76c 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1315,7 +1315,6 @@ void deploytest::testIcons() { delete deploy; - } void deploytest::testPathUtils() { From 3895d40df3627750ed736de12c60384d75de0c6b Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 14 Sep 2021 09:47:39 +0300 Subject: [PATCH 133/222] v1.5.4.3 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index c28c758..ca9aa11 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.2 +VERSION = 1.5.4.3 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 2fc16f4..3071aa1 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.2</Version> + <Version>1.5.4.3</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 061b60c..a78188c 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.2</Version> + <Version>1.5.4.3</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 98b4882..989461d 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.2 +VERSION = 1.5.4.3 include($$PWD/InstallerBase.pri); @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.2 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.3 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index ca62acc..d872a2d 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.2</Version> + <Version>1.5.4.3</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 3ce3cb9..54c9aa3 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.2 +Version=1.5.4.3 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.4.2 +X-GNOME-Bugzilla-Version=1.5.4.3 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 5070f94..fe9ccd9 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.2' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.3' # 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 3f11a9d163025485ae3788069a8a1a83a798e44d Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 20 Sep 2021 15:21:26 +0300 Subject: [PATCH 134/222] ref #661 "fix deploy icons " --- Deploy/Distributions/idistribution.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index ae4cc1c..9c36aed 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -275,7 +275,6 @@ bool iDistribution::deployIcon(const DistroModule& pkg) { auto localData = dataLocation(pkg); const DeployConfig *cfg = DeployCore::_config; - QSet<QString> icons; for (const auto& target: pkg.targets()) { auto targetObject = cfg->targets().value(target); @@ -292,8 +291,11 @@ bool iDistribution::deployIcon(const DistroModule& pkg) { QuasarAppUtils::Params::log(QString("%0: %1").arg(target, icon), QuasarAppUtils::Debug); - if (icons.contains(icon)) - break; + if (!targetObject.fEnableRunScript()) { + QuasarAppUtils::Params::log(QString("%0: %1 Ignored").arg(target, icon), + QuasarAppUtils::Debug); + continue; + } QFileInfo iconInfo(icon); QFileInfo runScript(targetObject.getRunScriptFile()); @@ -307,8 +309,6 @@ bool iDistribution::deployIcon(const DistroModule& pkg) { return false; } - - icons += icon; } return true; From 00780c8be86c05f505c7e229a41a7c454b753714 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 20 Sep 2021 15:24:54 +0300 Subject: [PATCH 135/222] v 1.5.4.4 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index ca9aa11..e894fec 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.3 +VERSION = 1.5.4.4 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 3071aa1..85e98dc 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.3</Version> + <Version>1.5.4.4</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index a78188c..341b0d0 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.3</Version> + <Version>1.5.4.4</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 989461d..4337396 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.3 +VERSION = 1.5.4.4 include($$PWD/InstallerBase.pri); @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.3 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.4 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index d872a2d..63dd8e0 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.3</Version> + <Version>1.5.4.4</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 54c9aa3..7de4bbf 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.3 +Version=1.5.4.4 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.4.3 +X-GNOME-Bugzilla-Version=1.5.4.4 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index fe9ccd9..1d81981 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.3' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.4' # 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 edf95141c0e40c933e9614db19f3334f452292cc Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 22 Sep 2021 12:12:35 +0300 Subject: [PATCH 136/222] fix log from another application --- Deploy/packing.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/packing.cpp b/Deploy/packing.cpp index b9c0388..1c9c1e9 100644 --- a/Deploy/packing.cpp +++ b/Deploy/packing.cpp @@ -306,5 +306,5 @@ void Packing::handleOutputUpdate() { if (erroutLog.size()) QuasarAppUtils::Params::log(erroutLog, - QuasarAppUtils::Info); + QuasarAppUtils::Error); } From 73616859adb55b5b0ee6635df039e53b386b01a5 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 22 Sep 2021 12:14:40 +0300 Subject: [PATCH 137/222] fix error logs --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index e894fec..f33eca2 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.4 +VERSION = 1.5.4.5 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 85e98dc..1acceab 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.4</Version> + <Version>1.5.4.5</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 341b0d0..0a24a08 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.4</Version> + <Version>1.5.4.5</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 4337396..15d66cf 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.4 +VERSION = 1.5.4.5 include($$PWD/InstallerBase.pri); @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.4 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.5 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 63dd8e0..949ea6b 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.4</Version> + <Version>1.5.4.5</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 7de4bbf..400d335 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.4 +Version=1.5.4.5 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.4.4 +X-GNOME-Bugzilla-Version=1.5.4.5 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 1d81981..7a01fad 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.4' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.5' # 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 e7c6b05e667d2c89ef8df07a3929aa9cb5ffaef7 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 22 Sep 2021 12:44:32 +0300 Subject: [PATCH 138/222] fix docs --- Deploy/deploycore.cpp | 6 +++--- md/en/Options.md | 8 ++++---- md/ru/Options.md | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 15e6cf5..7fa3a19 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -491,15 +491,15 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-qifConfig"}, "{path/to/config.xml}", - "Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml" + "Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml. Note This path sets releative target folder (sets by TargetDir option)." }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-qifPackages"}, "{path/to/packagesFodoler}", - "Sets a custom path to the packages directories. By default it is qif/packages" + "Sets a custom path to the packages directories. By default it is qif/packages. Note This path sets releative target folder (sets by TargetDir option)." }}); help.insert(group, {QuasarAppUtils::OptionData{ {"-qifResources"}, "{path/to/resources1.qrc,path/to/resources2.qrc}", - "Sets a custom path to the resources files. By default this option is skipped" + "Sets a custom path to the resources files. By default this option is skipped. Note This path sets releative target folder (sets by TargetDir option)." }}); help.insert(group, {QuasarAppUtils::OptionData{ diff --git a/md/en/Options.md b/md/en/Options.md index 25145ef..7f6887d 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -152,9 +152,9 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifBanner [path/to/banner.png]| Sets path to the banner png file. | | -qifLogo [path/to/logo.png]| Sets path to the logo png file. | | -qifOut [nameOfOutputInstallerFile] | Sets name of output qifw installer. Note: on Windows, the exe suffix will be added to the installer automatically. | -| -qifConfig [path/to/config.xml] | Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml | -| -qifPackages [path/to/packagesFodoler] | Sets a custom path to the packages directories. By default it is qif/packages | -| -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Sets a custom path to the resources files. By default this option is skipped | +| -qifConfig [path/to/config.xml] | Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml. Note This path sets releative target folder (sets by TargetDir option). | +| -qifPackages [path/to/packagesFodoler] | Sets a custom path to the packages directories. By default it is qif/packages. Note This path sets releative target folder (sets by TargetDir option). | +| -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Sets a custom path to the resources files. By default this option is skipped. Note This path sets releative target folder (sets by TargetDir option). | ### Deb package options @@ -166,6 +166,6 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| -| -debOut [package;nameOfOutputZipFile,nameOfOutputZipFile]| Sets name of the output zip arrhive. This option can be work with multiple packages | +| -zipOut [package;nameOfOutputZipFile,nameOfOutputZipFile]| Sets name of the output zip arrhive. This option can be work with multiple packages | #### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.4/gcc_64/bin/qmake clear diff --git a/md/ru/Options.md b/md/ru/Options.md index 380174b..7038140 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -148,9 +148,9 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifBanner [path/to/banner.png]| Устанавливает путь к png-файлу баннера. | | -qifLogo [path/to/logo.png]| Устанавливает путь к файлу логотипа png. | | -qifOut [nameOfOutputInstallerFile] | Устанавливает имя выходного установщика qifw. Примечание: для установщика Windows автоматически добавляется суффикс exe. | -| -qifConfig [path/to/config.xml] | Устанавливает пользовательский путь к файлу конфигурации установщика qt ifw. По умолчанию это qif/config/config.xml | -| -qifPackages [path/to/packagesFodoler] | Устанавливает пользовательский путь к каталогам пакетов. По умолчанию это qif/packages | -| -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Устанавливает пользовательский путь к файлам ресурсов. По умолчанию эта опция пропущена | +| -qifConfig [path/to/config.xml] | Устанавливает пользовательский путь к файлу конфигурации установщика qt ifw. По умолчанию это qif/config/config.xml. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | +| -qifPackages [path/to/packagesFodoler] | Устанавливает пользовательский путь к каталогам пакетов. По умолчанию это qif/packages. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | +| -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Устанавливает пользовательский путь к файлам ресурсов. По умолчанию эта опция пропущена. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | ### Deb package options: @@ -162,7 +162,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| -| -debOut [package;nameOfOutputZipFile,nameOfOutputZipFile]| Устанавливает имя выходного zip архива. Эта опция может работать с несколькими пакетами | +| -zipOut [package;nameOfOutputZipFile,nameOfOutputZipFile]| Устанавливает имя выходного zip архива. Эта опция может работать с несколькими пакетами | #### Пример: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.15.0/gcc_64/bin/qmake clear From ca32b871428647cd1d5e23f8ba8d000bcb65c379 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 23 Sep 2021 13:37:19 +0300 Subject: [PATCH 139/222] manual tests for icons --- Deploy/Distributions/idistribution.cpp | 4 ++++ Deploy/Distributions/qif.cpp | 2 +- Deploy/configparser.cpp | 1 - UnitTests/tst_deploytest.cpp | 28 ++++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index 9c36aed..f11cf6b 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -275,6 +275,10 @@ bool iDistribution::deployIcon(const DistroModule& pkg) { auto localData = dataLocation(pkg); const DeployConfig *cfg = DeployCore::_config; + QuasarAppUtils::Params::log(QString("Deploy icons for package %0. count targets: %1"). + arg(pkg.name()).arg(pkg.targets().count()), + QuasarAppUtils::Debug); + for (const auto& target: pkg.targets()) { auto targetObject = cfg->targets().value(target); diff --git a/Deploy/Distributions/qif.cpp b/Deploy/Distributions/qif.cpp index 5fb4507..83076bf 100644 --- a/Deploy/Distributions/qif.cpp +++ b/Deploy/Distributions/qif.cpp @@ -298,5 +298,5 @@ bool QIF::initDefaultConfiguratuin() { const DeployConfig *cfg = DeployCore::_config; // init default configuration - return collectInfo(DistroModule{cfg->getDefaultPackage()}, generalInfo); + return collectInfo(cfg->getDistroFromPackage(cfg->getDefaultPackage()), generalInfo); } diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 66df862..118cc3f 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -572,7 +572,6 @@ bool ConfigParser::initDistroStruct() { bool ConfigParser::initPackages() { defaultPackage = "Application"; - QSet<QString> configuredTargets; if (QuasarAppUtils::Params::isEndable("targetPackage")) { diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index bd4f76c..851dc66 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1315,6 +1315,34 @@ void deploytest::testIcons() { delete deploy; + + // manual tests +#ifdef QT_DEBUG +#ifdef Q_OS_UNIX + bin = TestBinDir + "TestOnlyC," + TestBinDir + "TestCPPOnly"; + + auto comapareTree = utils.createTree({ + "./" + DISTRO_DIR + "/InstallerTest.run", + "./" + DISTRO_DIR + "/InstallerTest.run.md5", + }); + +#else + QString bin = TestBinDir + "TestOnlyC.exe"; + + auto comapareTree = utils.createTree({ + "./" + DISTRO_DIR + "/InstallerTest.exe", + "./" + DISTRO_DIR + "/InstallerTest.exe.md5", + + }); + +#endif + + runTestParams({"-bin", bin, "clear" , + "qif", "qifFromSystem", "-name", "Test", + "-targetPackage", "testPackage;TestOnlyC;TestCPPOnly", + "-icon", "TestOnlyC;:/testResurces/testRes/TestIcon.png,TestCPPOnly;:/testResurces/testRes/TestTr.qm"}, &comapareTree, true); + +#endif } void deploytest::testPathUtils() { From d23d3b71f47420b6a39fe68d8a42aa488a9d6ebc Mon Sep 17 00:00:00 2001 From: EndrII <endriimail@gmail.com> Date: Tue, 28 Sep 2021 11:21:06 +0300 Subject: [PATCH 140/222] fix win test --- 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 851dc66..dd93189 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1327,7 +1327,7 @@ void deploytest::testIcons() { }); #else - QString bin = TestBinDir + "TestOnlyC.exe"; + bin = TestBinDir + "TestOnlyC.exe," + TestBinDir + "TestCPPOnly.exe"; auto comapareTree = utils.createTree({ "./" + DISTRO_DIR + "/InstallerTest.exe", From dca0f51e5af2014f51cef9352143f22cac048fdc Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 28 Sep 2021 11:24:21 +0300 Subject: [PATCH 141/222] fix windows version --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index f33eca2..dc6d61d 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.5 +VERSION = 1.5.4.6 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 1acceab..cefafd5 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.5</Version> + <Version>1.5.4.6</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 0a24a08..a7b0d95 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.5</Version> + <Version>1.5.4.6</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 15d66cf..5a90392 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.5 +VERSION = 1.5.4.6 include($$PWD/InstallerBase.pri); @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.5 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.6 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 949ea6b..2b3f72a 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.5</Version> + <Version>1.5.4.6</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 400d335..c00546d 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.5 +Version=1.5.4.6 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.4.5 +X-GNOME-Bugzilla-Version=1.5.4.6 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7a01fad..e4a6ba5 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.5' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.6' # 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 41e0c88b05ff78abcb275ed32b4b074931d26721 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 29 Sep 2021 11:09:05 +0300 Subject: [PATCH 142/222] fix windows icons --- Deploy/Deploy.pro | 2 +- Deploy/Distributions/idistribution.cpp | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index dc6d61d..890b394 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.6 +VERSION = 1.5.4.7 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/Deploy/Distributions/idistribution.cpp b/Deploy/Distributions/idistribution.cpp index f11cf6b..33b6377 100644 --- a/Deploy/Distributions/idistribution.cpp +++ b/Deploy/Distributions/idistribution.cpp @@ -295,7 +295,7 @@ bool iDistribution::deployIcon(const DistroModule& pkg) { QuasarAppUtils::Params::log(QString("%0: %1").arg(target, icon), QuasarAppUtils::Debug); - if (!targetObject.fEnableRunScript()) { + if (!targetObject.getShortCut()) { QuasarAppUtils::Params::log(QString("%0: %1 Ignored").arg(target, icon), QuasarAppUtils::Debug); continue; diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index cefafd5..2d24511 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.6</Version> + <Version>1.5.4.7</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index a7b0d95..307cbe7 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.6</Version> + <Version>1.5.4.7</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 5a90392..a98dd48 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.6 +VERSION = 1.5.4.7 include($$PWD/InstallerBase.pri); @@ -23,7 +23,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.6 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 2b3f72a..c1dc1f3 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.6</Version> + <Version>1.5.4.7</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index c00546d..eff7f08 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.6 +Version=1.5.4.7 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.4.6 +X-GNOME-Bugzilla-Version=1.5.4.7 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index e4a6ba5..df6526b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.6' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.7' # 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 dab5f42ba9e0550a271efcde456eaf2edfd89f5c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 7 Oct 2021 13:50:42 +0300 Subject: [PATCH 143/222] fix "QtInstallerFramework not found!" error --- QIFData/InstallerBase.pri | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/QIFData/InstallerBase.pri b/QIFData/InstallerBase.pri index 5d00e55..75e20e7 100644 --- a/QIFData/InstallerBase.pri +++ b/QIFData/InstallerBase.pri @@ -41,18 +41,23 @@ for(val, sopprted_versions) { } isEmpty (BINARY_LIST) { - error( "QtInstallerFramework not found!" ) + warning( "QtInstallerFramework not found! use binaries from PATH" ) + EXEC=binarycreator + REPOGEN=repogen + +} else: { + win32:EXEC=$$first(BINARY_LIST).exe + win32:REPOGEN=$$first(REPO_LIST).exe + + contains(QMAKE_HOST.os, Linux):{ + unix:EXEC=$$first(BINARY_LIST) + win32:EXEC=wine $$first(BINARY_LIST).exe + + REPOGEN=$$first(REPO_LIST) + } } -win32:EXEC=$$first(BINARY_LIST).exe -win32:REPOGEN=$$first(REPO_LIST).exe -contains(QMAKE_HOST.os, Linux):{ - unix:EXEC=$$first(BINARY_LIST) - win32:EXEC=wine $$first(BINARY_LIST).exe - - REPOGEN=$$first(REPO_LIST) -} message( selected $$EXEC and $$REPOGEN) From 9077cbf8581e0405ad11789ea329ac310b070863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kastu=C5=9B=20Novika=C5=AD?= <kickoman@yandex.by> Date: Thu, 7 Oct 2021 23:58:46 +0300 Subject: [PATCH 144/222] Fix some mistakes in Readme Now it is not perfect, but at least seems to be better :) --- README.md | 59 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index e4d3e82..d3665af 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# CQtDeployer +# CQtDeployer [](https://snapcraft.io/cqtdeployer) [](https://snapcraft.io/cqtdeployer) @@ -7,7 +7,7 @@ **************************** ## Support the project -If you like what we do and it benefits you, you can support the project on the official page [QuasarApp in Patreon](https://www.patreon.com/QuasarApp) +If you like what we do and it benefits you, you can support the project on the official page [QuasarApp on Patreon](https://www.patreon.com/QuasarApp) ## What is CQtDeployer The CQtDeployer is application for extract all depends library of executable and create launch script for your application. @@ -15,16 +15,16 @@ The CQtDeployer is application for extract all depends library of executable and Key differences of this program: * Performance: this program deploys the application several times faster (up to 10 seconds) -* Flexibility: this application's got flags that help you to configure the deployment for your or your project's needs -* Crossdeploy: this application's support windows and linux distrebutives, This means that you can use it not only to deploy a project for your platform, but also to deploy a project on Linux for Windows and vice versa. -* Fast create installers : Upon completion of the deployment, you will receive a self-contained installer of your distribution. +* Flexibility: this application has flags that help you to configure the deployment for your or your project's needs +* Cross-deployment: this application supports Windows and Linux distributions. This means that you can deploy a project not only for the host platform, but also deploy a project for Windows target on Linux host and vice versa. +* Fast installers creation: Once the deployment is complete, you will receive a standalone installer for your distribution. ## Supported platforms: * <img src="https://user-images.githubusercontent.com/12465465/67766480-929b5000-fa5f-11e9-8ae7-377d9ddb7c65.png" height="100"> * <img src="https://upload.wikimedia.org/wikipedia/commons/8/8d/Windows_darkblue_2012.svg" height="100"> -## Support processors architectures: +## Supported processors architectures: * x86 * x86-64 * ARM @@ -32,15 +32,15 @@ Key differences of this program: ## How to use -#### Example: cqtdeployer <-bin [params]> [options] +#### Example: `cqtdeployer <-bin [params]> [options]` -See list of all options [here](md/en/Options.md) +See the list of all options [here](md/en/Options.md) -#### Example: cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.12.4/gcc_64/bin/qmake clear +#### Example: `cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.12.4/gcc_64/bin/qmake clear` ## More examples -#### Project structure after deploy: +#### Deployed project structure: ``` bash #linux cqtdeployer -bin Guitar @@ -51,7 +51,7 @@ See list of all options [here](md/en/Options.md) ``` <img src="https://user-images.githubusercontent.com/12465465/81007195-7ab2e780-8e59-11ea-9793-1eeeb0025b96.png" height="400"> -#### Project installer after deploy with the qif option. +#### Project installer after deployment with the `qif` option. ``` bash #linux cqtdeployer -bin Application qif @@ -62,7 +62,7 @@ See list of all options [here](md/en/Options.md) ``` <img src="https://user-images.githubusercontent.com/12465465/78639719-197a1180-78b7-11ea-9e82-a03dd43f4bd2.png" height="400"> -#### Project installer after deploy with the qif and qifStyle option. +#### Project installer after deployment with the `qif` and `qifStyle` options. ``` bash #linux @@ -87,42 +87,44 @@ See list of all options [here](md/en/Options.md) <img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"> ## Build and install -The Building or installation instructions see on wiki [page](md/en/Build-and-Install.md) +See building and installation instructions on wiki [page](md/en/Build-and-Install.md) ## Projects using CQtDeployer: -- [QAmigo](https://github.com/QAmigo/QAmigo) - Qt cross-platform serial port socket assistant for visualizing data. -- [QtSecret](https://github.com/QuasarApp/Qt-Secret) - Simple encryption library supporting RSA and AES algorithms. -- [Hanoi-Towers](https://github.com/QuasarApp/Hanoi-Towers) - Hanoi Towers Game -- [distbuilder](https://github.com/BuvinJT/distbuilder) - Distribution Builder -- [Manager_v2](https://github.com/dimkatsi91/Manager_v2) - Qt Quick Controls 2 - Linux Manager Desktop Application -- [IDE65XX](https://github.com/emartisoft/IDE65XX) - IDE 65XX is one of the open source IDE options available for developers working with Kick Assembler. -- [Tanks](https://github.com/anevero/tanks) - 2D game written in C++ & Qt for Windows, Linux and Android -- [stegano](https://github.com/taskmaster9001/stegano) - Bit-level Image Manipulation Software with Qt Framework - Steganography Pet Project +- [QAmigo](https://github.com/QAmigo/QAmigo) - Qt cross-platform serial port socket assistant for visualizing data. +- [QtSecret](https://github.com/QuasarApp/Qt-Secret) - Simple encryption library supporting RSA and AES algorithms. +- [Hanoi-Towers](https://github.com/QuasarApp/Hanoi-Towers) - Hanoi Towers Game +- [distbuilder](https://github.com/BuvinJT/distbuilder) - Distribution Builder +- [Manager_v2](https://github.com/dimkatsi91/Manager_v2) - Qt Quick Controls 2 - Linux Manager Desktop Application +- [IDE65XX](https://github.com/emartisoft/IDE65XX) - IDE 65XX is one of the open source IDE options available for developers working with Kick Assembler. +- [Tanks](https://github.com/anevero/tanks) - 2D game written in C++ & Qt for Windows, Linux and Android +- [stegano](https://github.com/taskmaster9001/stegano) - Bit-level Image Manipulation Software with Qt Framework - Steganography Pet Project - [Online_Board](https://github.com/MaxMalts/Online_Board) - This is a board that you can share with others. *** -### If you want to get more information see our documentations [here](md/index.md) +### Check out our documentation for more information: [here](md/index.md) *** -<p align="center"><img src="res/Credits.jpg" alt="Credits"></p> +<img src="res/Credits.jpg" alt="Credits"> -Join the development fund and support QuasarApp to help with the development of our projects. -<a href="https://www.patreon.com/bePatron?u=9304737"><img src="https://img.shields.io/badge/ become a patron-red?&style=for-the-badge&logo=patreon&logoColor=white" height=30 width=180></a> +Join the development fund and support QuasarApp to help us develop of our projects. + +<img src="https://img.shields.io/badge/ become a patron-red?&style=for-the-badge&logo=patreon&logoColor=white" height=30 width=180> -If you would like to use bitcoins to support us, you can transfer coins to these address. If you want to be included in the patron list, send an e-mail message - QuasarApp@yandex.by. +If you would like to use bitcoins to support us, you can transfer coins to this address. If you want to be included in the Patrons list, e-mail me at QuasarApp@yandex.by. -**Note**: You must send a message signed with address of the bitcoin wallet from which the payment was made. +**Note**: Your message should be signed with the address of the Bitcoin wallet which was used to make the payment. <p align="center"><img src="res/qr.png" alt="qrcode"></p> -<p align="center">bitcoin: bc1qzuymq7jc9q2x04wcwstr45tu8klm46zfl20wyp</p> +bitcoin: bc1qzuymq7jc9q2x04wcwstr45tu8klm46zfl20wyp + ## Our patrons list: @@ -138,3 +140,4 @@ If you would like to use bitcoins to support us, you can transfer coins to these * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. *************************** + From f7edbf4dceda322003c51f9c8cf30909041e2b59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kastu=C5=9B=20Novika=C5=AD?= <kickoman@yandex.by> Date: Fri, 8 Oct 2021 00:01:50 +0300 Subject: [PATCH 145/222] a bit more fixes for readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3665af..0308c32 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ If you like what we do and it benefits you, you can support the project on the official page [QuasarApp on Patreon](https://www.patreon.com/QuasarApp) ## What is CQtDeployer -The CQtDeployer is application for extract all depends library of executable and create launch script for your application. +CQtDeployer helps you to extract all libraries your executable depends on and to create a launch script for your application. Key differences of this program: * Performance: this program deploys the application several times faster (up to 10 seconds) From 7fff195ecf7fff96e57ff16b35930cfd9b2f45d6 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Fri, 8 Oct 2021 00:31:00 +0300 Subject: [PATCH 146/222] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0308c32..637f03a 100644 --- a/README.md +++ b/README.md @@ -113,8 +113,7 @@ See building and installation instructions on wiki [page](md/en/Build-and-Instal Join the development fund and support QuasarApp to help us develop of our projects. -<img src="https://img.shields.io/badge/ become a patron-red?&style=for-the-badge&logo=patreon&logoColor=white" height=30 width=180> - +<a href="https://www.patreon.com/bePatron?u=9304737"><img src="https://img.shields.io/badge/ become a patron-red?&style=for-the-badge&logo=patreon&logoColor=white" height=30 width=180></a> If you would like to use bitcoins to support us, you can transfer coins to this address. If you want to be included in the Patrons list, e-mail me at QuasarApp@yandex.by. From e3450dcaae4c260163f58c5ed587c89514563eac Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Fri, 8 Oct 2021 09:27:17 +0300 Subject: [PATCH 147/222] Fix images align Fix after merge #666 --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 637f03a..7ec21b9 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ See the list of all options [here](md/en/Options.md) cqtdeployer -bin Guitar.exe -qmake /path/to/qmake.exe ``` -<img src="https://user-images.githubusercontent.com/12465465/81007195-7ab2e780-8e59-11ea-9793-1eeeb0025b96.png" height="400"> +<p align="center"><img src="https://user-images.githubusercontent.com/12465465/81007195-7ab2e780-8e59-11ea-9793-1eeeb0025b96.png" height="400"></p> #### Project installer after deployment with the `qif` option. ``` bash @@ -60,7 +60,7 @@ See the list of all options [here](md/en/Options.md) cqtdeployer -bin Application.exe -qmake /path/to/qmake.exe qif ``` -<img src="https://user-images.githubusercontent.com/12465465/78639719-197a1180-78b7-11ea-9e82-a03dd43f4bd2.png" height="400"> +<p align="center"><img src="https://user-images.githubusercontent.com/12465465/78639719-197a1180-78b7-11ea-9e82-a03dd43f4bd2.png" height="400"></p> #### Project installer after deployment with the `qif` and `qifStyle` options. @@ -73,7 +73,7 @@ See the list of all options [here](md/en/Options.md) ``` -<img src="https://user-images.githubusercontent.com/12465465/78639720-1aab3e80-78b7-11ea-9604-3dcdd7c78482.png" height="400"> +<p align="center"><img src="https://user-images.githubusercontent.com/12465465/78639720-1aab3e80-78b7-11ea-9604-3dcdd7c78482.png" height="400"></p> ``` bash #linux @@ -84,7 +84,7 @@ See the list of all options [here](md/en/Options.md) ``` -<img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"> +<p align="center"><img src="https://user-images.githubusercontent.com/12465465/78639716-17b04e00-78b7-11ea-9002-a8b45a43807f.png" height="400"></p> ## Build and install See building and installation instructions on wiki [page](md/en/Build-and-Install.md) @@ -108,7 +108,7 @@ See building and installation instructions on wiki [page](md/en/Build-and-Instal *** -<img src="res/Credits.jpg" alt="Credits"> +<p align="center"><img src="res/Credits.jpg" alt="Credits"></p> Join the development fund and support QuasarApp to help us develop of our projects. @@ -122,7 +122,7 @@ If you would like to use bitcoins to support us, you can transfer coins to this <p align="center"><img src="res/qr.png" alt="qrcode"></p> -bitcoin: bc1qzuymq7jc9q2x04wcwstr45tu8klm46zfl20wyp +<p align="center">bitcoin: bc1qzuymq7jc9q2x04wcwstr45tu8klm46zfl20wyp</p> ## Our patrons list: From 503693d244dee7dfd04c1deeacd5c5caac7b5898 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 10:19:15 +0300 Subject: [PATCH 148/222] disable tests for arm and deploy --- CQtDeployer.pro | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index ddcc264..f48e42e 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -47,7 +47,11 @@ android: DEFINES += WITHOUT_TESTS QuasarAppLib.file = $$PWD/QuasarAppLib/QuasarApp.pro Pe.file = $$PWD/pe/pe-parser-library/pe-parser-library.pro - include('$$PWD/QIFData/installerCQtDeployer.pri') + + !contains(QMAKE_HOST.arch, arm.*):{ + include('$$PWD/QIFData/installerCQtDeployer.pri') + include($$PWD/test.pri) + } DISTFILES += \ snap/snapcraft.yaml \ @@ -56,5 +60,4 @@ android: DEFINES += WITHOUT_TESTS } - include($$PWD/test.pri) From d69e6c9d1a97120ccd6972dce332569bd82355f0 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 10:42:50 +0300 Subject: [PATCH 149/222] disable deploy qif and snap for arm --- QIFData/installerCQtDeployer.pri | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index a98dd48..f02b2f7 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,8 +1,8 @@ VERSION = 1.5.4.7 - include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) + win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win64.exe unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux64.run @@ -38,9 +38,13 @@ deployOffline.commands = $$EXEC \ -p $$PWD/packages \ $$PWD/../Distro/$$OUT_FILE_OFF -deploy.depends = deploy_dep -deploy.depends += deployOffline +!contains(QMAKE_HOST.arch, arm.*):{ + deploy.depends = deploy_dep + deploy.depends += deployOffline + +} + unix:deploy.depends += deploy_deb win32:ONLINE_REPO_DIR = $$ONLINE/CQtDeployer/Windows @@ -80,12 +84,15 @@ releaseSnap.commands = snapcraft push *.snap # bad patern !isEmpty( ONLINE ) { - message(Snap) - unix:deploy.depends += clearSnap - unix:deploy.depends += buildSnap - unix:deploy.depends += deploySnap - unix:deploy.depends += clearSnap2 - unix:release.depends += releaseSnap + !contains(QMAKE_HOST.arch, arm.*):{ + + message(Snap) + unix:deploy.depends += clearSnap + unix:deploy.depends += buildSnap + unix:deploy.depends += deploySnap + unix:deploy.depends += clearSnap2 + unix:release.depends += releaseSnap + } } OTHER_FILES += \ From 208e1ab4b6812cf174221294f9f681faa580401b Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 10:43:39 +0300 Subject: [PATCH 150/222] enable deploy dep for arm --- CQtDeployer.pro | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index f48e42e..a3df6f3 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -47,9 +47,8 @@ android: DEFINES += WITHOUT_TESTS QuasarAppLib.file = $$PWD/QuasarAppLib/QuasarApp.pro Pe.file = $$PWD/pe/pe-parser-library/pe-parser-library.pro - + include('$$PWD/QIFData/installerCQtDeployer.pri') !contains(QMAKE_HOST.arch, arm.*):{ - include('$$PWD/QIFData/installerCQtDeployer.pri') include($$PWD/test.pri) } From 8042dba2c166f1e38e025e288b727f2c6cf3f36e Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 10:46:41 +0300 Subject: [PATCH 151/222] disable tr for old qt --- QIFData/installerCQtDeployer.pri | 55 +++++++++++++++++--------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index f02b2f7..993be3a 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -116,43 +116,46 @@ QMAKE_EXTRA_TARGETS += \ chmodSnap -# Translations -SUPPORT_LANGS = ru +!lessThan(QT_MAJOR_VERSION, 6):lessThan(QT_MINOR_VERSION, 12) { -defineReplace(findFiles) { - patern = $$1 - path = $$2 + # Translations + SUPPORT_LANGS = ru - all_files = $$files(*$${patern}, true) - win32:all_files ~= s|\\\\|/|g - win32:path ~= s|\\\\|/|g + defineReplace(findFiles) { + patern = $$1 + path = $$2 - for(file, all_files) { - result += $$find(file, $$path) + all_files = $$files(*$${patern}, true) + win32:all_files ~= s|\\\\|/|g + win32:path ~= s|\\\\|/|g + + for(file, all_files) { + result += $$find(file, $$path) + } + + return($$result) } - return($$result) -} + XML_FILES = $$files(*.xml, true) -XML_FILES = $$files(*.xml, true) + for(LANG, SUPPORT_LANGS) { + for(XML, XML_FILES) { + FILE_PATH = $$dirname(XML) -for(LANG, SUPPORT_LANGS) { - for(XML, XML_FILES) { - FILE_PATH = $$dirname(XML) + JS_FILES = $$findFiles(".js", $$FILE_PATH) + UI_FILES = $$findFiles(".ui", $$FILE_PATH) - JS_FILES = $$findFiles(".js", $$FILE_PATH) - UI_FILES = $$findFiles(".ui", $$FILE_PATH) + commands += "$$LUPDATE $$JS_FILES $$UI_FILES -ts $$FILE_PATH/$${LANG}.ts" + TS_FILES += $$FILE_PATH/$${LANG}.ts - commands += "$$LUPDATE $$JS_FILES $$UI_FILES -ts $$FILE_PATH/$${LANG}.ts" - TS_FILES += $$FILE_PATH/$${LANG}.ts + } + for(TS, TS_FILES) { + commands += "$$LRELEASE $$TS" + } } - for(TS, TS_FILES) { - commands += "$$LRELEASE $$TS" + for(command, commands) { + system($$command)|error("Failed to run: $$command") } } - -for(command, commands) { - system($$command)|error("Failed to run: $$command") -} From 57ef7053b52b5a91f53910414c994f3a704cc2e5 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 10:57:26 +0300 Subject: [PATCH 152/222] fix arh --- QIFData/installerCQtDeployer.pri | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 993be3a..02579d6 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -3,11 +3,13 @@ VERSION = 1.5.4.7 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) -win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win64.exe -unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux64.run +message(QMAKE_HOST.arch = $$QMAKE_HOST.arch) -win32:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Win64.exe -unix:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Linux64.run +win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win$$QMAKE_HOST.arch.exe +unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux$$QMAKE_HOST.arch.run + +win32:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Win$$QMAKE_HOST.arch.exe +unix:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Linux$$QMAKE_HOST.arch.run DEPLOY_TARGET = $$PWD/../CQtDeployer/build/release @@ -23,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux64.deb -zipOut CQtDeployer_'$$VERSION'_Linux64.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux$$QMAKE_HOST.arch.deb -zipOut CQtDeployer_'$$VERSION'_Linux$$QMAKE_HOST.arch.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT From eeb6515d73eb1af2b7676c0617214cf5da8e754f Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 11:01:21 +0300 Subject: [PATCH 153/222] fix name --- QIFData/installerCQtDeployer.pri | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 02579d6..e35b67c 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -5,11 +5,11 @@ mkpath( $$PWD/../Distro) message(QMAKE_HOST.arch = $$QMAKE_HOST.arch) -win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win$$QMAKE_HOST.arch.exe -unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux$$QMAKE_HOST.arch.run +win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win'$$QMAKE_HOST.arch'.exe +unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux'$$QMAKE_HOST.arch'.run -win32:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Win$$QMAKE_HOST.arch.exe -unix:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Linux$$QMAKE_HOST.arch.run +win32:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Win'$$QMAKE_HOST.arch'.exe +unix:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Linux'$$QMAKE_HOST.arch'.run DEPLOY_TARGET = $$PWD/../CQtDeployer/build/release @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux$$QMAKE_HOST.arch.deb -zipOut CQtDeployer_'$$VERSION'_Linux$$QMAKE_HOST.arch.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux'$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT From e93dd46a00abacc7c3bcbe78f478b5b9f225f024 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 11:03:30 +0300 Subject: [PATCH 154/222] fix name --- QIFData/installerCQtDeployer.pri | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index e35b67c..69b09f9 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -5,11 +5,11 @@ mkpath( $$PWD/../Distro) message(QMAKE_HOST.arch = $$QMAKE_HOST.arch) -win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win'$$QMAKE_HOST.arch'.exe -unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux'$$QMAKE_HOST.arch'.run +win32:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Win'_$$QMAKE_HOST.arch'.exe +unix:OUT_FILE = CQtDeployer_'$$VERSION'_Installer_Linux'_$$QMAKE_HOST.arch'.run -win32:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Win'$$QMAKE_HOST.arch'.exe -unix:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Linux'$$QMAKE_HOST.arch'.run +win32:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Win'_$$QMAKE_HOST.arch'.exe +unix:OUT_FILE_OFF = CQtDeployer_'$$VERSION'_OfflineInstaller_Linux'_$$QMAKE_HOST.arch'.run DEPLOY_TARGET = $$PWD/../CQtDeployer/build/release @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux'$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT From 2db0d6b9e80cf71915fcb075f55eeb700d9683cd Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 19 Oct 2021 11:43:37 +0300 Subject: [PATCH 155/222] added icu libs in distro --- QIFData/installerCQtDeployer.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 69b09f9..cfcf364 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -19,7 +19,7 @@ META_DIR = $$PWD/packages/cqtdeployer.1_5/meta/ win32:OUT_LIB= -libOut lib win32:OUT_BIN= -binOut bin -BASE_DEPLOY_FLAGS = clear -qmake $$QMAKE_BIN -libDir $$PWD/../ -recursiveDepth 4 -ignoreEnv $$DEPLOY_TARGET +BASE_DEPLOY_FLAGS = clear -qmake $$QMAKE_BIN -libDir $$PWD/../ -recursiveDepth 4 -ignoreEnv $$DEPLOY_TARGET -extraLibs icu BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OUT_BIN From 0dab3b578461fb8f2fd881aba2ec87db30b73fab Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 26 Oct 2021 18:38:23 +0300 Subject: [PATCH 156/222] fix #672 "added suppor folder for tr option " --- Deploy/extracter.cpp | 18 ++++++++++++++++-- UnitTests/tst_deploytest.cpp | 17 ++++++++++------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 664cacc..ea61103 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -269,8 +269,22 @@ bool Extracter::copyTr() { const auto trFiles = i->tr(); for (const auto &tr: trFiles) { - if (!_fileManager->copyFile(tr, cnf->getPackageTargetDir(i.key()) + i->getTrOutDir())) { - return false; + + QFileInfo info(tr); + + if (info.isDir()) { + QDir dir(info.absoluteFilePath()); + auto availableQm = dir.entryInfoList({"*.qm"}, QDir::Files); + for (const auto & trFile : qAsConst(availableQm)) { + if (!_fileManager->copyFile(trFile.absoluteFilePath(), + cnf->getPackageTargetDir(i.key()) + i->getTrOutDir())) { + return false; + } + } + } else { + if (!_fileManager->copyFile(tr, cnf->getPackageTargetDir(i.key()) + i->getTrOutDir())) { + return false; + } } } } diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index bd4f76c..5470e89 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1190,21 +1190,24 @@ void deploytest::testDeployGeneralFiles() { void deploytest::testTr() { TestUtils utils; #ifdef Q_OS_UNIX - QString bin = TestBinDir + "QtWidgetsProject"; - QString qmake = TestQtDir + "bin/qmake"; + QString bin = TestBinDir + "TestOnlyC"; #else - QString bin = TestBinDir + "QtWidgetsProject.exe"; - QString qmake = TestQtDir + "bin/qmake.exe"; + QString bin = TestBinDir + "TestOnlyC.exe"; #endif - auto comapareTree = TestModule.qtLibs(); + auto comapareTree = TestModule.onlyC(); comapareTree += utils.createTree({"./" + DISTRO_DIR + "/translations/TestTr.qm"}); runTestParams({"-bin", bin, "clear" , - "-tr", ":/testResurces/testRes/TestTr.qm", - "-qmake", qmake}, &comapareTree); + "-tr", ":/testResurces/testRes/TestTr.qm",}, &comapareTree, + true); + + + runTestParams({"-bin", bin, "clear" , + "-tr", ":/testResurces/testRes/"}, + &comapareTree, true); } void deploytest::testVirtualKeyBoard() { From 910bb9983f3410cc2061125518f24a72c2193739 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 27 Oct 2021 09:31:35 +0300 Subject: [PATCH 157/222] fix tests --- UnitTests/tst_deploytest.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 5470e89..c3fa28f 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1196,18 +1196,16 @@ void deploytest::testTr() { QString bin = TestBinDir + "TestOnlyC.exe"; #endif - auto comapareTree = TestModule.onlyC(); - - comapareTree += utils.createTree({"./" + DISTRO_DIR + "/translations/TestTr.qm"}); runTestParams({"-bin", bin, "clear" , - "-tr", ":/testResurces/testRes/TestTr.qm",}, &comapareTree, - true); + "-tr", ":/testResurces/testRes/TestTr.qm",}); + QVERIFY(QFile::exists("./" + DISTRO_DIR + "/translations/TestTr.qm")); runTestParams({"-bin", bin, "clear" , - "-tr", ":/testResurces/testRes/"}, - &comapareTree, true); + "-tr", ":/testResurces/testRes/"}); + + QVERIFY(QFile::exists("./" + DISTRO_DIR + "/translations/TestTr.qm")); } void deploytest::testVirtualKeyBoard() { From a4e117678d9b1000fe9735b6ced8e5a470534552 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 27 Oct 2021 09:34:40 +0300 Subject: [PATCH 158/222] version 1.5.4.8 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 890b394..24b8745 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.7 +VERSION = 1.5.4.8 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 2d24511..040cd5b 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.7</Version> + <Version>1.5.4.8</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 307cbe7..b04fca1 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.7</Version> + <Version>1.5.4.8</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index cfcf364..e363a97 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.7 +VERSION = 1.5.4.8 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.7 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.8 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index c1dc1f3..6cbac6e 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.7</Version> + <Version>1.5.4.8</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index eff7f08..e5a9ae6 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.7 +Version=1.5.4.8 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.4.7 +X-GNOME-Bugzilla-Version=1.5.4.8 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index df6526b..ab72b60 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.7' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.8' # 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 e2a2cd7c41b0156aa68e16e1a1a1e6731567b81c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 27 Oct 2021 12:25:07 +0300 Subject: [PATCH 159/222] fix build --- CQtDeployer.pro | 2 ++ QIFData/installerCQtDeployer.pri | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index a3df6f3..b447384 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -11,7 +11,9 @@ CONFIG += ordered lessThan(QT_MAJOR_VERSION, 6):lessThan(QT_MINOR_VERSION, 12) { warning("Tests are only enabled on Qt 5.12.0 or later version. You are using $$[QT_VERSION].") DEFINES += WITHOUT_TESTS + DEFINES += WITHOUT_TR } + android: DEFINES += WITHOUT_TESTS !android { diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index e363a97..083141c 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -118,7 +118,7 @@ QMAKE_EXTRA_TARGETS += \ chmodSnap -!lessThan(QT_MAJOR_VERSION, 6):lessThan(QT_MINOR_VERSION, 12) { +contains(DEFINES, WITHOUT_TR) { # Translations SUPPORT_LANGS = ru From d48e982cc32a2e18ca4b4aaecedf0fa253605f9d Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 27 Oct 2021 12:33:45 +0300 Subject: [PATCH 160/222] fix tr --- QIFData/installerCQtDeployer.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 083141c..fa01203 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -118,7 +118,7 @@ QMAKE_EXTRA_TARGETS += \ chmodSnap -contains(DEFINES, WITHOUT_TR) { +!contains(DEFINES, WITHOUT_TR) { # Translations SUPPORT_LANGS = ru From fcd120f7838532bd27d188ebbc531a4eed879b86 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Fri, 29 Oct 2021 13:23:16 +0300 Subject: [PATCH 161/222] added warning for wrong translations --- Deploy/Deploy.pro | 2 +- Deploy/extracter.cpp | 6 ++++++ QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 24b8745..6b661c6 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.8 +VERSION = 1.5.4.9 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index ea61103..a0cc74f 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -272,6 +272,12 @@ bool Extracter::copyTr() { QFileInfo info(tr); + if (!info.exists()) { + QuasarAppUtils::Params::log("Failed to copy " + info.absoluteFilePath() + ". Not exists", + QuasarAppUtils::Warning); + continue; + } + if (info.isDir()) { QDir dir(info.absoluteFilePath()); auto availableQm = dir.entryInfoList({"*.qm"}, QDir::Files); diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 040cd5b..19b6e58 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.8</Version> + <Version>1.5.4.9</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index b04fca1..8fe7403 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.8</Version> + <Version>1.5.4.9</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index fa01203..c22fdd0 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.8 +VERSION = 1.5.4.9 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.8 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.9 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 6cbac6e..892b78d 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.8</Version> + <Version>1.5.4.9</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index e5a9ae6..909fe77 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.8 +Version=1.5.4.9 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.4.8 +X-GNOME-Bugzilla-Version=1.5.4.9 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index ab72b60..c13fd89 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.8' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.9' # 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 1ddabe47d3c3fc5a7d917155707d329fadf27fe9 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 10 Nov 2021 11:37:55 +0300 Subject: [PATCH 162/222] added more logs --- Deploy/configparser.cpp | 9 +++++++++ Deploy/deploycore.cpp | 32 ++++++++++++++++++++++++++++++++ Deploy/deploycore.h | 7 +++++++ Deploy/libinfo.cpp | 12 ++++++++++++ Deploy/libinfo.h | 2 ++ Deploy/pluginsparser.cpp | 2 +- qtTools | 2 +- 7 files changed, 64 insertions(+), 2 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 118cc3f..0121e7d 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -1568,9 +1568,18 @@ bool ConfigParser::smartMoveTargets() { QuasarAppUtils::Params::log(QString("Available Targets: "), QuasarAppUtils::Debug); + + for (auto i = _config.targets().cbegin(); i != _config.targets().cend(); ++i) { + QuasarAppUtils::Params::log(i.value().toString(), + QuasarAppUtils::Info); + if (!i.value().isValid()) { + + QuasarAppUtils::Params::log(i.value().toString(), + QuasarAppUtils::Error); + internalError(); return false; } diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 7fa3a19..b728118 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -876,6 +876,38 @@ QStringList DeployCore::Qt3rdpartyLibs(Platform platform) { return result; } +QString DeployCore::platformToString(Platform platform) { + int platformVal = 1; + QString result; + + QHash<int, QString> platformsMap = { + {Platform::Win32, "Win32"}, + {Platform::Win64, "Win64"}, + {Platform::Win_ARM_32, "Win_ARM_32"}, + {Platform::win_ARM_64, "win_ARM_64"}, + {Platform::Unix_x86_32, "Unix_x86_32"}, + {Platform::Unix_x86_64, "Unix_x86_64"}, + {Platform::Unix_ARM_32, "Unix_ARM_32"}, + {Platform::Unix_ARM_64, "Unix_ARM_64"}, + {Platform::WebGl, "WebGl"}, + {Platform::WebRemote, "WebRemote"}, + {Platform::GeneralFile, "GeneralFile"} + }; + + while (platformVal <= Platform::GeneralFile) { + + if (platformVal & platform) { + result.push_back((result.size()? ", " : "") + platformsMap.value(platformVal, " Unknown")); + } + + platformVal = platformVal << 1; + + + } + + return result; +} + QChar DeployCore::getSeparator(int lvl) { switch (lvl) { case 0: return ','; diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 8df3199..18a4ff3 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -229,6 +229,13 @@ public: */ static QStringList Qt3rdpartyLibs(Platform platform); + /** + * @brief platformToString This method convert platform value to string value. + * @param platform This is input platform value. + * @return String name of the @a platform + */ + static QString platformToString(Platform platform); + static char getEnvSeparator(); static LibPriority getLibPriority(const QString &lib); diff --git a/Deploy/libinfo.cpp b/Deploy/libinfo.cpp index 235a2fc..b0afc7d 100644 --- a/Deploy/libinfo.cpp +++ b/Deploy/libinfo.cpp @@ -112,6 +112,18 @@ QtMajorVersion LibInfo::isDependetOfQt() const { return QtMajorVersion::NoQt; } +QString LibInfo::toString() const { + + QStringList dependenciesList{_dependncies.begin(), _dependncies.end()}; + + return QString("LibInfo: path: '%0', name: '%1', qtPath: '%2', platform: '%3', dependencies: '%4'"). + arg(_path, + _name, + _qtPath, + DeployCore::platformToString(_platform), + dependenciesList.join(", ")); +} + QString LibInfo::fullPath() const { return _path + "/" + _name; } diff --git a/Deploy/libinfo.h b/Deploy/libinfo.h index aae6cea..1df32b7 100644 --- a/Deploy/libinfo.h +++ b/Deploy/libinfo.h @@ -48,6 +48,8 @@ public: void setWinApi(WinAPI winApi); QtMajorVersion isDependetOfQt() const; + QString toString() const; + friend class DependenciesScanner; private: diff --git a/Deploy/pluginsparser.cpp b/Deploy/pluginsparser.cpp index 269321b..01e2073 100644 --- a/Deploy/pluginsparser.cpp +++ b/Deploy/pluginsparser.cpp @@ -162,7 +162,7 @@ void PluginsParser::addPlugins(const QStringList& list, const QString& package, QHash<QString, QSet<QString>>& container) { const DeployConfig* cnf = DeployCore::_config; - for (const auto plugin: list) { + for (const auto &plugin: qAsConst(list)) { if (QFileInfo(cnf->qtDir.getPlugins() + "/" + plugin).isDir()) { auto listPlugins = QDir(cnf->qtDir.getPlugins() + "/" + plugin).entryInfoList(QDir::Files | QDir::NoDotAndDotDot); diff --git a/qtTools b/qtTools index b0147a5..cc52deb 160000 --- a/qtTools +++ b/qtTools @@ -1 +1 @@ -Subproject commit b0147a5d79ce7a7e77a24f36aaddfacb1a1517c8 +Subproject commit cc52debd905e0ed061290d6fd00a5f1ab67478a5 From ff9e54e887607a847e08403021ff00e1dc903243 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 10 Nov 2021 11:46:46 +0300 Subject: [PATCH 163/222] import qt tools fixes --- qtTools | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qtTools b/qtTools index cc52deb..cceb771 160000 --- a/qtTools +++ b/qtTools @@ -1 +1 @@ -Subproject commit cc52debd905e0ed061290d6fd00a5f1ab67478a5 +Subproject commit cceb7710cf287ea88b72260093de985987d83f56 From 151785d9966794b140bf746e980f978cf2756dde Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 10 Nov 2021 11:50:00 +0300 Subject: [PATCH 164/222] fix build for qt 5.9 --- Deploy/libinfo.cpp | 5 +++++ qtTools | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Deploy/libinfo.cpp b/Deploy/libinfo.cpp index b0afc7d..f8de3e2 100644 --- a/Deploy/libinfo.cpp +++ b/Deploy/libinfo.cpp @@ -114,7 +114,12 @@ QtMajorVersion LibInfo::isDependetOfQt() const { QString LibInfo::toString() const { + +#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) + QStringList dependenciesList = _dependncies.toList(); +#else QStringList dependenciesList{_dependncies.begin(), _dependncies.end()}; +#endif return QString("LibInfo: path: '%0', name: '%1', qtPath: '%2', platform: '%3', dependencies: '%4'"). arg(_path, diff --git a/qtTools b/qtTools index cceb771..cc52deb 160000 --- a/qtTools +++ b/qtTools @@ -1 +1 @@ -Subproject commit cceb7710cf287ea88b72260093de985987d83f56 +Subproject commit cc52debd905e0ed061290d6fd00a5f1ab67478a5 From e1439c52df957576a75c1d62ab219e8f3ab060c2 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 10 Nov 2021 12:17:04 +0300 Subject: [PATCH 165/222] added support aarch64 --- Deploy/configparser.cpp | 3 --- Deploy/elf_type.cpp | 5 ++++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 0121e7d..c97653d 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -1572,9 +1572,6 @@ bool ConfigParser::smartMoveTargets() { for (auto i = _config.targets().cbegin(); i != _config.targets().cend(); ++i) { - QuasarAppUtils::Params::log(i.value().toString(), - QuasarAppUtils::Info); - if (!i.value().isValid()) { QuasarAppUtils::Params::log(i.value().toString(), diff --git a/Deploy/elf_type.cpp b/Deploy/elf_type.cpp index adb2925..dc301b3 100644 --- a/Deploy/elf_type.cpp +++ b/Deploy/elf_type.cpp @@ -55,7 +55,10 @@ bool ELF::getLibInfo(const QString &lib, LibInfo &info) const { auto headers = reader.readHeaders(); - if (headers.elfmachine == ElfMachine::Elf_EM_ARM) { + const int Elf_EM_ARM64 = 0xb7; + + if (headers.elfmachine == ElfMachine::Elf_EM_ARM || + static_cast<int>(headers.elfmachine) == Elf_EM_ARM64 ) { if (headers.elfclass == ElfClass::Elf_ELFCLASS32) { info.setPlatform(Unix_ARM_32); From 8d35f05b27ea9adada27f8f8385cdeb6e08da9d8 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 10 Nov 2021 12:58:25 +0300 Subject: [PATCH 166/222] v1.5.4.10 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 6b661c6..7d87b6b 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.9 +VERSION = 1.5.4.10 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 19b6e58..5c08bab 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.9</Version> + <Version>1.5.4.10</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 8fe7403..ffa88e8 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.9</Version> + <Version>1.5.4.10</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index c22fdd0..5f014eb 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.9 +VERSION = 1.5.4.10 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.9 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.10 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 892b78d..e120d37 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.9</Version> + <Version>1.5.4.10</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 909fe77..d7b628f 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.9 +Version=1.5.4.10 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.4.9 +X-GNOME-Bugzilla-Version=1.5.4.10 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index c13fd89..1ebe4f8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.9' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.10' # 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 1c814962f0ba58c73f45ab566da676ed5f03c870 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 16 Nov 2021 11:38:13 +0300 Subject: [PATCH 167/222] qifw 4.2 --- QIFData/QIF.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/QIF.pri b/QIFData/QIF.pri index e64e8b7..f418751 100644 --- a/QIFData/QIF.pri +++ b/QIFData/QIF.pri @@ -10,7 +10,7 @@ unix: PLATFORM = linux win32:PY = python unix: PY = python3 -qif.commands= $$PY $$PWD/scripts/QIF.py $$PLATFORM 4.1 $$PWD/packages/QIF/data +qif.commands= $$PY $$PWD/scripts/QIF.py $$PLATFORM 4.2 $$PWD/packages/QIF/data alias.commands= $$PY $$PWD/scripts/alias.py !isEmpty( ONLINE ) { From cf6f60c439c9902c890be7ef347aeee813662600 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 17 Nov 2021 12:04:35 +0300 Subject: [PATCH 168/222] fix tests --- UnitTests/testRes/testMultiPackageConfig.json | 1 - UnitTests/testutils.cpp | 1 + UnitTests/tst_deploytest.cpp | 2 ++ 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/UnitTests/testRes/testMultiPackageConfig.json b/UnitTests/testRes/testMultiPackageConfig.json index b60a127..76c8357 100644 --- a/UnitTests/testRes/testMultiPackageConfig.json +++ b/UnitTests/testRes/testMultiPackageConfig.json @@ -1,7 +1,6 @@ { "bin": "$BIN_DIR", "clear": true, - "libDir": "./", "recursiveDepth": "5", "targetPackage": [ ["Dstro1", "TestOnlyC"], diff --git a/UnitTests/testutils.cpp b/UnitTests/testutils.cpp index fe071bf..c9ea512 100644 --- a/UnitTests/testutils.cpp +++ b/UnitTests/testutils.cpp @@ -111,6 +111,7 @@ QHash<QString, int> TestUtils::compareTree(const QSet<QString> &leftTree, const bool TestUtils::deployFile(const QString &file, const QString &distanation, const QHash<QByteArray, QByteArray> &replaceCase) const { QFile f(file); + if (f.open(QIODevice::ReadOnly)) { QFile dist(distanation); if (!dist.open(QIODevice::WriteOnly | QIODevice::Truncate)) { diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index ee6ea86..38558bf 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -2848,6 +2848,8 @@ void deploytest::testExtraPlugins() { "./" + DISTRO_DIR + "/plugins/sqldrivers/libqsqlite.so", "./" + DISTRO_DIR + "/lib/libQt5Sql.so", "./" + DISTRO_DIR + "/lib/libpq.so", + "./" + DISTRO_DIR + "/lib/libcrypto.so", + "./" + DISTRO_DIR + "/lib/libssl.so", }); #else From 1fe1006f2db473b3209955d83a04d15db51453b3 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 30 Nov 2021 11:24:53 +0300 Subject: [PATCH 169/222] update qifw --- QIFData/packages/QIF/meta/package.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QIFData/packages/QIF/meta/package.xml b/QIFData/packages/QIF/meta/package.xml index aada764..16e1355 100644 --- a/QIFData/packages/QIF/meta/package.xml +++ b/QIFData/packages/QIF/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>Qt Installer Framework</DisplayName> <Description>Qt Installer Framework for CQtDeployer</Description> - <Version>4.1.1.0</Version> - <ReleaseDate>2021-05-31</ReleaseDate> + <Version>4.2.0.0</Version> + <ReleaseDate>2021-11-30</ReleaseDate> <Default>true</Default> </Package> From c06fc3b5b5771be592b94f04b9c980696c0c9cfb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Dec 2021 10:39:19 +0300 Subject: [PATCH 170/222] added DISABLE_PE define --- CQtDeployer.pro | 4 ++++ CQtDeployer/CQtDeployer.pro | 5 +++-- Deploy/Deploy.pro | 4 +++- Deploy/pe_type.cpp | 12 +++++++++++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index b447384..fa6f6da 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -32,6 +32,10 @@ android: DEFINES += WITHOUT_TESTS unix:SUBDIRS += tests/quicknanobrowser unix:SUBDIRS += tests/webui + contains(DEFINES, DISABLE_PE) { + SUBDIRS -= Pe + DEFINES += WITHOUT_TESTS + } contains(DEFINES, WITHOUT_TESTS) { SUBDIRS -= UnitTests \ diff --git a/CQtDeployer/CQtDeployer.pro b/CQtDeployer/CQtDeployer.pro index d6a4e0d..8f0bb1c 100644 --- a/CQtDeployer/CQtDeployer.pro +++ b/CQtDeployer/CQtDeployer.pro @@ -31,8 +31,9 @@ include('$$PWD/../QuasarAppLib/QuasarLib.pri') include('$$PWD/../Deploy/Deploy.pri') include('$$PWD/../zip/zip.pri') -include('$$PWD/../pe/pe-parser-library/pe-parser-library.pri') - +!contains(DEFINES, DISABLE_PE) { + include('$$PWD/../pe/pe-parser-library/pe-parser-library.pri') +} TARGET = cqtdeployer diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 7d87b6b..640fb40 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -41,7 +41,9 @@ CONFIG(release, debug|release): { } include('$$PWD/../QuasarAppLib/QuasarLib.pri') -include('$$PWD/../pe/pe-parser-library/pe-parser-library.pri') +!contains(DEFINES, DISABLE_PE) { + include('$$PWD/../pe/pe-parser-library/pe-parser-library.pri') +} include('$$PWD/../zip/zip.pri') diff --git a/Deploy/pe_type.cpp b/Deploy/pe_type.cpp index 9418422..5db334b 100644 --- a/Deploy/pe_type.cpp +++ b/Deploy/pe_type.cpp @@ -11,15 +11,18 @@ #include <QFileInfo> #include <QSet> #include <QVector> -#include <pe-parse/parse.h> #include <quasarapp.h> #include <set> +#ifndef DISABLE_PE +#include <pe-parse/parse.h> + namespace peparse { class section; + struct importent { VA addr; std::string symbolName; @@ -63,6 +66,7 @@ bool PE::getDep(peparse::parsed_pe_internal * internal, LibInfo &res) const { return res.getDependncies().size() || !imports.size(); } +#endif QHash<WinAPI, QSet<QString> > PE::getWinAPI() const { return _winAPI; @@ -110,6 +114,7 @@ PE::PE(): IGetLibInfo () { } bool PE::getLibInfo(const QString &lib, LibInfo &info) const { +#ifndef DISABLE_PE auto parsedPeLib = peparse::ParsePEFromFile(lib.toLatin1()); if (!parsedPeLib) @@ -155,6 +160,11 @@ bool PE::getLibInfo(const QString &lib, LibInfo &info) const { return info.isValid(); +#else + Q_UNUSED(lib) + Q_UNUSED(info) + return false; +#endif } PE::~PE(){ From c4405dcc147462421888c069c06e7d774a9c7648 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Dec 2021 10:50:42 +0300 Subject: [PATCH 171/222] added warning for old gcc compillers --- CQtDeployer.pro | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index fa6f6da..92c2a76 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -14,6 +14,16 @@ lessThan(QT_MAJOR_VERSION, 6):lessThan(QT_MINOR_VERSION, 12) { DEFINES += WITHOUT_TR } +unix:gcc { + COMPILER_VERSION = $$system($$QMAKE_CXX " -dumpversion") + COMPILER_MAJOR_VERSION = $$str_member($$COMPILER_VERSION) + lessThan(COMPILER_MAJOR_VERSION, 5): { + warning("The PE parser library is disabled. For build the PE parser library require gcc 5 or later version.") + DEFINES+=DISABLE_PE + } + message(Version GCC : $$COMPILER_VERSION) +} + android: DEFINES += WITHOUT_TESTS !android { From 1650f82071081045788bf87b02da21f850fecdd1 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Dec 2021 11:56:40 +0300 Subject: [PATCH 172/222] update zip --- zip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zip b/zip index accf7ef..76651e2 160000 --- a/zip +++ b/zip @@ -1 +1 @@ -Subproject commit accf7ef7bbfba9f7ddcfaf9d6222279293f5dcf2 +Subproject commit 76651e2d614612718d9a8ec21f0a91da394e0506 From 4ad90c75b23494e12d3a79c1c497aeb0c7504ffb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Dec 2021 12:53:27 +0300 Subject: [PATCH 173/222] fix typo errors --- Deploy/extracter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index a0cc74f..4a5977a 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -448,8 +448,8 @@ bool Extracter::extractQml() { QStringList plugins; QStringList listItems; - const auto qmlInput = distro.qmlInput(); - for (const auto &qmlInput: qmlInput) { + const auto qmlInputList = distro.qmlInput(); + for (const auto &qmlInput: qmlInputList) { QFileInfo info(qmlInput); if (!info.isDir()) { From c93041a5505f18c39b306d28293fe98983b01eaa Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Dec 2021 12:56:41 +0300 Subject: [PATCH 174/222] fix disable PE --- CQtDeployer.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index 92c2a76..352382e 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -19,7 +19,7 @@ unix:gcc { COMPILER_MAJOR_VERSION = $$str_member($$COMPILER_VERSION) lessThan(COMPILER_MAJOR_VERSION, 5): { warning("The PE parser library is disabled. For build the PE parser library require gcc 5 or later version.") - DEFINES+=DISABLE_PE + DEFINES += DISABLE_PE } message(Version GCC : $$COMPILER_VERSION) } From dd6ec5a8dfe177975f8c2153668ec1cb192c8e08 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 20 Jan 2022 11:45:47 +0300 Subject: [PATCH 175/222] fix default launch scripts --- Deploy/ScriptsTemplates/linux.sh | 3 +++ Deploy/ScriptsTemplates/windows.bat | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Deploy/ScriptsTemplates/linux.sh b/Deploy/ScriptsTemplates/linux.sh index fbe8ba8..a4e9afe 100644 --- a/Deploy/ScriptsTemplates/linux.sh +++ b/Deploy/ScriptsTemplates/linux.sh @@ -5,6 +5,8 @@ # # #################################################################### # +# All variables has the CQT_ prefix +# BIN_PATH - are releative path to executable files of a deployed distribution. # LIB_PATH - are releative path to libraryes of a deployed distribution. # QML_PATH - are releative path to qml libraryes of a deployed distribution. # PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. @@ -18,6 +20,7 @@ # #################################################################### BASE_DIR=$(dirname "$(readlink -f "$0")") +export PATH="$BASE_DIR"CQT_BIN_PATH:$PATH export LD_LIBRARY_PATH="$BASE_DIR"CQT_LIB_PATH:"$BASE_DIR":$LD_LIBRARY_PATH export QML_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML_IMPORT_PATH export QML2_IMPORT_PATH="$BASE_DIR"CQT_QML_PATH:$QML2_IMPORT_PATH diff --git a/Deploy/ScriptsTemplates/windows.bat b/Deploy/ScriptsTemplates/windows.bat index 4a385be..8fdbfd6 100644 --- a/Deploy/ScriptsTemplates/windows.bat +++ b/Deploy/ScriptsTemplates/windows.bat @@ -2,7 +2,8 @@ :: This file contains key word that will replaced after deploy project. :: #################################################################### - +:: All variables has the CQT_ prefix +:: BIN_PATH - are releative path to executable files of a deployed distribution. :: LIB_PATH - are releative path to libraryes of a deployed distribution. :: SYSTEM_LIB_PATH - are releative path to system libraryes of a deployed distribution. :: BASE_NAME - are base name of the executable that will be launched after run this script. @@ -13,7 +14,7 @@ @echo off SET BASE_DIR=%~dp0 -SET PATH=%BASE_DIR%CQT_LIB_PATH;%PATH%;CQT_SYSTEM_LIB_PATH +SET PATH=%BASE_DIR%CQT_BIN_PATH;%BASE_DIR%CQT_LIB_PATH;%PATH%;CQT_SYSTEM_LIB_PATH SET CQT_PKG_ROOT=%BASE_DIR% SET CQT_RUN_FILE=%BASE_DIR%CQT_BASE_NAME.bat From 155cec0ff8c90b93c9319d5886753582709925f3 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 20 Jan 2022 12:03:05 +0300 Subject: [PATCH 176/222] added search targets from PATH --- Deploy/configparser.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index c97653d..6181d59 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -880,15 +880,27 @@ bool ConfigParser::setTargets(const QStringList &value) { isfillList = true; } else { - QuasarAppUtils::Params::log(targetInfo.absoluteFilePath() + " does not exist!", + QuasarAppUtils::Params::log(i + " is not a path. Try search this file in system enviroment", QuasarAppUtils::Debug); + + auto file = QFileInfo(DeployCore::findProcess(QProcessEnvironment::systemEnvironment().value("PATH"), i)); + + if (file.exists()) { + + auto target = createTarget(file.absoluteFilePath()); + if (!_config.targetsEdit().contains(target.target)) { + _config.targetsEdit().insert(target.target, target.targetInfo); + } + + isfillList = true; + } else { + QuasarAppUtils::Params::log(targetInfo.absoluteFilePath() + " does not exist!", + QuasarAppUtils::Debug); + } } } - if (!isfillList) - return false; - - return true; + return isfillList; } bool ConfigParser::setTargetsRecursive(const QString &dir) { From 56ddbd16ed61f32787580c111df8caa629850089 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 20 Jan 2022 12:05:47 +0300 Subject: [PATCH 177/222] fix tests --- UnitTests/testRes/TestQMLWidgets.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/UnitTests/testRes/TestQMLWidgets.sh b/UnitTests/testRes/TestQMLWidgets.sh index bebc468..6238e0f 100755 --- a/UnitTests/testRes/TestQMLWidgets.sh +++ b/UnitTests/testRes/TestQMLWidgets.sh @@ -5,6 +5,8 @@ # # #################################################################### # +# All variables has the CQT_ prefix +# BIN_PATH - are releative path to executable files of a deployed distribution. # LIB_PATH - are releative path to libraryes of a deployed distribution. # QML_PATH - are releative path to qml libraryes of a deployed distribution. # PLUGIN_PATH - are releative path to qt plugins of a deployed distribution. @@ -18,6 +20,7 @@ # #################################################################### BASE_DIR=$(dirname "$(readlink -f "$0")") +export PATH="$BASE_DIR"/bin/:$PATH export LD_LIBRARY_PATH="$BASE_DIR"/lib/:"$BASE_DIR":$LD_LIBRARY_PATH export QML_IMPORT_PATH="$BASE_DIR"/q/and/q/:$QML_IMPORT_PATH export QML2_IMPORT_PATH="$BASE_DIR"/q/and/q/:$QML2_IMPORT_PATH From a6f0078462fcad703ab07fa7ded73c690a6b5c62 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 20 Jan 2022 12:13:31 +0300 Subject: [PATCH 178/222] update documentation --- Deploy/deploycore.cpp | 2 ++ md/en/Options.md | 2 +- md/ru/Options.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index b728118..a661af9 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -292,6 +292,8 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { " For folders:" " CCQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory." " Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and libDir paths." + "**Note**: If CQtDeployer can't find required file then" + " CQtDeployer try find required file in the system PATH enviroment." }}); help.insert(group, {QuasarAppUtils::OptionData{ diff --git a/md/en/Options.md b/md/en/Options.md index 7f6887d..0975f27 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -77,7 +77,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| -| -bin [list,params] | Files to deploy or folders that contain files to deploy. For example -bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll. For files: These files will be unconditional copied to the destination directory, regardless of their format or suffix. For folders: CQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory. Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and **libDir** paths. | +| -bin [list,params] | Files to deploy or folders that contain files to deploy. For example -bin ~/my/project/bin/,~/my/project/bin.exe,~/my/project/runtimeLinking/lib.dll. For files: These files will be unconditional copied to the destination directory, regardless of their format or suffix. For folders: CQtDeployer will enter these folders and non-recursively copy all executable files to the destination directory. Then, CQtDeployer will extract all dependencies of the copied files and search dependencies in system environments and **libDir** paths. **Note**: If CQtDeployer can't find required file then CQtDeployer try find required file in the system PATH enviroment.| | -binPrefix [prefixPath] | Sets prefix path for bin option. Example: **-bin path/MyExecutable** is some as **-bin MyExecutable -binPrefix path** | | -confFile [params] | The path to the json file with all deployment configurations.| | | Using this file, you can add the necessary options, | diff --git a/md/ru/Options.md b/md/ru/Options.md index 7038140..9808113 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -77,7 +77,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | Option | Descriptiion | |-----------------------------|-----------------------------------------------------------| -| -bin [list,params] | Развертываемый файл или папка. пример -bin ~/my/project/bin/,~/my/project/bin.exe. Для файлов: эти файлы будут безоговорочно скопированы в целевой каталог, независимо от их формата или суффикса. Для папок: CQtDeployer войдет в эти папки и нерекурсивно скопирует все развертываемые файлы в целевой каталог. Затем CQtDeployer извлечет все зависимости скопированных файлов. CQtDeployer будет искать зависимости в системной среде и в путях libDir. | +| -bin [list,params] | Развертываемый файл или папка. пример -bin ~/my/project/bin/,~/my/project/bin.exe. Для файлов: эти файлы будут безоговорочно скопированы в целевой каталог, независимо от их формата или суффикса. Для папок: CQtDeployer войдет в эти папки и нерекурсивно скопирует все развертываемые файлы в целевой каталог. Затем CQtDeployer извлечет все зависимости скопированных файлов. CQtDeployer будет искать зависимости в системной среде и в путях libDir. **Примечание**. Если CQtDeployer не может найти требуемый файл, CQtDeployer попытается найти требуемый файл в системной среде PATH. | | -binPrefix [prefixPath] | Устанавливает путь префикса для опции bin. Пример: **-bin path/MyExecutable** - это тоже что и **-bin MyExecutable -binPrefix path** | | -confFile [params] | Путь к файлу json со всеми конфигурациями развертывания. С помощью этого файла можно добавить нужные опции, тем самым упрастить вызов комманды в консоле. Однако пораметры в кансоле имеют больший приоритет чем в файле. Для получения дополнительной информации об этом флаге см. [Вики](DeployConfigFile) | | -qmlDir [params] | Папка qml. пример -qmlDir ~/my/project/qml | From 596a84dc2bf81d905426aeeb91f41e5c83503b39 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 20 Jan 2022 12:47:18 +0300 Subject: [PATCH 179/222] fix windows 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 38558bf..db03a6f 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -3097,7 +3097,7 @@ void deploytest::testOutDirs() { qDebug() << "runScript =" << runScript; QVERIFY(runScript.contains("SET BASE_DIR=%~dp0")); - QVERIFY(runScript.contains("SET PATH=%BASE_DIR%\\lolLib\\;%PATH%")); + QVERIFY(runScript.contains("SET PATH=%BASE_DIR%\\lol\\;%BASE_DIR%\\lolLib\\;%PATH%")); QVERIFY(runScript.contains("start \"TestQMLWidgets\" /B \"%BASE_DIR%\\lol\\TestQMLWidgets.exe\" %*")); runTestParams({"-bin", TestBinDir + "TestOnlyC.exe", "clear", From eff0f7a728dc65e406368268ce6a623e98fe8aff Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 20 Jan 2022 16:41:53 +0300 Subject: [PATCH 180/222] v 1.5.4.11 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 640fb40..ad9cf38 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.10 +VERSION = 1.5.4.11 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 5c08bab..0155d19 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.10</Version> + <Version>1.5.4.11</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index ffa88e8..4070653 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.10</Version> + <Version>1.5.4.11</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 5f014eb..618a9d4 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.10 +VERSION = 1.5.4.11 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.10 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.11 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index e120d37..5ddbccc 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.10</Version> + <Version>1.5.4.11</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index d7b628f..e02f932 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.10 +Version=1.5.4.11 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.4.10 +X-GNOME-Bugzilla-Version=1.5.4.11 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 1ebe4f8..7f1f38b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.10' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.11' # 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 cf2039051a25d94dda241ee0e8b0de1a9ba7b466 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 25 Jan 2022 13:32:56 +0300 Subject: [PATCH 181/222] allow to deploy libstdc++ --- Deploy/configparser.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 6181d59..4acb829 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -1010,9 +1010,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")); _config.ignoreList.addRule(addRuleUnix("libz")); _config.ignoreList.addRule(addRuleUnix("librt")); From a9390e78766981c5a3009586fe66c96bc2136dbe Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 10:15:17 +0300 Subject: [PATCH 182/222] Fix patrons list --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7ec21b9..3378435 100644 --- a/README.md +++ b/README.md @@ -127,9 +127,9 @@ If you would like to use bitcoins to support us, you can transfer coins to this ## Our patrons list: -### Silver Membership Patrons: +### Personal Membership Patrons: -- Rustem Husnutdinov +- [getflow.tech](https://getflow.tech/) - Semih Ufuk Güler *** From c014586b598f6a2ce48e4232a3863979417458cf Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 12:11:19 +0300 Subject: [PATCH 183/222] added docs for new option --- Deploy/configparser.cpp | 28 +++++++++++++++++++++++++--- Deploy/configparser.h | 2 ++ Deploy/deployconfig.cpp | 8 ++++++++ Deploy/deployconfig.h | 14 ++++++++++++++ Deploy/deploycore.cpp | 6 ++++++ md/en/Options.md | 3 ++- md/ru/Options.md | 1 + 7 files changed, 58 insertions(+), 4 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index 4acb829..da90e2f 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -660,6 +660,16 @@ void ConfigParser::packagesErrorLog(const QString &option) { QuasarAppUtils::Error); } +void ConfigParser::initCustomPlatform() { + const auto platforms = QuasarAppUtils::Params::getArg("platform"). + split(DeployCore::getSeparator(0), splitbehavior); + + for (const auto& platform: platforms) { + + } + +} + bool ConfigParser::parseDeployMode(bool checkBin) { if (QuasarAppUtils::Params::isEndable("deploySystem-with-libc")) { @@ -675,6 +685,8 @@ bool ConfigParser::parseDeployMode(bool checkBin) { setTargetDir(); + initCustomPlatform(); + auto bin = QuasarAppUtils::Params::getArg("bin"). split(DeployCore::getSeparator(0), splitbehavior); @@ -852,6 +864,15 @@ void ConfigParser::setTargetDir(const QString &target) { } } +void ConfigParser::addTarget(const TargetData& target) { + + if (target.targetInfo.getPlatform()) + + if (!_config.targetsEdit().contains(target.target)) { + _config.targetsEdit().insert(target.target, target.targetInfo); + } +} + bool ConfigParser::setTargets(const QStringList &value) { bool isfillList = false; @@ -865,9 +886,7 @@ bool ConfigParser::setTargets(const QStringList &value) { if (targetInfo.isFile()) { auto target = createTarget(targetInfo.absoluteFilePath()); - if (!_config.targetsEdit().contains(target.target)) { - _config.targetsEdit().insert(target.target, target.targetInfo); - } + addTarget(); isfillList = true; } @@ -898,6 +917,9 @@ bool ConfigParser::setTargets(const QStringList &value) { QuasarAppUtils::Debug); } } + + // Work with exits target + } return isfillList; diff --git a/Deploy/configparser.h b/Deploy/configparser.h index 545fb73..abeeea7 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -114,6 +114,8 @@ private: QList<iDistribution *> getDistribution(); + void addTarget(); + void initCustomPlatform(); }; #endif // CQT_H diff --git a/Deploy/deployconfig.cpp b/Deploy/deployconfig.cpp index 7922705..a9d43b2 100644 --- a/Deploy/deployconfig.cpp +++ b/Deploy/deployconfig.cpp @@ -143,6 +143,14 @@ QtMajorVersion DeployConfig::isNeededQt(const QString &pacakge) const { return Qt; } +Platform DeployConfig::customPlatform() const { + return _customPlatform; +} + +void DeployConfig::setCustomPlatform(Platform newCustomPlatform) { + _customPlatform = newCustomPlatform; +} + const QHash<QString, TargetInfo> &DeployConfig::targets() const { return _targets; } diff --git a/Deploy/deployconfig.h b/Deploy/deployconfig.h index 9fb8468..174bc93 100644 --- a/Deploy/deployconfig.h +++ b/Deploy/deployconfig.h @@ -136,6 +136,18 @@ public: */ QtMajorVersion isNeededQt(const QString& pacakge) const; + /** + * @brief customPlatform This is custom platform of distribution + * @return custom platform + */ + Platform customPlatform() const; + + /** + * @brief setCustomPlatform This method sets custom platform for this distribution. + * @param newCustomPlatform new custom platform. + */ + void setCustomPlatform(Platform newCustomPlatform); + private: /** @@ -159,6 +171,8 @@ private: QString targetDir = ""; QString defaultPackage = ""; + Platform _customPlatform = Platform::UnknownPlatform; + }; diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index a661af9..bbf59a7 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -363,6 +363,12 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { "cqtdeployer -runScript \"myTargetMame;path/to/my/myCustomLaunchScript.sh,myTargetSecondMame;path/to/my/mySecondCustomLaunchScript.sh\"" }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"platform"}, "", + "Force deploy only one selected platforms." + }}); + + group = "Part 3 Control of packages options"; help.insert(group, {QuasarAppUtils::OptionData{ diff --git a/md/en/Options.md b/md/en/Options.md index 0975f27..2557801 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -70,7 +70,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | 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) | -| noHashSum | Disable computation of a packages hash sum | +| noHashSum | Disable computation of a packages hash sum | ### Deploy options @@ -102,6 +102,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -installDirDeb [params] | Sets install target directory fordebian package (by default it is /opt path) | | -installDirQIFW [params] | Sets install target directory for installers (by default it is /home path) | | -verbose [0-3] | Shows debug log. By default it is 2 | +| -platform [list] | If this option is enabled then CQtDeployer will deploy only binaries of a selected platform. | ### Controll of packages options diff --git a/md/ru/Options.md b/md/ru/Options.md index 9808113..a0ffa04 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -97,6 +97,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -installDirDeb [параметры] | Устанавливает целевой каталог для установки пакета Debian (по умолчанию это /opt путь) | | -installDirQIFW [параметры]| Устанавливает целевой каталог установки для инсталляторов (по умолчанию это путь /home) | | -verbose [0-3] | Показывает дебаг лог. По умолчанию равен 2 | +| -platform [list] | Если этот параметр включен, CQtDeployer будет развертывать только двоичные файлы указанной платформы. | ### Параметры управлениями пакетами: From 8e4afd4bddf66b15378a87e0ab5ca234b2a45781 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 12:24:29 +0300 Subject: [PATCH 184/222] added implementation for new option --- Deploy/configparser.cpp | 41 ++++++++++++++++++------------------ Deploy/configparser.h | 7 +++++- Deploy/deploycore.cpp | 39 +++++++++++++++++++++++++++------- Deploy/deploycore.h | 7 ++++++ UnitTests/tst_deploytest.cpp | 6 ++++++ 5 files changed, 70 insertions(+), 30 deletions(-) diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index da90e2f..dfbd526 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -664,10 +664,14 @@ void ConfigParser::initCustomPlatform() { const auto platforms = QuasarAppUtils::Params::getArg("platform"). split(DeployCore::getSeparator(0), splitbehavior); - for (const auto& platform: platforms) { + Platform customPlatform = Platform::UnknownPlatform; + for (const auto& platform: platforms) { + customPlatform = customPlatform | DeployCore::getPlatformFromString(platform); } + _config.setCustomPlatform(customPlatform); + } bool ConfigParser::parseDeployMode(bool checkBin) { @@ -864,13 +868,18 @@ void ConfigParser::setTargetDir(const QString &target) { } } -void ConfigParser::addTarget(const TargetData& target) { +bool ConfigParser::addTarget(const TargetData& target) { - if (target.targetInfo.getPlatform()) + if (_config.customPlatform() == Platform::UnknownPlatform || + _config.customPlatform() & target.targetInfo.getPlatform()) { - if (!_config.targetsEdit().contains(target.target)) { - _config.targetsEdit().insert(target.target, target.targetInfo); + if (!_config.targetsEdit().contains(target.target)) { + _config.targetsEdit().insert(target.target, target.targetInfo); + return true; + } } + + return false; } bool ConfigParser::setTargets(const QStringList &value) { @@ -885,10 +894,8 @@ bool ConfigParser::setTargets(const QStringList &value) { if (targetInfo.isFile()) { - auto target = createTarget(targetInfo.absoluteFilePath()); - addTarget(); - - isfillList = true; + if (addTarget(createTarget(targetInfo.absoluteFilePath()))) + isfillList = true; } else if (targetInfo.isDir()) { if (!setTargetsInDir(targetInfo.absoluteFilePath())) { @@ -906,12 +913,9 @@ bool ConfigParser::setTargets(const QStringList &value) { if (file.exists()) { - auto target = createTarget(file.absoluteFilePath()); - if (!_config.targetsEdit().contains(target.target)) { - _config.targetsEdit().insert(target.target, target.targetInfo); - } + if (addTarget(createTarget(file.absoluteFilePath()))) + isfillList = true; - isfillList = true; } else { QuasarAppUtils::Params::log(targetInfo.absoluteFilePath() + " does not exist!", QuasarAppUtils::Debug); @@ -966,13 +970,8 @@ 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)) { - - auto target = createTarget(QDir::fromNativeSeparators(file.absoluteFilePath())); - if (!_config.targetsEdit().contains(target.target)) { - _config.targetsEdit().insert(target.target, target.targetInfo); - } - - result = true; + if (addTarget(createTarget(QDir::fromNativeSeparators(file.absoluteFilePath())))) + result = true; } diff --git a/Deploy/configparser.h b/Deploy/configparser.h index abeeea7..d95c221 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -114,7 +114,12 @@ private: QList<iDistribution *> getDistribution(); - void addTarget(); + /** + * @brief addTarget + * @param target + * @return true if target added successful + */ + bool addTarget(const TargetData &target); void initCustomPlatform(); }; diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index bbf59a7..c8dbbdb 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -889,14 +889,14 @@ QString DeployCore::platformToString(Platform platform) { QString result; QHash<int, QString> platformsMap = { - {Platform::Win32, "Win32"}, - {Platform::Win64, "Win64"}, - {Platform::Win_ARM_32, "Win_ARM_32"}, - {Platform::win_ARM_64, "win_ARM_64"}, - {Platform::Unix_x86_32, "Unix_x86_32"}, - {Platform::Unix_x86_64, "Unix_x86_64"}, - {Platform::Unix_ARM_32, "Unix_ARM_32"}, - {Platform::Unix_ARM_64, "Unix_ARM_64"}, + {Platform::Win32, "win_x86"}, + {Platform::Win64, "win_x86_64"}, + {Platform::Win_ARM_32, "win_arm"}, + {Platform::win_ARM_64, "win_arm64"}, + {Platform::Unix_x86_32, "linux_x86"}, + {Platform::Unix_x86_64, "linux_x86_64"}, + {Platform::Unix_ARM_32, "linux_ARM"}, + {Platform::Unix_ARM_64, "linux_ARM64"}, {Platform::WebGl, "WebGl"}, {Platform::WebRemote, "WebRemote"}, {Platform::GeneralFile, "GeneralFile"} @@ -916,6 +916,29 @@ QString DeployCore::platformToString(Platform platform) { return result; } +Platform DeployCore::getPlatformFromString(const QString &platformName) { + + if (platformName == "auto") { + return Platform(0); + } + + QHash<QString, Platform> platformsMap = { + {"win_x86", Platform::Win32}, + {"win_x86_64", Platform::Win64}, + {"win_arm", Platform::Win_ARM_32}, + {"win_arm64", Platform::win_ARM_64}, + {"linux_x86", Platform::Unix_x86_32}, + {"linux_x86_64", Platform::Unix_x86_64}, + {"linux_ARM", Platform::Unix_ARM_32}, + {"linux_ARM64", Platform::Unix_ARM_64}, + {"WebGl", Platform::WebGl}, + {"WebRemote", Platform::WebRemote}, + {"GeneralFile", Platform::GeneralFile} + }; + + return platformsMap.value(platformName, Platform(0)); +} + QChar DeployCore::getSeparator(int lvl) { switch (lvl) { case 0: return ','; diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 18a4ff3..1ba87b3 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -236,6 +236,13 @@ public: */ static QString platformToString(Platform platform); + /** + * @brief getPlatformFromString This method return platform enum value form string. + * @param platformName This is string platform value. + * @return platform enum value form string. + */ + static Platform getPlatformFromString(const QString &platformName); + static char getEnvSeparator(); static LibPriority getLibPriority(const QString &lib); diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index db03a6f..6753763 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -192,6 +192,8 @@ private slots: void testQIFResources(); + void testCustomPlatform(); + void customTest(); }; @@ -1647,6 +1649,10 @@ void deploytest::testQIFResources() { } +void deploytest::testCustomPlatform() { + +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); From 384a6bd8716be984796cc3ec34dfd2667a3041dd Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 12:58:04 +0300 Subject: [PATCH 185/222] added test --- CQtDeployer.pro | 2 +- UnitTests/tst_deploytest.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index 352382e..98a9caf 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -16,7 +16,7 @@ lessThan(QT_MAJOR_VERSION, 6):lessThan(QT_MINOR_VERSION, 12) { unix:gcc { COMPILER_VERSION = $$system($$QMAKE_CXX " -dumpversion") - COMPILER_MAJOR_VERSION = $$str_member($$COMPILER_VERSION) + COMPILER_MAJOR_VERSION = $$COMPILER_VERSION lessThan(COMPILER_MAJOR_VERSION, 5): { warning("The PE parser library is disabled. For build the PE parser library require gcc 5 or later version.") DEFINES += DISABLE_PE diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 6753763..032cfc3 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1650,7 +1650,35 @@ void deploytest::testQIFResources() { } void deploytest::testCustomPlatform() { + TestUtils utils; + auto compareTree = TestModule.onlyC(); + +#ifdef Q_OS_UNIX + QString bin = {TestBinDir + "TestOnlyC"}; + QString platform = "linux_x86_64"; + +#else + QString bin = {TestBinDir + "TestOnlyC.exe"}; + QString platform = "win_x86_64"; + +#endif + + runTestParams({ + "-bin", bin, + "clear", + "-platform", platform, + }, &compareTree + ); + + + + runTestParams({ + "-bin", bin, + "clear", + "-platform", "GeneralFile", + }, nullptr, false, false, exitCodes::PrepareError + ); } void deploytest::customTest() { From 3515001020a17875da89f04f9f94f440f1fd6e9b Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 13:04:49 +0300 Subject: [PATCH 186/222] added list of supported platforms to documentation --- Deploy/deploycore.cpp | 6 ++++-- md/en/Options.md | 2 +- md/ru/Options.md | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index c8dbbdb..5430ef0 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -364,8 +364,10 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { }}); help.insert(group, {QuasarAppUtils::OptionData{ - {"platform"}, "", - "Force deploy only one selected platforms." + {"-platform"}, "{platforms,list}", + "Force deploy only one selected platforms. " + "If this option is enabled then CQtDeployer will deploy only binaries of a selected platform. Supported values: " + "[win_x86 win_x86_64 win_arm win_arm64 linux_x86 linux_x86_64 linux_ARM linux_ARM64]" }}); diff --git a/md/en/Options.md b/md/en/Options.md index 2557801..dc66661 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -102,7 +102,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -installDirDeb [params] | Sets install target directory fordebian package (by default it is /opt path) | | -installDirQIFW [params] | Sets install target directory for installers (by default it is /home path) | | -verbose [0-3] | Shows debug log. By default it is 2 | -| -platform [list] | If this option is enabled then CQtDeployer will deploy only binaries of a selected platform. | +| -platform [list] | If this option is enabled then CQtDeployer will deploy only binaries of a selected platform. Supported values: [win_x86 win_x86_64 win_arm win_arm64 linux_x86 linux_x86_64 linux_ARM linux_ARM64] | ### Controll of packages options diff --git a/md/ru/Options.md b/md/ru/Options.md index a0ffa04..b904712 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -97,7 +97,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -installDirDeb [параметры] | Устанавливает целевой каталог для установки пакета Debian (по умолчанию это /opt путь) | | -installDirQIFW [параметры]| Устанавливает целевой каталог установки для инсталляторов (по умолчанию это путь /home) | | -verbose [0-3] | Показывает дебаг лог. По умолчанию равен 2 | -| -platform [list] | Если этот параметр включен, CQtDeployer будет развертывать только двоичные файлы указанной платформы. | +| -platform [list] | Если этот параметр включен, CQtDeployer будет развертывать только двоичные файлы указанной платформы. Поддерживоемые значения : [win_x86 win_x86_64 win_arm win_arm64 linux_x86 linux_x86_64 linux_ARM linux_ARM64] | ### Параметры управлениями пакетами: From 625e868522b0bb211b2cde6f789a91c82ac8f296 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 13:29:06 +0300 Subject: [PATCH 187/222] fix windows test --- UnitTests/tst_deploytest.cpp | 256 ++++++++++++++++++----------------- 1 file changed, 132 insertions(+), 124 deletions(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 032cfc3..e3d6c20 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -567,18 +567,18 @@ void deploytest::testQIFCustom() { QString qmake = TestQtDir + "bin/qmake"; auto comapareTreeCustom = utils.createTree({ - "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.run", - "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.run.md5", + "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.run", + "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.run.md5", - }); + }); #else QString bin = TestBinDir + "TestCPPOnly.exe" + "," + TestBinDir + "TestOnlyC.exe"; QString qmake = TestQtDir + "bin/qmake.exe"; auto comapareTreeCustom = utils.createTree({ - "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.exe", - "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.exe.md5", - }); + "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.exe", + "./" + DISTRO_DIR + "/Installerorg.qtproject.ifw.example.stylesheet.exe.md5", + }); #endif @@ -700,10 +700,10 @@ void deploytest::testDEBCustom() { QString bin = TestBinDir + "TestOnlyC"; auto comapareTreeCustom = utils.createTree({ - "./" + DISTRO_DIR + "/chrome.deb", - "./" + DISTRO_DIR + "/chrome.deb.md5", + "./" + DISTRO_DIR + "/chrome.deb", + "./" + DISTRO_DIR + "/chrome.deb.md5", - }); + }); runTestParams({"-bin", bin, "clear" , "-deb", TestBinDir + "/../../UnitTests/testRes/DEBCustomTemplate", @@ -914,7 +914,7 @@ void deploytest::testPrefix() { #ifdef Q_OS_UNIX QFile f("./" + DISTRO_DIR + "/bin/TestOnlyC"); auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/package/TestOnlyC.sh", "./" + DISTRO_DIR + "/package/bin/TestOnlyC", "./" + DISTRO_DIR + "/package/bin/qt.conf" @@ -924,9 +924,9 @@ void deploytest::testPrefix() { #else QFile f("./" + DISTRO_DIR + "/TestOnlyC.exe"); auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/package/TestOnlyC.exe", - "./" + DISTRO_DIR + "/package/TestOnlyC.bat", - "./" + DISTRO_DIR + "/package/qt.conf"}); + {"./" + DISTRO_DIR + "/package/TestOnlyC.exe", + "./" + DISTRO_DIR + "/package/TestOnlyC.bat", + "./" + DISTRO_DIR + "/package/qt.conf"}); QString target1 = TestBinDir + "TestOnlyC.exe"; #endif @@ -1087,7 +1087,7 @@ void deploytest::testOverridingDefaultTemplateDEB() void deploytest::testOverridingDefaultTemplateQIF() { TestUtils utils; -// Prepare bin and qmake values + // Prepare bin and qmake values #ifdef Q_OS_UNIX QString bin = TestBinDir + "TestOnlyC" + "," + TestBinDir + "TestCPPOnly"; QString qmake = TestQtDir + "bin/qmake"; @@ -1263,7 +1263,7 @@ void deploytest::testIcons() { initTargets(deploy, {"-bin", bin, "force-clear", - }); + }); auto targetsMap = deploy->_config.getTargetsListByFilter("TestOnlyC"); auto targetinfo = targetsMap.begin().value(); @@ -1423,7 +1423,7 @@ void deploytest::testBinPrefix() { #ifdef Q_OS_UNIX auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/TestOnlyC.sh", "./" + DISTRO_DIR + "/bin/TestOnlyC", "./" + DISTRO_DIR + "/bin/qt.conf" @@ -1433,9 +1433,9 @@ void deploytest::testBinPrefix() { #else auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/TestOnlyC.exe", - "./" + DISTRO_DIR + "/TestOnlyC.bat", - "./" + DISTRO_DIR + "/qt.conf"}); + {"./" + DISTRO_DIR + "/TestOnlyC.exe", + "./" + DISTRO_DIR + "/TestOnlyC.bat", + "./" + DISTRO_DIR + "/qt.conf"}); QString target = TestBinDir + "TestOnlyC.exe"; QString targetWithoutPrefix = "TestOnlyC.exe"; @@ -1465,10 +1465,10 @@ void deploytest::testMd5() { #endif auto comapareTreeqif = utils.createTree( - { - outFile, - outFile + ".md5" - }); + { + outFile, + outFile + ".md5" + }); // Run deploy installer runTestParams({"-bin", bin, @@ -1491,9 +1491,9 @@ void deploytest::testMd5() { comapareTreeqif = utils.createTree( - { - outFile, - }); + { + outFile, + }); // Check noHashSum option. CQtDeployer must be skip calculating a hash sum of an installer. runTestParams({"-bin", bin, @@ -1524,7 +1524,7 @@ void deploytest::testDisableShortcuts() { // Run deploy installer runTestParams({"-bin", bin, "clear", "-disableShortCut", "TestOnlyC", - "qif", "qifFromSystem"}, + "qif", "qifFromSystem"}, nullptr, false, false, @@ -1594,7 +1594,7 @@ void deploytest::testIgnoreEnvWithLibDir() { // Run deploy installer runTestParams({"-bin", bin, "clear", "-targetDir", "./libDirtest", - "-libDir", "./libDirtest"}, nullptr, false, false, + "-libDir", "./libDirtest"}, nullptr, false, false, exitCodes::PrepareError); QVERIFY(QDir().rmdir("libDirtest")); @@ -1627,12 +1627,12 @@ void deploytest::testQIFResources() { QString bin = {TestBinDir + "TestOnlyC"}; auto result = utils.createTree({{DISTRO_DIR + "/InstallerTestOnlyC.run"}, - {DISTRO_DIR + "/InstallerTestOnlyC.run.md5"}}); + {DISTRO_DIR + "/InstallerTestOnlyC.run.md5"}}); #else QString bin = {TestBinDir + "TestOnlyC.exe"}; auto result = utils.createTree({{DISTRO_DIR + "/InstallerTestOnlyC.exe"}, - {DISTRO_DIR + "/InstallerTestOnlyC.exe.md5"}}); + {DISTRO_DIR + "/InstallerTestOnlyC.exe.md5"}}); #endif @@ -1662,6 +1662,14 @@ void deploytest::testCustomPlatform() { QString bin = {TestBinDir + "TestOnlyC.exe"}; QString platform = "win_x86_64"; + auto compareTree = utils.createTree( + { + "./" + distDir + "/TestOnlyC.exe", + "./" + distDir + "/TestOnlyC.bat", + "./" + distDir + "/qt.conf" + } + ); + #endif runTestParams({ @@ -2053,18 +2061,18 @@ void deploytest::costomScript() { #ifdef Q_OS_UNIX QFile f("./" + DISTRO_DIR + "/bin/TestOnlyC"); auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/bin/TestOnlyC", - "./" + DISTRO_DIR + "/bin/qt.conf", - "./" + DISTRO_DIR + "/TestOnlyC.sh"}); + {"./" + DISTRO_DIR + "/bin/TestOnlyC", + "./" + DISTRO_DIR + "/bin/qt.conf", + "./" + DISTRO_DIR + "/TestOnlyC.sh"}); QString bin = TestBinDir + "TestOnlyC"; QString scriptPath = "./" + DISTRO_DIR + "/TestOnlyC.sh"; #else QFile f("./" + DISTRO_DIR + "/TestOnlyC.exe"); auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/TestOnlyC.exe", - "./" + DISTRO_DIR + "/TestOnlyC.bat", - "./" + DISTRO_DIR + "/qt.conf"}); + {"./" + DISTRO_DIR + "/TestOnlyC.exe", + "./" + DISTRO_DIR + "/TestOnlyC.bat", + "./" + DISTRO_DIR + "/qt.conf"}); QString bin = TestBinDir + "TestOnlyC.exe"; QString scriptPath = "./" + DISTRO_DIR + "/TestOnlyC.bat"; @@ -2106,17 +2114,17 @@ void deploytest::testOverwrite() { #ifdef Q_OS_UNIX QFile f("./" + DISTRO_DIR + "/bin/TestOnlyC"); auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/bin/TestOnlyC", - "./" + DISTRO_DIR + "/bin/qt.conf", - "./" + DISTRO_DIR + "/TestOnlyC.sh"}); + {"./" + DISTRO_DIR + "/bin/TestOnlyC", + "./" + DISTRO_DIR + "/bin/qt.conf", + "./" + DISTRO_DIR + "/TestOnlyC.sh"}); QString bin = TestBinDir + "TestOnlyC"; #else QFile f("./" + DISTRO_DIR + "/TestOnlyC.exe"); auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/TestOnlyC.exe", - "./" + DISTRO_DIR + "/TestOnlyC.bat", - "./" + DISTRO_DIR + "/qt.conf"}); + {"./" + DISTRO_DIR + "/TestOnlyC.exe", + "./" + DISTRO_DIR + "/TestOnlyC.bat", + "./" + DISTRO_DIR + "/qt.conf"}); QString bin = TestBinDir + "TestOnlyC.exe"; #endif @@ -2168,17 +2176,17 @@ void deploytest::testOverwriteWithPacking() { #endif #ifdef Q_OS_UNIX auto comapareTreeqif = utils.createTree( - { - "./" + DISTRO_DIR + "/InstallerTest.run", - "./" + DISTRO_DIR + "/InstallerTest.run.md5", - }); + { + "./" + DISTRO_DIR + "/InstallerTest.run", + "./" + DISTRO_DIR + "/InstallerTest.run.md5", + }); #else auto comapareTreeqif = utils.createTree( - { - "./" + DISTRO_DIR + "/InstallerTest.exe", - "./" + DISTRO_DIR + "/InstallerTest.exe.md5", + { + "./" + DISTRO_DIR + "/InstallerTest.exe", + "./" + DISTRO_DIR + "/InstallerTest.exe.md5", - }); + }); #endif @@ -2196,20 +2204,20 @@ void deploytest::testextraData() { #ifdef Q_OS_UNIX auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/build/TestOnlyC", - "./" + DISTRO_DIR + "/build/TestCPPOnly", - "./" + DISTRO_DIR + "/build/QtWidgetsProject", - "./" + DISTRO_DIR + "/build/TestQMLWidgets", - "./" + DISTRO_DIR + "/build/basic", - "./" + DISTRO_DIR + "/build/quicknanobrowser", - "./" + DISTRO_DIR + "/build/webui"}); + {"./" + DISTRO_DIR + "/build/TestOnlyC", + "./" + DISTRO_DIR + "/build/TestCPPOnly", + "./" + DISTRO_DIR + "/build/QtWidgetsProject", + "./" + DISTRO_DIR + "/build/TestQMLWidgets", + "./" + DISTRO_DIR + "/build/basic", + "./" + DISTRO_DIR + "/build/quicknanobrowser", + "./" + DISTRO_DIR + "/build/webui"}); #else auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/build/TestOnlyC.exe", - "./" + DISTRO_DIR + "/build/TestCPPOnly.exe", - "./" + DISTRO_DIR + "/build/QtWidgetsProject.exe", - "./" + DISTRO_DIR + "/build/TestQMLWidgets.exe", - "./" + DISTRO_DIR + "/build/basic.exe"}); + {"./" + DISTRO_DIR + "/build/TestOnlyC.exe", + "./" + DISTRO_DIR + "/build/TestCPPOnly.exe", + "./" + DISTRO_DIR + "/build/QtWidgetsProject.exe", + "./" + DISTRO_DIR + "/build/TestQMLWidgets.exe", + "./" + DISTRO_DIR + "/build/basic.exe"}); #endif @@ -2223,7 +2231,7 @@ void deploytest::testextraData() { runTestParams({"-extraData", TestBinDir, "clear", "noCheckRPATH", "noCheckPATH", "noQt", - "-extraDataOut", "myExtraData"}, &comapareTree); + "-extraDataOut", "myExtraData"}, &comapareTree); } void deploytest::testConfFile() { @@ -2235,14 +2243,14 @@ void deploytest::testConfFile() { #ifdef Q_OS_UNIX auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/bin/TestOnlyC", - "./" + DISTRO_DIR + "/bin/qt.conf", - "./" + DISTRO_DIR + "/TestOnlyC.sh"}); + {"./" + DISTRO_DIR + "/bin/TestOnlyC", + "./" + DISTRO_DIR + "/bin/qt.conf", + "./" + DISTRO_DIR + "/TestOnlyC.sh"}); #else auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/TestOnlyC.exe", - "./" + DISTRO_DIR + "/TestOnlyC.bat", - "./" + DISTRO_DIR + "/qt.conf"}); + {"./" + DISTRO_DIR + "/TestOnlyC.exe", + "./" + DISTRO_DIR + "/TestOnlyC.bat", + "./" + DISTRO_DIR + "/qt.conf"}); #endif #ifdef Q_OS_UNIX @@ -2379,13 +2387,13 @@ void deploytest::testConfFile() { comapareTree = TestModule.ignoreFilter(comapareTree, "/plugins/p"); #ifdef Q_OS_UNIX comapareTree -= utils.createTree( - { + { "./" + DISTRO_DIR + "/lib/libQt5EglFSDeviceIntegration.so", }); auto bin = TestBinDir + "QtWidgetsProject"; #else comapareTree -= utils.createTree( - { + { "./" + DISTRO_DIR + "/Qt5DBus.dll" }); @@ -2405,7 +2413,7 @@ void deploytest::testConfFile() { #ifdef Q_OS_UNIX QFile f("./" + DISTRO_DIR + "/bin/TestOnlyC"); comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/package/TestOnlyC.sh", "./" + DISTRO_DIR + "/package/bin/TestOnlyC", "./" + DISTRO_DIR + "/package/bin/qt.conf" @@ -2415,9 +2423,9 @@ void deploytest::testConfFile() { #else QFile f("./" + DISTRO_DIR + "/TestOnlyC.exe"); comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/package/TestOnlyC.exe", - "./" + DISTRO_DIR + "/package/TestOnlyC.bat", - "./" + DISTRO_DIR + "/package/qt.conf"}); + {"./" + DISTRO_DIR + "/package/TestOnlyC.exe", + "./" + DISTRO_DIR + "/package/TestOnlyC.bat", + "./" + DISTRO_DIR + "/package/qt.conf"}); QString target1 = TestBinDir + "TestOnlyC.exe"; #endif @@ -2438,7 +2446,7 @@ void deploytest::testConfFile() { bin = TestBinDir + "QtWidgetsProject.exe," + TestBinDir + "TestOnlyC.exe"; #endif QVERIFY(utils.deployFile(":/testResurces/testRes/testMultiPackageConfig.json", file, - {{"$BIN_DIR", bin.toLatin1()}})); + {{"$BIN_DIR", bin.toLatin1()}})); comapareTree = TestModule.onlyC(DISTRO_DIR + "/Dstro1") + TestModule.qtLibs(DISTRO_DIR + "/Dstro2"); @@ -2458,7 +2466,7 @@ void deploytest::testPackages() { #ifdef Q_OS_UNIX QFile f("./" + DISTRO_DIR + "/bin/TestOnlyC"); auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/package/TestOnlyC.sh", "./" + DISTRO_DIR + "/package/bin/TestOnlyC", "./" + DISTRO_DIR + "/package/bin/qt.conf" @@ -2468,9 +2476,9 @@ void deploytest::testPackages() { #else QFile f("./" + DISTRO_DIR + "/TestOnlyC.exe"); auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "/package/TestOnlyC.exe", - "./" + DISTRO_DIR + "/package/TestOnlyC.bat", - "./" + DISTRO_DIR + "/package/qt.conf"}); + {"./" + DISTRO_DIR + "/package/TestOnlyC.exe", + "./" + DISTRO_DIR + "/package/TestOnlyC.bat", + "./" + DISTRO_DIR + "/package/qt.conf"}); QString target1 = TestBinDir + "TestOnlyC.exe"; #endif @@ -2601,7 +2609,7 @@ void deploytest::testIgnore() { QString bin = TestBinDir + "QtWidgetsProject"; QString qmake = TestQtDir + "bin/qmake"; auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/QtWidgetsProject.sh", "./" + DISTRO_DIR + "/bin/qt.conf", "./" + DISTRO_DIR + "/bin/QtWidgetsProject", @@ -2612,15 +2620,15 @@ void deploytest::testIgnore() { QString qmake = TestQtDir + "bin/qmake.exe"; auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/qt.conf", "./" + DISTRO_DIR + "/QtWidgetsProject.exe", "./" + DISTRO_DIR + "/QtWidgetsProject.bat", -#if defined(Q_OS_WIN64) + #if defined(Q_OS_WIN64) "./" + DISTRO_DIR + "/libgcc_s_seh-1.dll", -#else + #else "./" + DISTRO_DIR + "/libgcc_s_dw2-1.dll", -#endif + #endif "./" + DISTRO_DIR + "/libstdc++-6.dll", "./" + DISTRO_DIR + "/libwinpthread-1.dll" @@ -2733,7 +2741,7 @@ void deploytest::testLibDir() { QString extraPath = "/usr/lib,/lib"; auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/TestOnlyC.sh", "./" + DISTRO_DIR + "/bin/qt.conf", "./" + DISTRO_DIR + "/bin/TestOnlyC" @@ -2744,7 +2752,7 @@ void deploytest::testLibDir() { QString extraPath = TestQtDir; auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/qt.conf", "./" + DISTRO_DIR + "/TestOnlyC.exe", "./" + DISTRO_DIR + "/TestOnlyC.bat", @@ -2763,7 +2771,7 @@ void deploytest::testLibDir() { #ifdef Q_OS_UNIX comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/TestOnlyC.sh", "./" + DISTRO_DIR + "/bin/qt.conf", "./" + DISTRO_DIR + "/bin/TestOnlyC", @@ -2775,7 +2783,7 @@ void deploytest::testLibDir() { }); auto comapareTreeExtraLib = utils.createTree( - { + { "./" + DISTRO_DIR + "2/TestOnlyC.sh", "./" + DISTRO_DIR + "2/bin/qt.conf", "./" + DISTRO_DIR + "2/bin/TestOnlyC", @@ -2785,30 +2793,30 @@ void deploytest::testLibDir() { #else comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/qt.conf", "./" + DISTRO_DIR + "/TestOnlyC.exe", "./" + DISTRO_DIR + "/TestOnlyC.bat", -#if defined(Q_OS_WIN64) + #if defined(Q_OS_WIN64) "./" + DISTRO_DIR + "/libgcc_s_seh-1.dll", -#else + #else "./" + DISTRO_DIR + "/libgcc_s_dw2-1.dll", -#endif + #endif "./" + DISTRO_DIR + "/libwinpthread-1.dll", "./" + DISTRO_DIR + "/libstdc++-6.dll", }); auto comapareTreeExtraLib = utils.createTree( - { + { "./" + DISTRO_DIR + "2/qt.conf", "./" + DISTRO_DIR + "2/TestOnlyC.exe", "./" + DISTRO_DIR + "2/TestOnlyC.bat", -#if defined(Q_OS_WIN64) + #if defined(Q_OS_WIN64) "./" + DISTRO_DIR + "2/libgcc_s_seh-1.dll", -#else + #else "./" + DISTRO_DIR + "2/libgcc_s_dw2-1.dll", -#endif + #endif "./" + DISTRO_DIR + "2/libstdc++-6.dll", }); @@ -2832,7 +2840,7 @@ void deploytest::testLibDir() { #ifdef Q_OS_UNIX comapareTreeExtraLib = utils.createTree( - { + { "./" + DISTRO_DIR + "/TestOnlyC.sh", "./" + DISTRO_DIR + "/bin/qt.conf", "./" + DISTRO_DIR + "/bin/TestOnlyC", @@ -2845,15 +2853,15 @@ void deploytest::testLibDir() { #else comapareTreeExtraLib = utils.createTree( - { + { "./" + DISTRO_DIR + "/qt.conf", "./" + DISTRO_DIR + "/TestOnlyC.exe", "./" + DISTRO_DIR + "/TestOnlyC.bat", -#if defined(Q_OS_WIN64) + #if defined(Q_OS_WIN64) "./" + DISTRO_DIR + "/libgcc_s_seh-1.dll", -#else + #else "./" + DISTRO_DIR + "/libgcc_s_dw2-1.dll", -#endif + #endif "./" + DISTRO_DIR + "/libstdc++-6.dll", }); @@ -2876,7 +2884,7 @@ void deploytest::testExtraPlugins() { QString qmake = TestQtDir + "bin/qmake"; auto pluginTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/plugins/sqldrivers/libqsqlodbc.so", "./" + DISTRO_DIR + "/plugins/sqldrivers/libqsqlpsql.so", "./" + DISTRO_DIR + "/plugins/sqldrivers/libqsqlite.so", @@ -2891,7 +2899,7 @@ void deploytest::testExtraPlugins() { QString qmake = TestQtDir + "bin/qmake.exe"; auto pluginTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/plugins/sqldrivers/qsqlmysql.dll", "./" + DISTRO_DIR + "/plugins/sqldrivers/qsqlodbc.dll", "./" + DISTRO_DIR + "/plugins/sqldrivers/qsqlite.dll", @@ -2922,7 +2930,7 @@ void deploytest::testExtraPlugins() { comapareTree -= pluginTree; comapareTree -= utils.createTree( - { + { "./" + DISTRO_DIR + "/plugins/platforms/libqxcb.so", "./" + DISTRO_DIR + "/lib/libxcb-xinerama.so.0", "./" + DISTRO_DIR + "/plugins/xcbglintegrations/libqxcb-egl-integration.so", @@ -2942,16 +2950,16 @@ void deploytest::testTargetDir() { #ifdef Q_OS_UNIX QString bin = TestBinDir + "TestOnlyC"; auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "Z/bin/TestOnlyC", - "./" + DISTRO_DIR + "Z/bin/qt.conf", - "./" + DISTRO_DIR + "Z/TestOnlyC.sh"}); + {"./" + DISTRO_DIR + "Z/bin/TestOnlyC", + "./" + DISTRO_DIR + "Z/bin/qt.conf", + "./" + DISTRO_DIR + "Z/TestOnlyC.sh"}); #else QString bin = TestBinDir + "TestOnlyC.exe"; auto comapareTree = utils.createTree( - {"./" + DISTRO_DIR + "Z/TestOnlyC.exe", - "./" + DISTRO_DIR + "Z/TestOnlyC.bat", - "./" + DISTRO_DIR + "Z/qt.conf"}); + {"./" + DISTRO_DIR + "Z/TestOnlyC.exe", + "./" + DISTRO_DIR + "Z/TestOnlyC.bat", + "./" + DISTRO_DIR + "Z/qt.conf"}); #endif runTestParams({"-bin", bin, "clear" , @@ -2967,7 +2975,7 @@ void deploytest::testSystemLib() { QString qmake = TestQtDir + "bin/qmake"; auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/TestOnlyC.sh", "./" + DISTRO_DIR + "/bin/qt.conf", "./" + DISTRO_DIR + "/bin/TestOnlyC", @@ -2980,14 +2988,14 @@ void deploytest::testSystemLib() { QString qmake = TestQtDir + "bin/qmake.exe"; auto comapareTree = utils.createTree( - { + { "./" + DISTRO_DIR + "/TestOnlyC.exe", "./" + DISTRO_DIR + "/TestOnlyC.bat", -#if defined(Q_OS_WIN64) + #if defined(Q_OS_WIN64) "./" + DISTRO_DIR + "/systemLibs/libgcc_s_seh-1.dll", -#else + #else "./" + DISTRO_DIR + "/systemLibs/libgcc_s_dw2-1.dll", -#endif + #endif "./" + DISTRO_DIR + "/systemLibs/libstdc++-6.dll", "./" + DISTRO_DIR + "/systemLibs/libwinpthread-1.dll", "./" + DISTRO_DIR + "/systemLibs/msvcrt.dll", @@ -3007,21 +3015,21 @@ void deploytest::testSystemLib() { comapareTree += TestModule.qtLibs(); comapareTree -= utils.createTree( - { + { "./" + DISTRO_DIR + "/TestOnlyC.exe", "./" + DISTRO_DIR + "/TestOnlyC.bat", -#if defined(Q_OS_WIN64) + #if defined(Q_OS_WIN64) "./" + DISTRO_DIR + "/systemLibs/libgcc_s_seh-1.dll", -#else + #else "./" + DISTRO_DIR + "/systemLibs/libgcc_s_dw2-1.dll", -#endif + #endif "./" + DISTRO_DIR + "/systemLibs/libstdc++-6.dll", "./" + DISTRO_DIR + "/systemLibs/libwinpthread-1.dll", }); comapareTree += utils.createTree( - { + { "./" + DISTRO_DIR + "/systemLibs/msvcrt.dll", "./" + DISTRO_DIR + "/qt.conf", "./" + DISTRO_DIR + "/systemLibs/mpr.dll", @@ -3037,17 +3045,17 @@ void deploytest::testSystemLib() { "./" + DISTRO_DIR + "/systemLibs/msvcp_win.dll", "./" + DISTRO_DIR + "/systemLibs/wtsapi32.dll", "./" + DISTRO_DIR + "/systemLibs/combase.dll", -#if !defined(Q_OS_WIN64) + #if !defined(Q_OS_WIN64) "./" + DISTRO_DIR + "/systemLibs/sspicli.dll", "./" + DISTRO_DIR + "/systemLibs/cryptbase.dll", -#endif + #endif }); #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) comapareTree += utils.createTree( - { + { "./" + DISTRO_DIR + "/systemLibs/d3d11.dll", "./" + DISTRO_DIR + "/systemLibs/dxgi.dll", "./" + DISTRO_DIR + "/systemLibs/win32u.dll", From 97bf26c2a7adedb3980c3ae86749c14811cfa24d Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 13:51:48 +0300 Subject: [PATCH 188/222] fix build --- 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 e3d6c20..4486845 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1662,7 +1662,7 @@ void deploytest::testCustomPlatform() { QString bin = {TestBinDir + "TestOnlyC.exe"}; QString platform = "win_x86_64"; - auto compareTree = utils.createTree( + compareTree = utils.createTree( { "./" + distDir + "/TestOnlyC.exe", "./" + distDir + "/TestOnlyC.bat", From c8d78cad056c0bff2a2dce14a76be9d122cf789f Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Tue, 8 Feb 2022 15:21:55 +0300 Subject: [PATCH 189/222] fix windows --- UnitTests/tst_deploytest.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 4486845..705d9d5 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1664,9 +1664,9 @@ void deploytest::testCustomPlatform() { compareTree = utils.createTree( { - "./" + distDir + "/TestOnlyC.exe", - "./" + distDir + "/TestOnlyC.bat", - "./" + distDir + "/qt.conf" + "./" + DISTRO_DIR + "/TestOnlyC.exe", + "./" + DISTRO_DIR + "/TestOnlyC.bat", + "./" + DISTRO_DIR + "/qt.conf" } ); From cabdc5903cf1f85528af7abea8c7d5076663eeed Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Feb 2022 09:33:17 +0300 Subject: [PATCH 190/222] v1.5.4.12 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index ad9cf38..9ed4171 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.11 +VERSION = 1.5.4.12 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 0155d19..e4ca68f 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.11</Version> + <Version>1.5.4.12</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 4070653..92d2865 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.11</Version> + <Version>1.5.4.12</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 618a9d4..5fe4abc 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.11 +VERSION = 1.5.4.12 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.11 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.12 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 5ddbccc..61076ab 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.11</Version> + <Version>1.5.4.12</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index e02f932..4bdf89b 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.11 +Version=1.5.4.12 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.4.11 +X-GNOME-Bugzilla-Version=1.5.4.12 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7f1f38b..159a50c 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.11' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.12' # 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 4aae351ecc90928bca09eceacc2d8be926dd92b5 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Wed, 9 Feb 2022 09:36:13 +0300 Subject: [PATCH 191/222] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3378435..2019536 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ If you would like to use bitcoins to support us, you can transfer coins to this ### Personal Membership Patrons: -- [getflow.tech](https://getflow.tech/) +- [GETFLOW.TECH](https://getflow.tech/) - Semih Ufuk Güler *** From f3a67edca7b6c1fc4560164f4231fae9fb4bd0ef Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 3 Mar 2022 12:45:38 +0300 Subject: [PATCH 192/222] added support of the qifArchiveFormat option --- Deploy/Distributions/qif.cpp | 6 ++++++ Deploy/deploycore.cpp | 6 ++++++ UnitTests/tst_deploytest.cpp | 28 ++++++++++++++++++++++++++++ md/en/Options.md | 1 + md/ru/Options.md | 1 + 5 files changed, 42 insertions(+) diff --git a/Deploy/Distributions/qif.cpp b/Deploy/Distributions/qif.cpp index 83076bf..3ab5945 100644 --- a/Deploy/Distributions/qif.cpp +++ b/Deploy/Distributions/qif.cpp @@ -86,6 +86,12 @@ QList<SystemCommandData> QIF::runCmd() { cmd.arguments.push_back(installerFile()); + QString customFormat = QuasarAppUtils::Params::getArg("qifArchiveFormat"); + if (customFormat.size()) { + cmd.arguments.push_back("--af"); + cmd.arguments.push_back(customFormat); + } + return {cmd}; } diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 5430ef0..421e14b 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -517,6 +517,12 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { "Sets target directory(by default it is the path to the first deployable file)" }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-qifArchiveFormat"}, "[7z|zip|tar|tar.gz|tar.bz2|tar.xz]", + "Sets the format used when packaging new component data archives." + " If you omit this option, the 7z format will be used as a default. " + }}); + group = "Part 7 Deb package options"; help.insert(group, {QuasarAppUtils::OptionData{ diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 705d9d5..b8c090e 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -193,6 +193,7 @@ private slots: void testQIFResources(); void testCustomPlatform(); + void testQifArchiveFormat(); void customTest(); }; @@ -202,6 +203,8 @@ deploytest::deploytest() { qputenv("QTEST_FUNCTION_TIMEOUT", "1800000"); QString qifwPath = qgetenv("PATH") + DeployCore::getEnvSeparator() + TestQtDir + "../../Tools/QtInstallerFramework/4.0/bin/"; qifwPath += qifwPath + DeployCore::getEnvSeparator() + TestQtDir + "../../Tools/QtInstallerFramework/4.1/bin/"; + qifwPath += qifwPath + DeployCore::getEnvSeparator() + TestQtDir + "../../Tools/QtInstallerFramework/4.2/bin/"; + qifwPath += qifwPath + DeployCore::getEnvSeparator() + TestQtDir + "../../Tools/QtInstallerFramework/4.3/bin/"; qputenv("PATH", qifwPath.toLatin1().data()); TestUtils utils; @@ -1689,6 +1692,31 @@ void deploytest::testCustomPlatform() { ); } +void deploytest::testQifArchiveFormat() { + TestUtils utils; + +#ifdef Q_OS_UNIX + QString bin = {TestBinDir + "TestOnlyC"}; + + auto result = utils.createTree({{DISTRO_DIR + "/InstallerTestOnlyC.run"}, + {DISTRO_DIR + "/InstallerTestOnlyC.run.md5"}}); +#else + QString bin = {TestBinDir + "TestOnlyC.exe"}; + + auto result = utils.createTree({{DISTRO_DIR + "/InstallerTestOnlyC.exe"}, + {DISTRO_DIR + "/InstallerTestOnlyC.exe.md5"}}); +#endif + + + runTestParams({ + "-bin", bin, + "qifFromSystem", + "qif", + "-qifArchiveFormat", "zip" + }, &result + ); +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); diff --git a/md/en/Options.md b/md/en/Options.md index dc66661..5e19c64 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -156,6 +156,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifConfig [path/to/config.xml] | Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml. Note This path sets releative target folder (sets by TargetDir option). | | -qifPackages [path/to/packagesFodoler] | Sets a custom path to the packages directories. By default it is qif/packages. Note This path sets releative target folder (sets by TargetDir option). | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Sets a custom path to the resources files. By default this option is skipped. Note This path sets releative target folder (sets by TargetDir option). | +| -qifArchiveFormat [7z|zip|tar|tar.gz|tar.bz2|tar.xz] | Sets the format used when packaging new component data archives. If you omit this option, the 7z format will be used as a default. | ### Deb package options diff --git a/md/ru/Options.md b/md/ru/Options.md index b904712..1350c9c 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -152,6 +152,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifConfig [path/to/config.xml] | Устанавливает пользовательский путь к файлу конфигурации установщика qt ifw. По умолчанию это qif/config/config.xml. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | | -qifPackages [path/to/packagesFodoler] | Устанавливает пользовательский путь к каталогам пакетов. По умолчанию это qif/packages. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Устанавливает пользовательский путь к файлам ресурсов. По умолчанию эта опция пропущена. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | +| -qifArchiveFormat [7z|zip|tar|tar.gz|tar.bz2|tar.xz] | Задает формат, используемый при упаковке новых архивов данных компонентов. Если вы опустите этот параметр, по умолчанию будет использоваться формат 7z. | ### Deb package options: From 162759499d6f15b1ee496deafc7eb4feb0f746cb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 3 Mar 2022 12:49:29 +0300 Subject: [PATCH 193/222] v1.5.4.13 --- Deploy/Deploy.pro | 2 +- QIFData/QIF.pri | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/QIF/meta/package.xml | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 4 ++-- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 9ed4171..0a06b6f 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.12 +VERSION = 1.5.4.13 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/QIF.pri b/QIFData/QIF.pri index f418751..d663dcc 100644 --- a/QIFData/QIF.pri +++ b/QIFData/QIF.pri @@ -10,7 +10,7 @@ unix: PLATFORM = linux win32:PY = python unix: PY = python3 -qif.commands= $$PY $$PWD/scripts/QIF.py $$PLATFORM 4.2 $$PWD/packages/QIF/data +qif.commands= $$PY $$PWD/scripts/QIF.py $$PLATFORM 4.3 $$PWD/packages/QIF/data alias.commands= $$PY $$PWD/scripts/alias.py !isEmpty( ONLINE ) { diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index e4ca68f..4dccf4a 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.12</Version> + <Version>1.5.4.13</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 92d2865..b305439 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.12</Version> + <Version>1.5.4.13</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 5fe4abc..95746e7 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.12 +VERSION = 1.5.4.13 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.12 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.13 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/QIF/meta/package.xml b/QIFData/packages/QIF/meta/package.xml index 16e1355..159a13b 100644 --- a/QIFData/packages/QIF/meta/package.xml +++ b/QIFData/packages/QIF/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>Qt Installer Framework</DisplayName> <Description>Qt Installer Framework for CQtDeployer</Description> - <Version>4.2.0.0</Version> - <ReleaseDate>2021-11-30</ReleaseDate> + <Version>4.3.0.0</Version> + <ReleaseDate>2022-03-03</ReleaseDate> <Default>true</Default> </Package> diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 61076ab..b4f22aa 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,11 +2,11 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.12</Version> + <Version>1.5.4.13</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> - <ReleaseDate>2021-06-15</ReleaseDate> + <ReleaseDate>2022-03-03</ReleaseDate> <SortingPriority>201</SortingPriority> <Translations> <Translation>ru.qm</Translation> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 4bdf89b..d2eaa5b 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.12 +Version=1.5.4.13 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.4.12 +X-GNOME-Bugzilla-Version=1.5.4.13 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 159a50c..8fa604b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.12' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.13' # 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 f9a38e229540397f076a69792287584930505d0c Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 3 Mar 2022 13:24:34 +0300 Subject: [PATCH 194/222] fix tests --- UnitTests/tst_deploytest.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index b8c090e..1baec76 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1711,6 +1711,7 @@ void deploytest::testQifArchiveFormat() { runTestParams({ "-bin", bin, "qifFromSystem", + "clear", "qif", "-qifArchiveFormat", "zip" }, &result From 11fa30744c3d7d6715ce8a457e9f34dc7106b65d Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Thu, 3 Mar 2022 13:44:27 +0300 Subject: [PATCH 195/222] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2019536..16e3d59 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Key differences of this program: See the list of all options [here](md/en/Options.md) -#### Example: `cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/5.12.4/gcc_64/bin/qmake clear` +#### Example: `cqtdeployer -bin myApp -qmlDir ~/MyAppProject/qml -qmake ~/Qt/6.3.1/gcc_64/bin/qmake clear` ## More examples #### Deployed project structure: From 20078ddf33992b184a57572b05d60ff0b7421ad8 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Thu, 3 Mar 2022 14:33:48 +0300 Subject: [PATCH 196/222] Update Options.md --- md/en/Options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/en/Options.md b/md/en/Options.md index 5e19c64..f6c2faa 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -156,7 +156,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifConfig [path/to/config.xml] | Sets a custom path to the configure file of the qt ifw installer. By default it is qif/config/config.xml. Note This path sets releative target folder (sets by TargetDir option). | | -qifPackages [path/to/packagesFodoler] | Sets a custom path to the packages directories. By default it is qif/packages. Note This path sets releative target folder (sets by TargetDir option). | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Sets a custom path to the resources files. By default this option is skipped. Note This path sets releative target folder (sets by TargetDir option). | -| -qifArchiveFormat [7z|zip|tar|tar.gz|tar.bz2|tar.xz] | Sets the format used when packaging new component data archives. If you omit this option, the 7z format will be used as a default. | +| -qifArchiveFormat [7z,zip,tar,tar.gz,tar.bz2,tar.xz] | Sets the format used when packaging new component data archives. If you omit this option, the 7z format will be used as a default. | ### Deb package options From 1e31c83ac51503c323740776ea33ae5ca492e206 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Thu, 3 Mar 2022 14:35:02 +0300 Subject: [PATCH 197/222] Update Options.md --- md/ru/Options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/ru/Options.md b/md/ru/Options.md index 1350c9c..095fd29 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -152,7 +152,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifConfig [path/to/config.xml] | Устанавливает пользовательский путь к файлу конфигурации установщика qt ifw. По умолчанию это qif/config/config.xml. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | | -qifPackages [path/to/packagesFodoler] | Устанавливает пользовательский путь к каталогам пакетов. По умолчанию это qif/packages. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Устанавливает пользовательский путь к файлам ресурсов. По умолчанию эта опция пропущена. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | -| -qifArchiveFormat [7z|zip|tar|tar.gz|tar.bz2|tar.xz] | Задает формат, используемый при упаковке новых архивов данных компонентов. Если вы опустите этот параметр, по умолчанию будет использоваться формат 7z. | +| -qifArchiveFormat [7z,zip,tar,tar.gz,tar.bz2,tar.xz] | Задает формат, используемый при упаковке новых архивов данных компонентов. Если вы опустите этот параметр, по умолчанию будет использоваться формат 7z. | ### Deb package options: From c666dc0aa08d6e2baa156eee579d10a138dd0ab1 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Mar 2022 10:07:24 +0300 Subject: [PATCH 198/222] fix deploy network module (Qt6) --- Deploy/pluginsparser.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Deploy/pluginsparser.cpp b/Deploy/pluginsparser.cpp index 01e2073..82780ea 100644 --- a/Deploy/pluginsparser.cpp +++ b/Deploy/pluginsparser.cpp @@ -37,6 +37,7 @@ static const PluginModuleMapping pluginModuleMappings[] = {"mediaservice", DeployCore::QtModule::QtMultimediaModule}, {"playlistformats", DeployCore::QtModule::QtMultimediaModule}, {"bearer", DeployCore::QtModule::QtNetworkModule}, + {"tls", DeployCore::QtModule::QtNetworkModule}, {"position", DeployCore::QtModule::QtPositioningModule}, {"printsupport", DeployCore::QtModule::QtPrintSupportModule}, {"scenegraph", DeployCore::QtModule::QtQuickModule}, From 7e342c0726b38445352f4053a71b98860262badb Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Mar 2022 10:13:07 +0300 Subject: [PATCH 199/222] ref #690 Added an iccm plugin of xcb into snap pacakge. --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8fa604b..7cab7ed 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -39,7 +39,7 @@ parts: - libpng16-16 - dpkg - libwayland-cursor0 - + - libxcb-icccm4 qif: plugin: dump From b0875379c9494c2838e09698bcbd292dc2661818 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Mar 2022 10:57:12 +0300 Subject: [PATCH 200/222] added missing libs --- snap/snapcraft.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7cab7ed..3737397 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -40,6 +40,7 @@ parts: - dpkg - libwayland-cursor0 - libxcb-icccm4 + - libxcb-image0 qif: plugin: dump From c9775d4c6f46c37e0824af34585f11bec4676044 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Mar 2022 11:12:09 +0300 Subject: [PATCH 201/222] added libxcb-keysyms1 to snap package --- snap/snapcraft.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 3737397..dfb6744 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -41,6 +41,7 @@ parts: - libwayland-cursor0 - libxcb-icccm4 - libxcb-image0 + - libxcb-keysyms1 qif: plugin: dump From b74be321347dc1514001b9b93dcb9e136e9372a7 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Mar 2022 11:25:52 +0300 Subject: [PATCH 202/222] added libxcb-render-util0 --- snap/snapcraft.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index dfb6744..653514d 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -42,6 +42,7 @@ parts: - libxcb-icccm4 - libxcb-image0 - libxcb-keysyms1 + - libxcb-render-util0 qif: plugin: dump From 998c5ef54b1404ed8d8551b4454f1a555a7e32c5 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Mar 2022 17:38:36 +0300 Subject: [PATCH 203/222] added libxcb-xinerama0 --- snap/snapcraft.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 653514d..208d0f6 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -43,6 +43,7 @@ parts: - libxcb-image0 - libxcb-keysyms1 - libxcb-render-util0 + - libxcb-xinerama0 qif: plugin: dump From 96fde6c958b20e6cf6c90db6419f5abc52896204 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Wed, 9 Mar 2022 17:56:42 +0300 Subject: [PATCH 204/222] v 1.5.4.14 --- CQtDeployer.pro | 2 +- CQtDeployer/CQtDeployer.pro | 2 +- CQtDeployer/main.cpp | 2 +- Deploy/Deploy.pri | 2 +- Deploy/Deploy.pro | 4 ++-- Deploy/configparser.cpp | 2 +- Deploy/configparser.h | 2 +- Deploy/defines.h | 2 +- Deploy/dependenciesscanner.cpp | 2 +- Deploy/dependenciesscanner.h | 2 +- Deploy/dependencymap.cpp | 2 +- Deploy/dependencymap.h | 2 +- Deploy/deploy.cpp | 2 +- Deploy/deploy.h | 2 +- Deploy/deploy_global.h | 2 +- Deploy/deployconfig.cpp | 2 +- Deploy/deployconfig.h | 2 +- Deploy/deploycore.cpp | 2 +- Deploy/deploycore.h | 2 +- Deploy/distromodule.cpp | 2 +- Deploy/distromodule.h | 2 +- Deploy/distrostruct.cpp | 2 +- Deploy/distrostruct.h | 2 +- Deploy/elf_type.cpp | 2 +- Deploy/elf_type.h | 2 +- Deploy/envirement.cpp | 2 +- Deploy/envirement.h | 2 +- Deploy/extra.cpp | 2 +- Deploy/extra.h | 2 +- Deploy/extracter.cpp | 2 +- Deploy/extracter.h | 2 +- Deploy/filemanager.cpp | 2 +- Deploy/filemanager.h | 2 +- Deploy/generalfiles_type.cpp | 2 +- Deploy/generalfiles_type.h | 2 +- Deploy/igetlibinfo.h | 2 +- Deploy/ignorerule.cpp | 2 +- Deploy/ignorerule.h | 2 +- Deploy/libinfo.cpp | 2 +- Deploy/libinfo.h | 2 +- Deploy/metafilemanager.cpp | 2 +- Deploy/metafilemanager.h | 2 +- Deploy/packagecontrol.cpp | 2 +- Deploy/packagecontrol.h | 2 +- Deploy/packing.cpp | 2 +- Deploy/packing.h | 2 +- Deploy/pathutils.cpp | 2 +- Deploy/pathutils.h | 2 +- Deploy/pe_type.cpp | 2 +- Deploy/pe_type.h | 2 +- Deploy/pluginsparser.cpp | 2 +- Deploy/pluginsparser.h | 2 +- Deploy/qml.cpp | 2 +- Deploy/qml.h | 2 +- Deploy/qtdir.cpp | 2 +- Deploy/qtdir.h | 2 +- Deploy/targetdata.h | 2 +- Deploy/targetinfo.cpp | 2 +- Deploy/targetinfo.h | 2 +- Deploy/zipcompresser.cpp | 2 +- Deploy/zipcompresser.h | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- UnitTests/UnitTests.pro | 2 +- UnitTests/libcreator.cpp | 2 +- UnitTests/libcreator.h | 2 +- UnitTests/modules.cpp | 2 +- UnitTests/modules.h | 2 +- UnitTests/modulesqt513.cpp | 2 +- UnitTests/modulesqt513.h | 2 +- UnitTests/modulesqt514.cpp | 2 +- UnitTests/modulesqt514.h | 2 +- UnitTests/qmlcreator.cpp | 2 +- UnitTests/qmlcreator.h | 2 +- UnitTests/testutils.cpp | 2 +- UnitTests/testutils.h | 2 +- UnitTests/tst_deploytest.cpp | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 4 ++-- 81 files changed, 85 insertions(+), 85 deletions(-) diff --git a/CQtDeployer.pro b/CQtDeployer.pro index 98a9caf..da35d8a 100644 --- a/CQtDeployer.pro +++ b/CQtDeployer.pro @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2021 QuasarApp. +# Copyright (C) 2018-2022 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. diff --git a/CQtDeployer/CQtDeployer.pro b/CQtDeployer/CQtDeployer.pro index 8f0bb1c..d26c484 100644 --- a/CQtDeployer/CQtDeployer.pro +++ b/CQtDeployer/CQtDeployer.pro @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2021 QuasarApp. +# Copyright (C) 2018-2022 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. diff --git a/CQtDeployer/main.cpp b/CQtDeployer/main.cpp index 560f014..04bd2df 100644 --- a/CQtDeployer/main.cpp +++ b/CQtDeployer/main.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/Deploy.pri b/Deploy/Deploy.pri index e833bf7..740c1b4 100644 --- a/Deploy/Deploy.pri +++ b/Deploy/Deploy.pri @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2021 QuasarApp. +# Copyright (C) 2018-2022 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. diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 0a06b6f..cf84ca2 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2021 QuasarApp. +# Copyright (C) 2018-2022 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. @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.13 +VERSION = 1.5.4.14 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/Deploy/configparser.cpp b/Deploy/configparser.cpp index dfbd526..bf371d4 100644 --- a/Deploy/configparser.cpp +++ b/Deploy/configparser.cpp @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/configparser.h b/Deploy/configparser.h index d95c221..8abf05a 100644 --- a/Deploy/configparser.h +++ b/Deploy/configparser.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/defines.h b/Deploy/defines.h index 5f31045..130ac7b 100644 --- a/Deploy/defines.h +++ b/Deploy/defines.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/dependenciesscanner.cpp b/Deploy/dependenciesscanner.cpp index 201ff09..996276f 100644 --- a/Deploy/dependenciesscanner.cpp +++ b/Deploy/dependenciesscanner.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/dependenciesscanner.h b/Deploy/dependenciesscanner.h index a4c3c13..9ad0c90 100644 --- a/Deploy/dependenciesscanner.h +++ b/Deploy/dependenciesscanner.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/dependencymap.cpp b/Deploy/dependencymap.cpp index 1561fdc..5e13506 100644 --- a/Deploy/dependencymap.cpp +++ b/Deploy/dependencymap.cpp @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/dependencymap.h b/Deploy/dependencymap.h index ecbfcb5..06267f5 100644 --- a/Deploy/dependencymap.h +++ b/Deploy/dependencymap.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/deploy.cpp b/Deploy/deploy.cpp index 1e6f9dd..0269899 100644 --- a/Deploy/deploy.cpp +++ b/Deploy/deploy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/deploy.h b/Deploy/deploy.h index 969d876..96ab3b5 100644 --- a/Deploy/deploy.h +++ b/Deploy/deploy.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/deploy_global.h b/Deploy/deploy_global.h index a1838b2..c3cb527 100644 --- a/Deploy/deploy_global.h +++ b/Deploy/deploy_global.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/deployconfig.cpp b/Deploy/deployconfig.cpp index a9d43b2..948dcb0 100644 --- a/Deploy/deployconfig.cpp +++ b/Deploy/deployconfig.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/deployconfig.h b/Deploy/deployconfig.h index 174bc93..741bf94 100644 --- a/Deploy/deployconfig.h +++ b/Deploy/deployconfig.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 421e14b..19a1bf8 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 1ba87b3..d77e4b7 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/distromodule.cpp b/Deploy/distromodule.cpp index e47b627..a85573b 100644 --- a/Deploy/distromodule.cpp +++ b/Deploy/distromodule.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/distromodule.h b/Deploy/distromodule.h index e27bf2c..84aa6a6 100644 --- a/Deploy/distromodule.h +++ b/Deploy/distromodule.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/distrostruct.cpp b/Deploy/distrostruct.cpp index aaa7deb..50572cc 100644 --- a/Deploy/distrostruct.cpp +++ b/Deploy/distrostruct.cpp @@ -1,6 +1,6 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/distrostruct.h b/Deploy/distrostruct.h index 8dc931b..782c7da 100644 --- a/Deploy/distrostruct.h +++ b/Deploy/distrostruct.h @@ -1,6 +1,6 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/elf_type.cpp b/Deploy/elf_type.cpp index dc301b3..cb2829a 100644 --- a/Deploy/elf_type.cpp +++ b/Deploy/elf_type.cpp @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/elf_type.h b/Deploy/elf_type.h index a263d43..217861f 100644 --- a/Deploy/elf_type.h +++ b/Deploy/elf_type.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/envirement.cpp b/Deploy/envirement.cpp index a7f4946..51bbb0f 100644 --- a/Deploy/envirement.cpp +++ b/Deploy/envirement.cpp @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/envirement.h b/Deploy/envirement.h index 41eb11d..d8841e2 100644 --- a/Deploy/envirement.h +++ b/Deploy/envirement.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/extra.cpp b/Deploy/extra.cpp index 1871c64..b28ce61 100644 --- a/Deploy/extra.cpp +++ b/Deploy/extra.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/extra.h b/Deploy/extra.h index a2f65af..eea659b 100644 --- a/Deploy/extra.h +++ b/Deploy/extra.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index 4a5977a..c844c2b 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/extracter.h b/Deploy/extracter.h index 54ce41b..0b893c7 100644 --- a/Deploy/extracter.h +++ b/Deploy/extracter.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/filemanager.cpp b/Deploy/filemanager.cpp index 89af746..b2992c7 100644 --- a/Deploy/filemanager.cpp +++ b/Deploy/filemanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/filemanager.h b/Deploy/filemanager.h index 36133b6..9d05ed2 100644 --- a/Deploy/filemanager.h +++ b/Deploy/filemanager.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/generalfiles_type.cpp b/Deploy/generalfiles_type.cpp index 5ffe9b4..044abcb 100644 --- a/Deploy/generalfiles_type.cpp +++ b/Deploy/generalfiles_type.cpp @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2021-2021 QuasarApp. +//# Copyright (C) 2021-2022 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. diff --git a/Deploy/generalfiles_type.h b/Deploy/generalfiles_type.h index de21469..dd9a59e 100644 --- a/Deploy/generalfiles_type.h +++ b/Deploy/generalfiles_type.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2021-2021 QuasarApp. +//# Copyright (C) 2021-2022 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. diff --git a/Deploy/igetlibinfo.h b/Deploy/igetlibinfo.h index bd4f124..2ab1c0e 100644 --- a/Deploy/igetlibinfo.h +++ b/Deploy/igetlibinfo.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/ignorerule.cpp b/Deploy/ignorerule.cpp index ccd31c3..fffd9f0 100644 --- a/Deploy/ignorerule.cpp +++ b/Deploy/ignorerule.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/ignorerule.h b/Deploy/ignorerule.h index 0ead87a..5c96e52 100644 --- a/Deploy/ignorerule.h +++ b/Deploy/ignorerule.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/libinfo.cpp b/Deploy/libinfo.cpp index f8de3e2..4f52289 100644 --- a/Deploy/libinfo.cpp +++ b/Deploy/libinfo.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/libinfo.h b/Deploy/libinfo.h index 1df32b7..edbf1d8 100644 --- a/Deploy/libinfo.h +++ b/Deploy/libinfo.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/metafilemanager.cpp b/Deploy/metafilemanager.cpp index 8dcfcf8..feb18d0 100644 --- a/Deploy/metafilemanager.cpp +++ b/Deploy/metafilemanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/metafilemanager.h b/Deploy/metafilemanager.h index 533d540..36c1a0b 100644 --- a/Deploy/metafilemanager.h +++ b/Deploy/metafilemanager.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/packagecontrol.cpp b/Deploy/packagecontrol.cpp index 2df56e3..f1ea538 100644 --- a/Deploy/packagecontrol.cpp +++ b/Deploy/packagecontrol.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/packagecontrol.h b/Deploy/packagecontrol.h index d101131..6b1dce4 100644 --- a/Deploy/packagecontrol.h +++ b/Deploy/packagecontrol.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/packing.cpp b/Deploy/packing.cpp index 1c9c1e9..5ed6ec7 100644 --- a/Deploy/packing.cpp +++ b/Deploy/packing.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/packing.h b/Deploy/packing.h index 3bbd322..0b7d78c 100644 --- a/Deploy/packing.h +++ b/Deploy/packing.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/pathutils.cpp b/Deploy/pathutils.cpp index a3f73ea..ab44240 100644 --- a/Deploy/pathutils.cpp +++ b/Deploy/pathutils.cpp @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/pathutils.h b/Deploy/pathutils.h index fe6c7b2..3ff8a94 100644 --- a/Deploy/pathutils.h +++ b/Deploy/pathutils.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/pe_type.cpp b/Deploy/pe_type.cpp index 5db334b..4fe84c5 100644 --- a/Deploy/pe_type.cpp +++ b/Deploy/pe_type.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/pe_type.h b/Deploy/pe_type.h index 78d2125..10a5774 100644 --- a/Deploy/pe_type.h +++ b/Deploy/pe_type.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/pluginsparser.cpp b/Deploy/pluginsparser.cpp index 82780ea..3e3562d 100644 --- a/Deploy/pluginsparser.cpp +++ b/Deploy/pluginsparser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/pluginsparser.h b/Deploy/pluginsparser.h index eb461d7..0825011 100644 --- a/Deploy/pluginsparser.h +++ b/Deploy/pluginsparser.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/qml.cpp b/Deploy/qml.cpp index 2f6d3ce..c0fbb92 100644 --- a/Deploy/qml.cpp +++ b/Deploy/qml.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/qml.h b/Deploy/qml.h index 90a9e9a..31d3a0b 100644 --- a/Deploy/qml.h +++ b/Deploy/qml.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/qtdir.cpp b/Deploy/qtdir.cpp index 1cef4d9..174ab02 100644 --- a/Deploy/qtdir.cpp +++ b/Deploy/qtdir.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/qtdir.h b/Deploy/qtdir.h index 21d2bb0..8566ace 100644 --- a/Deploy/qtdir.h +++ b/Deploy/qtdir.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/targetdata.h b/Deploy/targetdata.h index 94acaf2..45a624f 100644 --- a/Deploy/targetdata.h +++ b/Deploy/targetdata.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/targetinfo.cpp b/Deploy/targetinfo.cpp index 047829a..bbc0d47 100644 --- a/Deploy/targetinfo.cpp +++ b/Deploy/targetinfo.cpp @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/targetinfo.h b/Deploy/targetinfo.h index 26fbdc2..f53ef4f 100644 --- a/Deploy/targetinfo.h +++ b/Deploy/targetinfo.h @@ -1,5 +1,5 @@ //# -//# Copyright (C) 2018-2021 QuasarApp. +//# Copyright (C) 2018-2022 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. diff --git a/Deploy/zipcompresser.cpp b/Deploy/zipcompresser.cpp index 5c0386e..1bfbaf4 100644 --- a/Deploy/zipcompresser.cpp +++ b/Deploy/zipcompresser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/Deploy/zipcompresser.h b/Deploy/zipcompresser.h index d6937f4..8985626 100644 --- a/Deploy/zipcompresser.h +++ b/Deploy/zipcompresser.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 4dccf4a..fd6fc94 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.13</Version> + <Version>1.5.4.14</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index b305439..0573fdc 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.13</Version> + <Version>1.5.4.14</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 95746e7..f288eba 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.13 +VERSION = 1.5.4.14 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.13 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.14 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index b4f22aa..538d303 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.13</Version> + <Version>1.5.4.14</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/UnitTests/UnitTests.pro b/UnitTests/UnitTests.pro index 5b6a96d..fd44e60 100644 --- a/UnitTests/UnitTests.pro +++ b/UnitTests/UnitTests.pro @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2021 QuasarApp. +# Copyright (C) 2018-2022 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. diff --git a/UnitTests/libcreator.cpp b/UnitTests/libcreator.cpp index 990e89c..f990a61 100644 --- a/UnitTests/libcreator.cpp +++ b/UnitTests/libcreator.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/libcreator.h b/UnitTests/libcreator.h index a85d8c7..7428ca4 100644 --- a/UnitTests/libcreator.h +++ b/UnitTests/libcreator.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/modules.cpp b/UnitTests/modules.cpp index bcd1eac..8c51ead 100644 --- a/UnitTests/modules.cpp +++ b/UnitTests/modules.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/modules.h b/UnitTests/modules.h index 820a37d..7fad633 100644 --- a/UnitTests/modules.h +++ b/UnitTests/modules.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/modulesqt513.cpp b/UnitTests/modulesqt513.cpp index b82ebbc..9ba0237 100644 --- a/UnitTests/modulesqt513.cpp +++ b/UnitTests/modulesqt513.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/modulesqt513.h b/UnitTests/modulesqt513.h index 8c42b8e..a0450a3 100644 --- a/UnitTests/modulesqt513.h +++ b/UnitTests/modulesqt513.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/modulesqt514.cpp b/UnitTests/modulesqt514.cpp index 3fbe852..5b73cc9 100644 --- a/UnitTests/modulesqt514.cpp +++ b/UnitTests/modulesqt514.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/modulesqt514.h b/UnitTests/modulesqt514.h index 49422e8..4b92683 100644 --- a/UnitTests/modulesqt514.h +++ b/UnitTests/modulesqt514.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/qmlcreator.cpp b/UnitTests/qmlcreator.cpp index eaef077..b2c9e95 100644 --- a/UnitTests/qmlcreator.cpp +++ b/UnitTests/qmlcreator.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/qmlcreator.h b/UnitTests/qmlcreator.h index c179f0f..db8e637 100644 --- a/UnitTests/qmlcreator.h +++ b/UnitTests/qmlcreator.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/testutils.cpp b/UnitTests/testutils.cpp index c9ea512..7299c32 100644 --- a/UnitTests/testutils.cpp +++ b/UnitTests/testutils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/testutils.h b/UnitTests/testutils.h index b85a1ca..775f2c7 100644 --- a/UnitTests/testutils.h +++ b/UnitTests/testutils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 1baec76..ff069cf 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 QuasarApp. + * Copyright (C) 2018-2022 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. diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index d2eaa5b..4f9fffb 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.13 +Version=1.5.4.14 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.4.13 +X-GNOME-Bugzilla-Version=1.5.4.14 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 208d0f6..988dff4 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,12 +1,12 @@ # -# Copyright (C) 2018-2021 QuasarApp. +# Copyright (C) 2018-2022 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. # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.13' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.14' # 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 3618cfc17534d8284644c0042cefea5567cb3ab3 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 26 May 2022 09:38:42 +0300 Subject: [PATCH 205/222] Added support the QtShaderToolsModule --- Deploy/deploycore.cpp | 3 ++- Deploy/deploycore.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 421e14b..479192d 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -79,7 +79,8 @@ QtModuleEntry DeployCore::qtModuleEntries[] = { { QtTextToSpeechModule, "texttospeech", "QtXTextToSpeech", nullptr }, { QtSerialBusModule, "serialbus", "QtXSerialBus", nullptr }, { QtWebViewModule, "webview", "QtXWebView", nullptr }, - { QtVirtualKeyboard, "virtualkeyboard", "QtXVirtualKeyboard", nullptr } + { QtVirtualKeyboard, "virtualkeyboard", "QtXVirtualKeyboard", nullptr }, + { QtShaderToolsModule, "shadertools", "QtXShaderTools", nullptr } }; DeployCore::QtModule DeployCore::getQtModule(const QString& path) { diff --git a/Deploy/deploycore.h b/Deploy/deploycore.h index 1ba87b3..831fa5b 100644 --- a/Deploy/deploycore.h +++ b/Deploy/deploycore.h @@ -182,7 +182,8 @@ public: QtVirtualKeyboard = 0x0010000000000000, // Qt6 QtOpenGLWidgetsModule = 0x0010000000000000, - QtSvgWidgetsModule = 0x0020000000000000 + QtSvgWidgetsModule = 0x0020000000000000, + QtShaderToolsModule = 0x0040000000000000 }; DeployCore() = delete; From 6b681aa2944775d75ae7138c0561a43101d8545b Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 26 May 2022 10:27:19 +0300 Subject: [PATCH 206/222] v1.5.4.15 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index cf84ca2..54ac04f 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.14 +VERSION = 1.5.4.15 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index fd6fc94..34961b5 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.14</Version> + <Version>1.5.4.15</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index 0573fdc..b9ba6de 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.14</Version> + <Version>1.5.4.15</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index f288eba..93a3590 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.14 +VERSION = 1.5.4.15 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.14 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.15 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 538d303..59141c9 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.14</Version> + <Version>1.5.4.15</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 4f9fffb..c98af63 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.14 +Version=1.5.4.15 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.4.14 +X-GNOME-Bugzilla-Version=1.5.4.15 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 988dff4..00d9806 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.14' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.15' # 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 a3223008f3299eeb256f0cdb682df7b1fd28adae Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Jun 2022 19:33:31 +0300 Subject: [PATCH 207/222] fix #699 added support of the binarycreator option --- Deploy/Distributions/qif.cpp | 8 ++++++-- Deploy/Distributions/qif.h | 1 - Deploy/deploycore.cpp | 6 ++++++ UnitTests/tst_deploytest.cpp | 32 ++++++++++++++++++++++++++++++++ md/en/Options.md | 1 + md/ru/Options.md | 1 + 6 files changed, 46 insertions(+), 3 deletions(-) diff --git a/Deploy/Distributions/qif.cpp b/Deploy/Distributions/qif.cpp index 3ab5945..32b6c6b 100644 --- a/Deploy/Distributions/qif.cpp +++ b/Deploy/Distributions/qif.cpp @@ -59,18 +59,22 @@ QList<SystemCommandData> QIF::runCmd() { SystemCommandData cmd; + QString binarycreator = QuasarAppUtils::Params::getArg("binarycreator"); + if (binarycreator.isEmpty()) binarycreator = DeployCore::findProcess(toolKitEnv().concatEnv(), base); if (binarycreator.isEmpty()) { cmd.command = base; } else { - cmd.command = binarycreator; + auto commandsList = binarycreator.split(' '); + cmd.command = commandsList.first(); + cmd.arguments = QStringList{commandsList.begin() + 1, commandsList.end()}; } auto location = DeployCore::_config->getTargetDir() + "/" + getLocation(); - cmd.arguments = QStringList{ + cmd.arguments += QStringList{ "-c", QuasarAppUtils::Params::getArg("qifConfig", location + "/config/config.xml"), "-p", diff --git a/Deploy/Distributions/qif.h b/Deploy/Distributions/qif.h index 198b88b..88908fe 100644 --- a/Deploy/Distributions/qif.h +++ b/Deploy/Distributions/qif.h @@ -51,7 +51,6 @@ private: */ bool initDefaultConfiguratuin(); - QString binarycreator; TemplateInfo generalInfo; }; diff --git a/Deploy/deploycore.cpp b/Deploy/deploycore.cpp index 0d11ddd..b13c063 100644 --- a/Deploy/deploycore.cpp +++ b/Deploy/deploycore.cpp @@ -524,6 +524,12 @@ QuasarAppUtils::OptionsDataList DeployCore::avilableOptions() { " If you omit this option, the 7z format will be used as a default. " }}); + help.insert(group, {QuasarAppUtils::OptionData{ + {"-binarycreator"}, "{binarycreator command}", + "Sets new binarycreator command.", + "cqtdeployer -bin my.exe qifw -binarycreator 'wine path/to/binarycreator.exe'" + }}); + group = "Part 7 Deb package options"; help.insert(group, {QuasarAppUtils::OptionData{ diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index ff069cf..5196c9d 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -22,6 +22,8 @@ #include <zipcompresser.h> #include <QStorageInfo> +#include <Distributions/qif.h> + #include <QMap> #include <QByteArray> #include <QDir> @@ -194,6 +196,7 @@ private slots: void testCustomPlatform(); void testQifArchiveFormat(); + void testQifBinaryCreator(); void customTest(); }; @@ -1718,6 +1721,35 @@ void deploytest::testQifArchiveFormat() { ); } +void deploytest::testQifBinaryCreator() { + TestUtils utils; + +#ifdef Q_OS_UNIX + QString bin = {TestBinDir + "TestOnlyC"}; +#else + QString bin = {TestBinDir + "TestOnlyC.exe"}; +#endif + + QuasarAppUtils::Params::parseParams({ + "-bin", bin, + "qifFromSystem", + "clear", + "qif", + "-binarycreator", "test testValue" + }); + Deploy deploy; + QVERIFY(deploy.prepare()); + FileManager fm; + QIF qif(&fm); + + auto command = qif.runCmd(); + QVERIFY(command.size() == 1); + QVERIFY(command.first().command == "test"); + QVERIFY(command.first().arguments.contains("testValue")); + + +} + void deploytest::customTest() { //runTestParams({"-confFile", "", // "qifFromSystem"}); diff --git a/md/en/Options.md b/md/en/Options.md index f6c2faa..6407e14 100644 --- a/md/en/Options.md +++ b/md/en/Options.md @@ -157,6 +157,7 @@ cqtdeployer -option1 value1 -option2 list, of, values flag1 flag2 flag3 | -qifPackages [path/to/packagesFodoler] | Sets a custom path to the packages directories. By default it is qif/packages. Note This path sets releative target folder (sets by TargetDir option). | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Sets a custom path to the resources files. By default this option is skipped. Note This path sets releative target folder (sets by TargetDir option). | | -qifArchiveFormat [7z,zip,tar,tar.gz,tar.bz2,tar.xz] | Sets the format used when packaging new component data archives. If you omit this option, the 7z format will be used as a default. | +| -binarycreator [binarycreator command] | Sets new binarycreator command. Example : cqtdeployer -bin my.exe qifw -binarycreator 'wine path/to/binarycreator.exe'| ### Deb package options diff --git a/md/ru/Options.md b/md/ru/Options.md index 095fd29..715c0c8 100644 --- a/md/ru/Options.md +++ b/md/ru/Options.md @@ -153,6 +153,7 @@ cqtdeployer -option1 value1 -option2 list,of,values flag1 flag2 flag3 | -qifPackages [path/to/packagesFodoler] | Устанавливает пользовательский путь к каталогам пакетов. По умолчанию это qif/packages. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | | -qifResources [path/to/resources1.qrc,path/to/resources2.qrc] | Устанавливает пользовательский путь к файлам ресурсов. По умолчанию эта опция пропущена. Важно путь считаеться относительным целевого католога (установленным опцией targetDir). | | -qifArchiveFormat [7z,zip,tar,tar.gz,tar.bz2,tar.xz] | Задает формат, используемый при упаковке новых архивов данных компонентов. Если вы опустите этот параметр, по умолчанию будет использоваться формат 7z. | +| -binarycreator [binarycreator command] | Установит новую команду вызова binarycreator. Пример : cqtdeployer -bin my.exe qifw -binarycreator 'wine path/to/binarycreator.exe'| ### Deb package options: From 9fb6580d0929559f5103145689e1c802e961f9ec Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Jun 2022 19:39:19 +0300 Subject: [PATCH 208/222] ref #699 "fix tests" --- UnitTests/tst_deploytest.cpp | 50 +++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/UnitTests/tst_deploytest.cpp b/UnitTests/tst_deploytest.cpp index 5196c9d..37ebdac 100644 --- a/UnitTests/tst_deploytest.cpp +++ b/UnitTests/tst_deploytest.cpp @@ -1730,22 +1730,42 @@ void deploytest::testQifBinaryCreator() { QString bin = {TestBinDir + "TestOnlyC.exe"}; #endif - QuasarAppUtils::Params::parseParams({ - "-bin", bin, - "qifFromSystem", - "clear", - "qif", - "-binarycreator", "test testValue" - }); - Deploy deploy; - QVERIFY(deploy.prepare()); - FileManager fm; - QIF qif(&fm); + { + QuasarAppUtils::Params::parseParams({ + "-bin", bin, + "qifFromSystem", + "clear", + "qif", + "-binarycreator", "test testValue" + }); + Deploy deploy; + QVERIFY(deploy.prepare()); + FileManager fm; + QIF qif(&fm); - auto command = qif.runCmd(); - QVERIFY(command.size() == 1); - QVERIFY(command.first().command == "test"); - QVERIFY(command.first().arguments.contains("testValue")); + auto command = qif.runCmd(); + QVERIFY(command.size() == 1); + QVERIFY(command.first().command == "test"); + QVERIFY(command.first().arguments.contains("testValue")); + } + + { + QuasarAppUtils::Params::parseParams({ + "-bin", bin, + "qifFromSystem", + "clear", + "qif", + "-binarycreator", "test" + }); + Deploy deploy; + QVERIFY(deploy.prepare()); + FileManager fm; + QIF qif(&fm); + + auto command = qif.runCmd(); + QVERIFY(command.size() == 1); + QVERIFY(command.first().command == "test"); + } } From 93e22c03b1e3ff6ae2c5ff8d126f551c9b93d40e Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Thu, 9 Jun 2022 20:03:22 +0300 Subject: [PATCH 209/222] v 1.5.4.16 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 54ac04f..0b32f1f 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.15 +VERSION = 1.5.4.16 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 34961b5..94c5739 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.15</Version> + <Version>1.5.4.16</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index b9ba6de..eb218db 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.15</Version> + <Version>1.5.4.16</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 93a3590..947deb5 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.15 +VERSION = 1.5.4.16 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.15 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.16 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index 59141c9..f6b1e9c 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.15</Version> + <Version>1.5.4.16</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index c98af63..262965c 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.15 +Version=1.5.4.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.4.15 +X-GNOME-Bugzilla-Version=1.5.4.16 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 00d9806..b7f3b8e 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.15' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.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 ee7c646a941728acc9a25692652417ed534c2b27 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sat, 18 Jun 2022 23:15:21 +0300 Subject: [PATCH 210/222] update qifw to 4.4 --- QIFData/QIF.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/QIF.pri b/QIFData/QIF.pri index d663dcc..6cbeed0 100644 --- a/QIFData/QIF.pri +++ b/QIFData/QIF.pri @@ -10,7 +10,7 @@ unix: PLATFORM = linux win32:PY = python unix: PY = python3 -qif.commands= $$PY $$PWD/scripts/QIF.py $$PLATFORM 4.3 $$PWD/packages/QIF/data +qif.commands= $$PY $$PWD/scripts/QIF.py $$PLATFORM 4.4 $$PWD/packages/QIF/data alias.commands= $$PY $$PWD/scripts/alias.py !isEmpty( ONLINE ) { From 72f8cf0fe38bc9d124df6e263d2d6a13bde62839 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Sun, 19 Jun 2022 12:57:35 +0300 Subject: [PATCH 211/222] v 1.5.4.17 --- Deploy/Deploy.pro | 2 +- QIFData/config/configLinux.xml | 2 +- QIFData/config/configWin.xml | 2 +- QIFData/installerCQtDeployer.pri | 4 ++-- QIFData/packages/cqtdeployer.1_5/meta/package.xml | 2 +- snap/gui/cqtdeployer.desktop | 4 ++-- snap/snapcraft.yaml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Deploy/Deploy.pro b/Deploy/Deploy.pro index 0b32f1f..7591bf9 100644 --- a/Deploy/Deploy.pro +++ b/Deploy/Deploy.pro @@ -19,7 +19,7 @@ TEMPLATE = lib DEFINES += DEPLOY_LIBRARY -VERSION = 1.5.4.16 +VERSION = 1.5.4.17 DEFINES += APP_VERSION='\\"$$VERSION\\"' diff --git a/QIFData/config/configLinux.xml b/QIFData/config/configLinux.xml index 94c5739..a114868 100644 --- a/QIFData/config/configLinux.xml +++ b/QIFData/config/configLinux.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.16</Version> + <Version>1.5.4.17</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/config/configWin.xml b/QIFData/config/configWin.xml index eb218db..adfbc53 100644 --- a/QIFData/config/configWin.xml +++ b/QIFData/config/configWin.xml @@ -3,7 +3,7 @@ <WizardDefaultWidth>640px</WizardDefaultWidth> <WizardDefaultHeight>400px</WizardDefaultHeight> <Name>CQtDeployer</Name> - <Version>1.5.4.16</Version> + <Version>1.5.4.17</Version> <Title>CQtDeployer</Title> <Publisher>QuasarApp</Publisher> <StartMenuDir>CQtDeployer</StartMenuDir> diff --git a/QIFData/installerCQtDeployer.pri b/QIFData/installerCQtDeployer.pri index 947deb5..1afb186 100644 --- a/QIFData/installerCQtDeployer.pri +++ b/QIFData/installerCQtDeployer.pri @@ -1,4 +1,4 @@ -VERSION = 1.5.4.16 +VERSION = 1.5.4.17 include($$PWD/InstallerBase.pri); mkpath( $$PWD/../Distro) @@ -25,7 +25,7 @@ BASE_DEPLOY_FLAGS_CQT = $$BASE_DEPLOY_FLAGS -targetDir $$DATA_DIR $$OUT_LIB $$OU win32:CQT_ICON = -icon $$PWD/config/icon.ico unix:CQT_ICON = -icon $$PWD/config/logo.png -BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.16 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip +BASE_DEPLOY_FLAGS_DEB = $$BASE_DEPLOY_FLAGS -targetDir $$PWD/../Distro $$OUT_LIB $$OUT_BIN deb zip -name CQtDeployer -publisher QuasarApp $$CQT_ICON -deployVersion 1.5.4.17 -debOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.deb -zipOut CQtDeployer_'$$VERSION'_Linux'_$$QMAKE_HOST.arch'.zip DEPLOY_TARGET_DEB = $$DEPLOY_TARGET,$$PWD/packages/QIF/data/QIF deploy_dep.commands += $$DEPLOYER -bin $$DEPLOY_TARGET $$BASE_DEPLOY_FLAGS_CQT diff --git a/QIFData/packages/cqtdeployer.1_5/meta/package.xml b/QIFData/packages/cqtdeployer.1_5/meta/package.xml index f6b1e9c..476df75 100644 --- a/QIFData/packages/cqtdeployer.1_5/meta/package.xml +++ b/QIFData/packages/cqtdeployer.1_5/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>CQtDeployer 1.5</DisplayName> <Description>CQtDeployer 1.5</Description> - <Version>1.5.4.16</Version> + <Version>1.5.4.17</Version> <Default>true</Default> <ForcedInstallation>false</ForcedInstallation> <Script>installscript.js</Script> diff --git a/snap/gui/cqtdeployer.desktop b/snap/gui/cqtdeployer.desktop index 262965c..9da7201 100755 --- a/snap/gui/cqtdeployer.desktop +++ b/snap/gui/cqtdeployer.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Version=1.5.4.16 +Version=1.5.4.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.4.16 +X-GNOME-Bugzilla-Version=1.5.4.17 StartupNotify=true Name[ru_RU]=CQtDeployer diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index b7f3b8e..d519e45 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -6,7 +6,7 @@ # name: cqtdeployer # you probably want to 'snapcraft register <name>' -version: '1.5.4.16' # just for humans, typically '1.2+git' or '1.3.2' +version: '1.5.4.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 5637b9853b9d591c40cad01f87f9ad7169d74b24 Mon Sep 17 00:00:00 2001 From: Marcel Petrick <mail@marcelpetrick.it> Date: Wed, 20 Jul 2022 12:35:34 +0200 Subject: [PATCH 212/222] README.md: fixed some glitches with layout --- examples/TestQMLWidgets/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/TestQMLWidgets/README.md b/examples/TestQMLWidgets/README.md index b6e9a64..9c1b75f 100644 --- a/examples/TestQMLWidgets/README.md +++ b/examples/TestQMLWidgets/README.md @@ -1,5 +1,5 @@ # This example for packing apps to snap - You need to build your project with your own qt version +You need to build your project with your own Qt version. 1. cd ~/ # go to home dir 2. snap install cqtdeployer # install cqtdeployer from snap store @@ -7,10 +7,10 @@ 4. cd Console-QtDeployer/examples/TestQMLWidgets # go to folder with example 5. /path/to/your/qmake/bin/qmake TestQMLWidgets.pro # run your qmake for this example 6. make # build example -7. cqtdeployer -bin ./build/TestQMLWidgets -qmake /path/to/your/qmake/bin/qmake -qmlDir ./ -targetDir ./distro - # run cqtdeployer for deploy example project +7. cqtdeployer -bin ./build/TestQMLWidgets -qmake /path/to/your/qmake/bin/qmake -qmlDir ./ -targetDir ./distro + # run cqtdeployer for deploy example project 8. snapcraft # create snapcraft build 9. snap install cqtdeployerexample_0.1_amd64.snap --dangerous # install this example -10.cqtdeployerexample # check -Done! +10. cqtdeployerexample # check +Done! From 54094deeba1fb00dee24d39dbce69f245107a110 Mon Sep 17 00:00:00 2001 From: Marcel Petrick <mail@marcelpetrick.it> Date: Wed, 20 Jul 2022 12:42:39 +0200 Subject: [PATCH 213/222] CONTRIBUTING,md: fixed some sentences and markdown-layout of the english section --- CONTRIBUTING.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a3bb5fa..90876a2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,9 @@ # QuassarApp operation rules + ## General rules + ### QuasarApp internal developers + * if there is no instruction to complete the task, separate you new branch from the version branch (for example v1.x). * Realize the task * At the end of the work, create a pull request to the branch from which you created the branch. @@ -8,6 +11,7 @@ Example: I made corrections for version 1.5 and created a new branch from branch v1.5, which means that I should create a pull request to branch v1.5, ### External QuasarApp Developers + * Making Fork repository. * Switch to the branch of the version in which you need to perform the correction (example of the names of the branch with the version: v1.x). * Realize the task @@ -18,26 +22,26 @@ I made corrections for version 1.5 and created a new branch from branch v1.5, wh ### Forbidden -* Using 'push force'. All conflicts need to be solved by a new commite. +* Using 'push force'. All conflicts need to be solved by a new commit. * Push code directly to master. -* Break the code design rules. If some aspect is not described, you need to write in the same style as it was written before you. +* Break the code design rules. If some aspect is not described, you need to write in the same style as it was written before your change. * Move the code for no particular reason. - ## Making Pull Request The content of the pull request must include: -* The number of the task that solves (if performed according to the task) +* The number of the task that is solved (if performed according to the task) * A complete description of everything that was done in the task. * In the case when a pull creation is created and you still work on the task, change the header of the pool request by adding a WIP tag to the beginning (example [WIP] MyTask) -* Pull Request must always be assigned to the branch from which you separated. +* Pull Request must always be assigned to the branch from which you branched (started to work). ## Making Tasks -If necessary, assign a task to someone + +If necessary, assign a task to someone. You must: -* Create relevant discussion on github, selected repository. +* Create relevant discussion on github for the specific repository. * Completely describe the problem or task. -* If you have a solution to the problem fully describe what and how to do. +* If you have a solution to the problem, then describe in detail what and how it should be done. ## Code Guideline From 21493ff65655754102baba4f7d2b747864e3affe Mon Sep 17 00:00:00 2001 From: Marcel Petrick <mail@marcelpetrick.it> Date: Wed, 20 Jul 2022 12:44:20 +0200 Subject: [PATCH 214/222] main.cpp: fixed typo --- CQtDeployer/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CQtDeployer/main.cpp b/CQtDeployer/main.cpp index 04bd2df..cc2425a 100644 --- a/CQtDeployer/main.cpp +++ b/CQtDeployer/main.cpp @@ -22,7 +22,7 @@ int main(int argc, char *argv[]) { if (!QuasarAppUtils::Params::parseParams(argc, argv, DeployCore::avilableOptions())) { - QuasarAppUtils::Params::log("Wrong parameters. Please use the 'help' of 'h' option for show help page.", QuasarAppUtils::Warning); + QuasarAppUtils::Params::log("Wrong parameters. Please use the 'help' of 'h' option to show the help page.", QuasarAppUtils::Warning); exit(4); } From 7ed2c47d842e8e2739ed3a54c02305b67712467c Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 25 Jul 2022 09:52:31 +0300 Subject: [PATCH 215/222] Update package.xml --- QIFData/packages/QIF/meta/package.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/packages/QIF/meta/package.xml b/QIFData/packages/QIF/meta/package.xml index 159a13b..4ecbb57 100644 --- a/QIFData/packages/QIF/meta/package.xml +++ b/QIFData/packages/QIF/meta/package.xml @@ -2,7 +2,7 @@ <Package> <DisplayName>Qt Installer Framework</DisplayName> <Description>Qt Installer Framework for CQtDeployer</Description> - <Version>4.3.0.0</Version> + <Version>4.4.0.0</Version> <ReleaseDate>2022-03-03</ReleaseDate> <Default>true</Default> </Package> From 27d626f3f5b156d16620de5a74ef1a2558e471e8 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Mon, 25 Jul 2022 09:57:09 +0300 Subject: [PATCH 216/222] Update package.xml --- QIFData/packages/QIF/meta/package.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QIFData/packages/QIF/meta/package.xml b/QIFData/packages/QIF/meta/package.xml index 4ecbb57..f3b3f05 100644 --- a/QIFData/packages/QIF/meta/package.xml +++ b/QIFData/packages/QIF/meta/package.xml @@ -3,6 +3,6 @@ <DisplayName>Qt Installer Framework</DisplayName> <Description>Qt Installer Framework for CQtDeployer</Description> <Version>4.4.0.0</Version> - <ReleaseDate>2022-03-03</ReleaseDate> + <ReleaseDate>2022-07-25</ReleaseDate> <Default>true</Default> </Package> From ad1d9845abdf4d4b8fa846adedb1a93f1d67b989 Mon Sep 17 00:00:00 2001 From: EndrII <EndrIIMail@gmail.com> Date: Mon, 8 Aug 2022 18:34:15 +0300 Subject: [PATCH 217/222] fix build on qt 5.9 --- Deploy/Distributions/qif.cpp | 2 +- Deploy/extracter.cpp | 1 - QIFData/InstallerBase.pri | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Deploy/Distributions/qif.cpp b/Deploy/Distributions/qif.cpp index 32b6c6b..f53df58 100644 --- a/Deploy/Distributions/qif.cpp +++ b/Deploy/Distributions/qif.cpp @@ -69,7 +69,7 @@ QList<SystemCommandData> QIF::runCmd() { } else { auto commandsList = binarycreator.split(' '); cmd.command = commandsList.first(); - cmd.arguments = QStringList{commandsList.begin() + 1, commandsList.end()}; + cmd.arguments = commandsList.mid(1,-1); } auto location = DeployCore::_config->getTargetDir() + "/" + getLocation(); diff --git a/Deploy/extracter.cpp b/Deploy/extracter.cpp index c844c2b..ac61710 100644 --- a/Deploy/extracter.cpp +++ b/Deploy/extracter.cpp @@ -10,7 +10,6 @@ #include "pluginsparser.h" #include "configparser.h" #include "metafilemanager.h" -#include "pathutils.h" #include <QCoreApplication> #include <QDebug> #include <QDir> diff --git a/QIFData/InstallerBase.pri b/QIFData/InstallerBase.pri index 75e20e7..fbd60c6 100644 --- a/QIFData/InstallerBase.pri +++ b/QIFData/InstallerBase.pri @@ -30,7 +30,7 @@ message(DEPLOYER = $$DEPLOYER) BINARY_LIST REPO_LIST -sopprted_versions = 4.1 4.0 3.2 3.1 3.0 +sopprted_versions = 4.5 4.4 4.3 4.2 4.1 4.0 3.2 3.1 3.0 for(val, sopprted_versions) { exists( $$QT_DIR/../../../Tools/QtInstallerFramework/$$val/bin/ ) { @@ -41,7 +41,7 @@ for(val, sopprted_versions) { } isEmpty (BINARY_LIST) { - warning( "QtInstallerFramework not found! use binaries from PATH" ) + warning( "QtInstallerFramework not found! use binaries from PATH." ) EXEC=binarycreator REPOGEN=repogen From 4f7d95fd3e562902538e884eebbd77bb4457cb9c Mon Sep 17 00:00:00 2001 From: Mikhail Belov <m.belov@skb.rtp> Date: Thu, 25 Aug 2022 10:23:57 +0300 Subject: [PATCH 218/222] fixed wrong suffix check --- Deploy/dependenciesscanner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/dependenciesscanner.cpp b/Deploy/dependenciesscanner.cpp index 996276f..0644e00 100644 --- a/Deploy/dependenciesscanner.cpp +++ b/Deploy/dependenciesscanner.cpp @@ -28,8 +28,8 @@ PrivateScaner DependenciesScanner::getScaner(const QString &lib) const { auto sufix = info.completeSuffix(); - if (sufix.compare("dll", Qt::CaseSensitive) == 0 || - sufix.compare("exe", Qt::CaseSensitive) == 0) { + if (sufix.contains("dll", Qt::CaseSensitive) == 0 || + sufix.contains("exe", Qt::CaseSensitive) == 0) { return PrivateScaner::PE; } else if (sufix.isEmpty() || sufix.contains("so", Qt::CaseSensitive)) { return PrivateScaner::ELF; From 1a99dcf9d1f4253d3650bc340c19ffac92df2ff3 Mon Sep 17 00:00:00 2001 From: hadugen <30577263+hadugen@users.noreply.github.com> Date: Thu, 25 Aug 2022 10:32:50 +0300 Subject: [PATCH 219/222] Update Deploy/dependenciesscanner.cpp Co-authored-by: Andrei Yankovich <EndrIIMail@gmail.com> --- Deploy/dependenciesscanner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deploy/dependenciesscanner.cpp b/Deploy/dependenciesscanner.cpp index 0644e00..6493769 100644 --- a/Deploy/dependenciesscanner.cpp +++ b/Deploy/dependenciesscanner.cpp @@ -28,8 +28,8 @@ PrivateScaner DependenciesScanner::getScaner(const QString &lib) const { auto sufix = info.completeSuffix(); - if (sufix.contains("dll", Qt::CaseSensitive) == 0 || - sufix.contains("exe", Qt::CaseSensitive) == 0) { + if (sufix.contains("dll", Qt::CaseSensitive) || + sufix.contains("exe", Qt::CaseSensitive)) { return PrivateScaner::PE; } else if (sufix.isEmpty() || sufix.contains("so", Qt::CaseSensitive)) { return PrivateScaner::ELF; From 21ef97249f7e17362239d80fac0e6a040fe0a258 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Wed, 5 Oct 2022 10:52:08 +0300 Subject: [PATCH 220/222] Update README.md --- README.md | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 16e3d59..b402fc2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,21 @@ **************************** ## Support the project -If you like what we do and it benefits you, you can support the project on the official page [QuasarApp on Patreon](https://www.patreon.com/QuasarApp) + + +We have a cqtdeployer extended support [subscription](https://www.patreon.com/QuasarApp) +on the Patrion service. +* We'll help you solve your deployment issues personality. +* All your tasks needed to solve your issues will have top priority. + +Also, if you just want to support the project, you can subscribe to the general subscription plan on patrion + +If you can't use Patreon, you can send **bitcoin** to support us and our work. +If you want to get support for bitcoin payment, write to me in [telegramm](https://t.me/Endrll) + +## bitcoin address +**bc1q3jnx7pleh7rxg6nm6navvuwwpd9znxvd4lye62** + ## What is CQtDeployer @@ -124,14 +138,6 @@ If you would like to use bitcoins to support us, you can transfer coins to this <p align="center">bitcoin: bc1qzuymq7jc9q2x04wcwstr45tu8klm46zfl20wyp</p> - -## Our patrons list: - -### Personal Membership Patrons: - -- [GETFLOW.TECH](https://getflow.tech/) -- Semih Ufuk Güler - *** From ad6490c57f7ee29171a02e2cf4852ba94746a48f Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Wed, 5 Oct 2022 10:56:05 +0300 Subject: [PATCH 221/222] Update README.md --- README.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/README.md b/README.md index b402fc2..475cbe9 100644 --- a/README.md +++ b/README.md @@ -122,25 +122,6 @@ See building and installation instructions on wiki [page](md/en/Build-and-Instal *** -<p align="center"><img src="res/Credits.jpg" alt="Credits"></p> - - -Join the development fund and support QuasarApp to help us develop of our projects. - -<a href="https://www.patreon.com/bePatron?u=9304737"><img src="https://img.shields.io/badge/ become a patron-red?&style=for-the-badge&logo=patreon&logoColor=white" height=30 width=180></a> - - -If you would like to use bitcoins to support us, you can transfer coins to this address. If you want to be included in the Patrons list, e-mail me at QuasarApp@yandex.by. - -**Note**: Your message should be signed with the address of the Bitcoin wallet which was used to make the payment. - -<p align="center"><img src="res/qr.png" alt="qrcode"></p> - -<p align="center">bitcoin: bc1qzuymq7jc9q2x04wcwstr45tu8klm46zfl20wyp</p> - -*** - - ## Thanks * many thanks [Trail of Bits](https://github.com/trailofbits) for their library [pe-parser](https://github.com/trailofbits/pe-parse). Everything works perfectly. From aa4f05270ae42decea6a3db6f13aa9651c3399a4 Mon Sep 17 00:00:00 2001 From: Andrei Yankovich <EndrIIMail@gmail.com> Date: Wed, 5 Oct 2022 11:01:38 +0300 Subject: [PATCH 222/222] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 475cbe9..50435cc 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ If you can't use Patreon, you can send **bitcoin** to support us and our work. If you want to get support for bitcoin payment, write to me in [telegramm](https://t.me/Endrll) ## bitcoin address + + **bc1q3jnx7pleh7rxg6nm6navvuwwpd9znxvd4lye62**