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 specifies the application name that is added to the page name and introduction text.
  • The <Version> element specifies the application version number.
  • The <Title> element specifies the installer name displayed on the title bar.
  • The <Publisher> element specifies the publisher of the software (as shown in the Windows Control Panel, for example).
  • The <StartMenuDir> element specifies the name of the default program group for the product in the Windows Start menu.
  • The <TargetDir> element specifies that the default target directory is located in the IfwExamples directory in the home directory of the current user (because the predefined variable@HomeDir@ is used as a 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 specifies the human-readable name of the component.
  • The <Description> element specifies the human-readable description of the component.
  • The <Version> element specifies the version number of the component.
  • The <ReleaseDate> element specifies the date when this component version was released.
  • The <Default> element is set to true to 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
    

The installer is created in the current directory.

Files: