83 lines
2.6 KiB
Markdown
83 lines
2.6 KiB
Markdown
|
Targets
|
||
|
-------
|
||
|
|
||
|
Targets are used to produce binaries, or to group other targets. When compiling exes or dynamic libraries, they provide the additional link libraries.
|
||
|
|
||
|
By default, hxcpp will try to compile the 'default' target, so it is easiest to define this one - perhaps by simply adding a dependence on your other targets(s).
|
||
|
|
||
|
The target is defined with a 'toolid' attribute; exe, static_link or dll. This defines which linker is run, but many of the target entries will be the same even if the linker is changed.
|
||
|
|
||
|
Targets can contain the following nodes:
|
||
|
|
||
|
- *subTargetName* - Build another target before building this one.
|
||
|
```xml
|
||
|
<target id="subTargetName" />
|
||
|
```
|
||
|
|
||
|
- *merge* - Combine fields from another target. This is useful if you want a target to function as static library or dll when compiled in its own, but also allow it to be used as a list of object files if another target wants to link in the object files directly.
|
||
|
```xml
|
||
|
<merge id="otherTargetName" />
|
||
|
```
|
||
|
|
||
|
- *files* - Add a named group of compiled files to target.
|
||
|
```xml
|
||
|
<files id="filesId"/>
|
||
|
```
|
||
|
|
||
|
- *section* - Group items - usually sharing common condition
|
||
|
```xml
|
||
|
<section > </section>
|
||
|
```
|
||
|
|
||
|
- *lib* - Add a library to the link line.
|
||
|
```xml
|
||
|
<lib (name|hxbase|base)="libName" />
|
||
|
```
|
||
|
+ name = the complete name is specified
|
||
|
+ base = the name without compiler-specific extension (.a/.lib) is specified
|
||
|
+ hxbase = the name without extension and architecture (-v7/.iphoinesim) is specified
|
||
|
|
||
|
- *flag* - Add a single link flag.
|
||
|
```xml
|
||
|
<flag value="flag"/>
|
||
|
```
|
||
|
|
||
|
- *vflag* - Add a pair of link flags.
|
||
|
```xml
|
||
|
<vflag name="flag1" value="flag2"/>
|
||
|
```
|
||
|
|
||
|
- *depend* - Target depends on given filename.
|
||
|
```xml
|
||
|
<depend name="filename"/>
|
||
|
```
|
||
|
|
||
|
- *dir* - Add a directory to the targets directory list. These directories will get removed then the target is cleaned.
|
||
|
```xml
|
||
|
<dir name="tempPath"/>
|
||
|
```
|
||
|
|
||
|
- *outdir* - Directory for build results - including "copyFile" targets
|
||
|
```xml
|
||
|
<outdir name="path"/>
|
||
|
```
|
||
|
|
||
|
- *ext* - Extension for generated files.
|
||
|
```xml
|
||
|
<ext name=".ext"/>
|
||
|
```
|
||
|
+ ext = extension - should contain "."
|
||
|
|
||
|
- *builddir* - The directory from which the targets build commands are run, and therefore the
|
||
|
relative base for some filenames, and destination for some compiler generated temps.
|
||
|
```xml
|
||
|
<builddir name="path"/>
|
||
|
```
|
||
|
|
||
|
- *libpath* Add library search path to build command
|
||
|
```xml
|
||
|
<libpath name="directory"/>
|
||
|
```
|
||
|
+ name = directory. The particular linker will add the required flags
|
||
|
|