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.
Repositoryis the top level node and must be always present.Featurescontains the feature list. A feature must reference another object in the repository, and must not reference another feature. Features can be nested.Filesdescribes all file objects and the storage layout.If present,
Packagesis used to group files into packages. APackagemust have a name and it must reference an object from theFilestree. Files which are not explicitly packaged are automatically placed into amainpackage.Files can be grouped together for easy referencing using a
Groupnode.A
Filenode 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 theTargetpath as well if there’s noTargetspecified.