[Interest] Creating Installer for custom Build of Qt

Michael Jackson imikejackson at gmail.com
Fri Apr 12 17:40:20 CEST 2013

On Apr 11, 2013, at 11:25 AM, Jenssen Tim wrote:

>> This has changed since the Qt 4 days then. All of this is very helpful BUT is the same information available for Qt 4? We use Qt 4.8.4 and are not ready to move to Qt 5 yet.
>> Since I am not building WebKit looks like my life might actually be easier making the installer.
> The installer framework was used for Qt4 at Nokia times (Nokia QtSDK) so it should work.
> Just download the installer framework and install it: http://releases.qt-project.org/qt-installer-framework/1.3.0/
> Compile your Qt how you need it. (remove unneeded files '*.prl', '*.app', '*.exp', '*.ilk', '*.pdb', *.obj, debugging inside Qt is not working anyway)
> Then
> create a directory "my_qt" and inside that:
> directory "meta" and inside that 
> file package.xml:
> <?xml version="1.0"?>
> <Package>
>    <DisplayName>My Qt</DisplayName>
>    <Description>my special Qt for you</Description>
>    <Version>4.8.4-1</Version>
>    <ReleaseDate>2013-04-11</ReleaseDate>
>    <Script>installscript.js</Script>
> </Package>
> file installscript.js:
> // constructor
> function Component()
> {
> }
> Component.prototype.createOperations = function()
> {
>    component.createOperations();
>    var patchMode;
>    if (installer.value("os") == "win")
>        patchMode = "windows";
>    if (installer.value("os") == "x11")
>        patchMode = "linux";
>    if(installer.value("os") == "mac")
>        patchMode = "mac";
>    // last empty argument is a workaround to enable Qt4 patching,
>    // it is fixed after the last release of the ifw (Mea culpa!)
>    component.addOperation("QtPatch", patchMode, "@TargetDir@/my_special_qt", "");
> }
> Then create a "data" directory on the same level like the meta one and inside that you need to copy your Qt directory "my_special_qt".
> Then you need a installer config.xml somewhere ... using the one from the ifw example is ok:
> QtIFW-1.3.0/bin/binarycreator --offline-only -t QtIFW-1.3.0/bin/installerbase -c QtIFW-1.3.0/examples/tutorial/config/config.xml -p <path_where_my_qt_is> -i my_qt my_special_qt_installer
> Ready is your own simple qt installer.<my_qt.7z>

This is great. I am trying to work through your instructions and I have what I think is the correct directory setup and the arguments are pointing to everything but early on in the process I get this error:

        Found configuration file:  "C:/Users/mjackson/Desktop/DREAM3D_SDK_x64_VS
        Found configuration file:  "C:/Users/mjackson/Desktop/DREAM3D_SDK_x64_VS
create Error-Exception: "Could not copy C:/Users/mjackson/Desktop/DREAM3D_SDK_x6
caught exception: Could not copy C:/Users/mjackson/Desktop/DREAM3D_SDK_x64_VS201

I have plenty of room on the drive. I have permissions on the files?  Here is my command line invocation:

C:\Users\mjackson\Desktop>binarycreator --offline-only -t %QTIFW_INSTALL%\bin\installerbase -c DREAM3D_SDK_x64_VS2010_SP1/config.xml -v -i DREAM3D_SDK_x64_VS2010_SP1 -p DREAM3D_SDK_x64_VS2010_SP1\data\Qt-4.8.4 --ignore-translations DREAM3D_SDK_x64_VS2010_SP1.exe

I have QtIFW installed into C:/Applications/QtIFW-1.3.0 and I have the environment variable QTIFW_INSTALL set to that directory. In addition I have added %QTIFW_INSTALL%/bin to my path.

Any ideas? This is on Windows 7 x64 running inside a parallels VM.

Mike Jackson

More information about the Interest mailing list