Repository build description¶
Installer repositories are compiled by using kcl build
. This requires an Xml file that describes how to build a file repository. Here’s an example repository file:
<?xml version="1.0" ?>
<Repository>
<Features>
<Feature Title="Binaries" Description="The application binaries"
Id="7f9e0d24-1c82-49d3-86f9-47c0a7c984d5">
<Reference Id="c9a41343-bc90-4871-84bd-27f04aac4794"/>
</Feature>
</Features>
<Files>
<Group Id="c9a41343-bc90-4871-84bd-27f04aac4794">
<File Source="A:\full\path\file.exe" Target="bin/file.exe"/>
</Group>
<Packages>
<Package Name="bin">
<Reference Id="c9a41343-bc90-4871-84bd-27f04aac4794"/>
</Package>
</Packages>
</Files>
</Repository>
Reference¶
The repository stores various objects which can be referenced. In general, anything which has an Id
attribute can be referenced, and all references are done by adding a Reference
node. Objects can be grouped by using a Group
node, this makes it possible to reference many objects using a single Reference
.
Repository
is the top level node and must be always present.Features
contains the feature list. A feature must reference another object in the repository, and must not reference another feature. Features can be nested.Files
describes all file objects and the storage layout.If present,
Packages
is used to group files into packages. APackage
must have a name and it must reference an object from theFiles
tree. Files which are not explicitly packaged are automatically placed into amain
package.Files can be grouped together for easy referencing using a
Group
node.A
File
node can reference the full source path or a relative path. If a relative path is used, the source directory must be specified during the compilation. Relative paths are automatically used for theTarget
path as well if there’s noTarget
specified.