[Development] [QtIFW] CPack IFW Generator

Konstantin Podsvirov konstantin at podsvirov.pro
Thu Oct 16 07:26:52 CEST 2014


Hello dear developers!

Yesterday I wrote a letter with the title "[QtIFW] CPack IFW Generator" and was told by two people.
(http://lists.qt-project.org/pipermail/development/2014-October/018800.html)

15.10.2014, 13:47, "Konstantin Podsvirov" <konstantin at podsvirov.pro>:
> The next version of CMake will contain the new CPack IFW generator.

> CPack IFW generator generates installers using QtIFW.

> You can try this using the latest version for developers.
>
> http://www.cmake.org/files/dev

> I want information about this technology appeared in the documentation for Qt, Qt Creator, and perhaps in
> Qt Installer Framework.

15.10.2014, 16:33, "Miettinen Riitta-Leena" <Riitta-Leena.Miettinen at theqtcompany.com>:

> I'm responsible for writing documentation for the Qt tools (including Qt Creator and Qt Installer Framework)
> and can help you write documentation for the CPack IFW generator.

Thank you! This is what I need.

I have a Gerrit account (user: kot). But I haven't contributed in Qt code.
What sequence of actions? What instruction I to read?

> I can also create a patch with boilerplate topics or sections where you can add the information. For planning purposes, do you
> have information about the generator somewhere that I could look at?

A working version of CMake is not accompanied by a public documentation, but on my server I put
and periodically update the version for developers. Here is the link:

http://ifw.podsvirov.pro/cmake/doc/sphinx

Information on IFW generator here:

http://ifw.podsvirov.pro/cmake/doc/sphinx/module/CPackIFW.html

(there is a small example of use in the creation of the installer)

Working with IFW generator in CMake is no different from working with other generators.

On cmake.org/Wiki there is a good example about creating installers on the basis of the components is that the IFW generator does best:

http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack

The example is complete, but slightly outdated. Not all variable must be set separately. Can 
to use a more convenient macros.

15.10.2014, 16:48, "Koehne Kai" <Kai.Koehne at theqtcompany.com>:
> Very nice :)

> It would certainly be nice to link to this feature from the Qt Installer Framework documentation. For Qt Creator / Qt documentation, it's not clear to me in which depth this should be documented, since the functionality is not really specific to developers using Qt: People might as well use one of the other backends available in cpack, right?

All right. CPack contains a dozen generators. Each has its own specifics. But IFW generator allows you to create
graphical installer, which looks the same for all major desktop!
Supports online and offline modes and the ability to upgrade components!

> To rephrase: Are there strong reasons apps using Qt + cmake should prefer the new ifw backend, compared to the other backends available?

For platforms that have built the package managers prefer to use it.

But in the General case, the question of the deployment of the application is always up to date.

I think people who use Qt I want the installers as Qt :-)

But to create them is not so simple.

The deployment of the applications described here:

http://qt-project.org/doc/qt-5/deployment.html

And specific to each platform. There QTDIR/bin/xxxdeployqt applications which create
the correct folder... it's not so easy as expected.

I created IFW generator driven by the documentation:

http://qt-project.org/doc/qtinstallerframework-1.5/index.html

There are all clearly, but to do all this by hand is very tedious. My solution is a generator.

CMake provides a General model of application development, where all States: applications, libraries, plugins and different files.
Clearly set out what and where to install.
One has only to add a generator that does what is described in the documentation QtIFW and get ready installer :-)

But the idea to deploy Qt applications:
If you create for each platform online repository with distributed components from Qt (without headers, file linking, and debugging), you can create installers that contain only user-developed
modules and refer to Qt components. In other words create an environment to distribute applications.

> Also, what's the time frame for CMake version 3.1.0 ? I don't want to add links to a yet unreleased feature ...

I contacted the developer CMake, but still have not received a reply.
I think that the output of CMake version 3.1 will not require much time...

(Sorry for my poor English)

Best regards,
Konstantin Podsvirov



More information about the Development mailing list