4
1
mirror of https://github.com/QuasarApp/CQtDeployer.git synced 2025-05-14 10:29:36 +00:00

177 lines
4.1 KiB
Markdown

# Qt Installer Framwork
General rules for using Qt Installer Framwork
### What is Qt Installer Framwork
The **Qt Installer Framework** (QIF) provides a set of tools and utilities to create installers for the supported desktop Qt platforms: Linux, Microsoft Windows, and OS X.
In **CQtDeployer** QIF availabel in qif option.
### How to use qif option
The qif option invoke with path to custo qt installer template or with default installer template.
#### For example:
```bash
cqtdeployer ... qif
```
Where:
* **...** - is list of other options.
* **qif** - option for use qt installer framework with default template.
By default, cqtdeployer will create an installation file with one package in which your entire distribution kit will lie.
If you want to configure it, you should use [Controll of packages options](Options.md)
To create a new package, use the -targetPackage [package; tar1] option
Where:
* **package** - it is package name
* **tar1** - it is name of the target that should be included in this package.
Or you can describe packages in [configuration file](DeployConfigFile.md)
```json
{
"targetPackage": [
[
"package",
"tar1"
]
],
}
```
# Custom Template for QIF
Starting with CQtDeployer Version 1.5 you can use your own installer template. To do this, you must pass the path to your template to the qif parameter.
```bash
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:
```json
"targetPackage": [
[
"myCustomInstaller",
"tar1"
]
],
```
```bash
.
├── 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.
```bash
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.
```bash
.
├── config
│ ├── config.xml
│ └── style.qss
└── packages
└── myCustomInstaller << "This is folder of the your package"
└── meta
├── installscript.qs
└── package.xml
4 directories, 4 files
```
## Initialization of the qifw template
For initialize default templates you can use the getDefaultTemplate option.
The getDefaultTemplate option extract default template of the cqtdeployer. This is can be very convinion if you want override default behavior of the installer or anothe distribution package.
### Example
### Getting default qt installer framwork template.
```bash
cqtdeployer getDefaultTemplate qif
```
### Note
CQtDeployer will skip create a packages directory for the template because this commmnad do not contains any deploying data.
If you want to prepare template with packages configurations then you should add deployed data to your command or your config.json file using bin or extraData options.
If you create multi pacakges distribution then you need to configure your packages in your deploying commnad.
#### Example:
Extracting template with pacakges:
```bash
cqtdeployer getDefaultTemplate qif -bin myExecutable
```
Extracting template for multi packages distribution
```bash
cqtdeployer getDefaultTemplate qif -bin myExecutable1,myExecutable2 -targetPackage p1;myExecutable1,p2;myExecutable2
```
You also can use the config file for configure templates.
Config.json
```json
{
"qif": true,
"bin": [
"myExecutable1",
"myExecutable2"
],
"targetPackage": [
["p1", "myExecutable1"],
["p2", "myExecutable2"]
]
}
```
Run CQtDeployer for generate template:
```bash
cqtdeployer -confFile Config.json getDefaultTemplate
```