Andrei YankovichMay 24, 2021, 10:10 a.m.

Release of the C++/Qt and QML application deployment utility CQtDeployer v1.5.0

Release of the C++/Qt and QML application deployment utility CQtDeployer v1.5.0

Logo

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.

Complete list of all changes

CQtDeployer 1.5.0

New features

  • Added new theme of qif installer "quasarDark".
  • Added support of work with custom template for qif option.
  • Added support of debian packages.
  • Added support of targets icons. now the icon option work with targets but not packages.
  • Added support of the control custom translation files.
  • Added support the deploy nonexecutable data. (extraData option)
  • Added envirement variables for deployed applications.
  • Added support of the generate deb packages.
  • Added support of the generate zip arrhives.
  • Added support create a qif installer using custom template
  • Added command for init default qif and deb templates (getDefaulttemplate)
  • Added support of import custom launch scripts
  • Added support of md5 packages hashes
  • Added support of Qt6.1

Fixes

  • Fixed stability for the deploySystem option on windows
  • Fixed verbose log.
  • Fixed general output log.
  • Fixed typo errors in log.
  • Fixed cross-deployment for ARM platform .
  • Fixed deploy Qt6 qml
  • Fixed powershell commands on Windows
  • bug fixes and improvements.

New Envirement Variables

  • CQT_RUN_FILE - This variable contains path to the run script of the using application.
  • CQT_PKG_ROOT - This variable contains path to root of the current package.

New parameters

  • zip - create a ZIP archive for deployable programm
  • deb - Create the deb package for deployable programm
  • homepage - Sets the homepage url for a package
  • 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.
  • tr - Adds qm files into the translations folder.
  • extraData - Adds the extra files or directories like a target. The selected directory will be copy to the extraDataOut location with save own structure.
  • extraDataOut - Sets path to extra data files out directory.
  • prefix - Sets the prefix for the package relatively a target directory
  • homePage - Sets the homepage url for a package
  • binPrefix - Sets prefix for bin option.
  • noHashSum - Disables campute hashes of packages

Deprecated and removed options

  • deploySystem-with-libc - instead of this option use the deploySystem option.
  • allQmlDependes - instead of this option use the qmlDir option.

Detailed analysis of the most interesting changes.

Debian pacakges

This feature is very conveniently if you want to create server application.
For example i need to create simple server for my simple game.
And my steps: * build my application in the release mode. * run cqtdeployer with deb option.

cqtdeployer -bin mySimpleServer deb -qmake ~/Qt/5.15.2/gcc_64/bin/qmake

The SimpleServer depends only on qt, so it was enough for me to specify only the path to qmake for my application.

It is all!!!. And i get the workly deb package.
By Default CQtDeployer create an independet debian packages.

Zip arrhives

This feature allow compress your distribution pacakges to zip arrhive.

Example:

cqtdeployer -bin mySimpleServer zip -qmake ~/Qt/5.15.2/gcc_64/bin/qmake

Custom Qt Installer Framework tempaltes.

Now you can override default template of the cqtdeployer. To do this, you must pass the path to your template to the qif parameter.

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:

"targetPackage": [
    [
        "myCustomInstaller",
        "tar1"
    ]
],
.
├── config
│ ├── config.xml
│ └── style.qss
└── packages
    └── myCustomInstaller
        └── meta
            ├── installscript.qs
            └── package.xml

4 directories, 4 files

If the folder names do not match the package names then CQtDeployer will use the standard QIF package.

If you have only one package then you can use the name option for set name the application.

cqtdeployer ... -qif /path/to/my/custom/qif/template -name myCustomInstaller

Do not forget to rename the your package folder to the packaga name of the name option.

.
├── config
│   ├── config.xml
│   └── style.qss
└── packages
    └── myCustomInstaller  << "This is folder of the your package"
        └── meta
            ├── installscript.qs
            └── package.xml

4 directories, 4 files

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
- company blog
e
  • #
  • Aug. 21, 2021, 3:16 p.m.
  • (edited)

Привет.
Подскажите пожалуйста решения двух проблем:
1. Не могу создать установщик с помощью флага qif. просиходит ошибка, но текста ошибки нет. поэтому не знаю куда копать. текст что упаковка не удалась я гуглил, находил только сами исходники деплоера.

"c:\Program Files (x86)\CQtDeployer\1.5\cqtdeployer.bat" -bin test.exe -qmake "c:\Qt\Qt5.6.3\5.6.3\mingw49_32\bin\qmake.exe" qif

