Modify Extract Installer Example
Using the extract archive hook in a component script to modify the target path.

Modify Extract Installer illustrates how to overwrite the component.createOperationsForArchive() function to be able to install a component to a modified path.
Configuring the Example Installer
The installer configuration file, config.xml, in the config directory specifies the text and default values used in the installer:
- The
<Name>element sets the application name and adds it to the page name and introduction text. - The
<Version>element sets the application version number. - The
<Title>element sets the installer name and displays it on the title bar. - The
<Publisher>element sets the publisher of the software (as shown in the Windows Control Panel, for example). - The
<StartMenuDir>element sets the name of the default program group for the product in the Windows Start menu. - The
<TargetDir>element sets the default target directory location to be within theIfwExamplesdirectory in the home directory of the current user (because it uses the pre-existing variable,@HomeDir@, as part of the value). For more information, see Predefined Variables.
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>Modify Extract Installer Example</Name>
<Version>1.0.0</Version>
<Title>Modify Extract Installer Example</Title>
<Publisher>Qt-Project</Publisher>
<StartMenuDir>Qt IFW Examples</StartMenuDir>
<TargetDir>@HomeDir@/IfwExamples/modifyextract</TargetDir>
</Installer>
Creating the Example Package Information File
The installer package information file, package.xml, in the meta directory specifies the components that are available for installation:
- The
<DisplayName>element sets the human-readable name of the component. - The
<Description>element sets the human-readable description of the component. - The
<Version>element sets the version number of the component. - The
<ReleaseDate>element sets the date of release for this component version.
- The
<Default>element is set totrueto preselect the component in the installer. - The
<Script>element specifies the file name of the JavaScript file that is loaded to perform operations.
<?xml version="1.0"?>
<Package>
<DisplayName>Modify extract operation</DisplayName>
<Description>A component that uses a hook to modify the extract operation.</Description>
<Version>1.0.1</Version>
<ReleaseDate>2014-12-19</ReleaseDate>
<Default>true</Default>
<Script>installscript.js</Script>
</Package>
Modifying Target Path
In installscript.js, we overwrite the default component.createOperationsForArchive() implementation to be able to register an Extract operation with a custom argument:
Component.prototype.createOperationsForArchive = function(archive) { component.addOperation("Extract", archive, "@TargetDir@/extractToAnotherPath"); }
Generating the Example Installer
To create the example installer, switch to the example source directory on the command line and enter the following command:
- On Windows:
..\..\bin\binarycreator.exe -c config\config.xml -p packages installer.exe
- On Linux or macOS:
../../bin/binarycreator -c config/config.xml -p packages installer
This creates the installer to the current directory.
Files:
- modifyextract/config/config.xml
- modifyextract/modifyextract.pro
- modifyextract/packages/org.qtproject.ifw.example.modifyextract/data/my_content/test.txt
- modifyextract/packages/org.qtproject.ifw.example.modifyextract/meta/installscript.js
- modifyextract/packages/org.qtproject.ifw.example.modifyextract/meta/package.xml