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 | ||
|  | 
 |