ошибка на скрине


  1. В описании новшевств есть флаг tr, но он без параметров не работает. Я предполагал что он скопирует все имеющиеся переводы, но их нужно перечислись при использовании -tr.
    Это так и должно быть, или я что-то делаю не так, и можно сделать так, чтобы деплойер сам забирал все файлы перевода без перечисления?
    (и еще баг форума чтоли, я пишу этот пункт под номером "2.", но после отправки он превращается в "1.")

На данный момент Qt Installer Framework не поддерживает Windows 7
смотрите баг #2224

e
  • #
  • Aug. 28, 2021, 3:49 p.m.

Благодарю.
Действительно, подменил файлы от версии 4.0, и все заработало)

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Fornex

Let me recommend you a great European Fornex hosting.

Fornex has proven itself to be a stable host over the years.

For Django projects I recommend VPS hosting

Following the link you will receive a 5% discount on shared hosting services, dedicated servers, VPS and VPN

View Hosting
Share on social networks
Donate

The EVILEG project has switched to a non-commercial basis and will develop solely on the enthusiasm of the site creator, the enthusiasm of users, donations and the hosting referral system

Thank you for your support

Available ways to support the project

PayPal

PatreonYandex.MoneyMore
ni

C++ - Test 001. The first program and data types

  • Result:33points,
  • Rating points-10
ni

C++ - Тест 003. Условия и циклы

  • Result:35points,
  • Rating points-10
AK

C++ - Test 005. Structures and Classes

  • Result:66points,
  • Rating points-1
Popular publications in the last 90 Days
Last comments

Qt/C++ - Lesson 027. Polymorphism in Qt by the example of geometric shapes in QGraphicsScene

Ну не видя вашего кода, сказать, где у вас ошибка невозможно. А что касается перетаскивания и разных манипуляций, то можете распотрошить код векторного редактора из этой статьи Qt/C++…
K
  • Kolja
  • May 22, 2022, 6:32 a.m.

Qt/C++ - Lesson 027. Polymorphism in Qt by the example of geometric shapes in QGraphicsScene

Крутой урок! Но как только захотел добавить функцию выделение объекта ( подразумевается перемещение и изменение размера) ничего не получается . Читал что нужно включить флаги ItemIsSelected и It…

Django - Tutorial 023. Like Dislike system using GenericForeignKey

Недостаток GenericForeignKey в том, что они достаточно плохо оптимизируются, поэтому я решил это с помощью кэширования. Собственно говоря, эти проблемы и послужили возникновению специальног…

PyQt5 - Tutorial 009. Using QThread with MoveToThread

Попробуйте принудительно вызывать сигнал started у потока. Это является потокобезопасным. И в данном случае вызов сигнала started должно запустить выполнения метода run, а потом продолжить выпол…
O
  • Otaku
  • May 16, 2022, 11:33 a.m.

PyQt5 - Tutorial 009. Using QThread with MoveToThread

Решение хорошее, сейчас так и делаю. Но все равно остается открытым вопрос подвязки ивента из вне. Проще говоря, не хочется гонять вечный цикл в run, постоянго проверяя изменения очереди (пусть …
Now discuss on the forum
AB

Sorting the added QML elements in the ListModel

I am writing an alarm clock in QML, I am required to sort the alarms in ascending order (depending on the date or time (if there are several alarms on the same day). I've done the sorting …
EK

HTTP server на Qt

Давно было, уже не помню как, но разрулил. Спасибо :)

Django MPTT вывод дерева категорий

Здраствуйте похоже я так и не понял всю суть Django-MPTT батарейки. Так как не могу решить простую задачу с выводом категорий. По этому обращаюсь к вам за помощью. Начну с начала. Изначальн…
AC

QScrollArea и автоматическая прокрутка при обходе элементов формы

Отвечаю сам на свой вопрос. Кому интересно: к примеру в scrollArea_organs_internal есть элементы QLineEdit = spleen_parenchyma (при обходе элементов формы д…
d
  • danya
  • April 26, 2022, 8:13 a.m.

Как вставить видео в QT6 6.3.0?

Я абсолютный новичок в Qt. Столкнулся с проблемой вставки видео. В прошлых версиях надо было подключть к про файлу multimedia. Сейчас пишет ошибку, что multimedia нет. Можете на просто…
About
Services
© EVILEG 2015-2022
Recommend hosting TIMEWEB