To create a package the program mkpkg can be used. The set of files to put into the package should be in the desired location in the $(PackagesDir)
directory. The mkpkg command should be run with $(PackagesDir)
as the working directory and all files to go into the package must be referred to using relative paths. A package must have a package description file that is placed in the $(PackagesDir)/packages
directory. The package description file name must end with _package.xml
. If a package is to create entries in the new project wizard then it must have a file name project_templates.xml
.
For example, a package for the mythical FX150 processor would supply the following files:
targets/FX150/project_templates.xml
. The format of the project templates file is described in Project Templates file format.$(PackagesDir)
-relative files that define the functionality of the package.packages/FX150_package.xml
. The format of the package description file is described in Package Description file format.The package file FX150.hzq
would be created using the following command line:
mkpkg -c packages/FX150.hzq targets/FX150/project_templates.xml packages/FX150_package.xml
You can exclude specific files or directories from being added to a package using the -exclude option:
mkpkg -c packages/FX150.hzq targets/FX150 -exclude targets/FX150/excluded\file.txt -exclude targets/FX150/excluded_directory packages/FX150_package.xml
You can list the contents of the package using the -t option:
mkpkg -t packages/FX150.hzq
You can remove an entry from a package using the -d option:
mkpkg -d packages/FX150.hzq -d filename
You can add or replace a file into an existing package using the -r option:
mkpkg -r packages/FX150.hzq -r filename
You can extract files from an existing package using the -x option:
mkpkg -x packages/FX150.hzq output_directory
You can automate the package creation process using a Combining project type.
$(PackagesDir)
$(PackagesDir)/packages/mypackage.hzq
$(StudioDir)/bin/mkpkg -c $(CombiningOutputFilePath) $(CombiningRelInputPaths)
When a package is installed, the files in the package are copied into the desired $(PackagesDir)
-relative locations. When a file is copied into the $(PackagesDir)/packages
directory and its filename ends with _package.xml
the file $(PackagesDir)/packages/installed_packages.xml
is updated with an entry:
<include filename="FX150_package.xml" />
During development of a package you can manually edit this file. The same applies to the file $(PackagesDir)/targets/project_templates.xml
which will contain a reference to your project_templates.xml
file.
mkpkg
[options] package_filename file1 file2 `
Option | Description |
---|---|
-c |
Create a new package. |
-compress level |
Change compression level (0 for none, 9 for maximum). |
-d |
Remove files from a package. |
-exclude path |
Exclude path when adding files to a package. |
-f |
Output files to stdout. |
-overwrite |
Overwrite existing files. |
-no-date |
Do not add date attribute to package. |
-r |
Replace files in a package. |
-readonly |
Force all files to have read only attribute. |
-set-attr attribute=value |
Set package attribute to value. |
-sub-arch-endian |
Create architecture and endian specific sub packages. |
-sub-arch-endian-compatiblity |
Create architecture and endian specific sub packages including compatibility packages for versions of the IDE that don't have $(LibEndian) macro. |
-sub-base-type type |
Specify the type description of the base package. |
-sub-no-description-modify |
Do not modify sub package descriptions. |
-sub-regexp name suffix regexp |
Create sub package containing files matching regular expression. |
-sub-type type |
Specify the type description of the sub packages. |
-t |
List the contents of a package. |
-v |
Be chatty. |
-V |
Show version information. |
-x |
Extract files from a package. |
See also Command-line Package Manager.