4.1 KiB
		
	
	
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	Structure of the top-level
The top-level nodes live inside an "xml" node, and can be:
- 
set - Set a "define", define being a general variable.
<set name="name" value="1" /> - 
setenv - Sets an hxcpp define and an environment variable for child processes.
<setenv name="name" value="1" /> - 
unset - Unset a define. if="name" will no longer be true
<unset name="name" /> - 
setup - Used internally to call custom setup code to find SDKs etc.
<setup name="androidNdk|blackberry|msvc|pdbserver|mingw|emscripten|nvcc" /> - 
echo - Print value to console. Good for debugging.
<echo value="text" /> - 
error - Print value to console and force error. Good for checking prerequisites.
<error value="error message" /> - 
pleaseUpdateHxcppTool - Used to tell people updating git version that they need to recompile the build tool.
<pleaseUpdateHxcppTool version="1" /> - 
path - Add an directory to the exe search path.
<path name="directory_to_add" /> - 
mkdir - Create a directory.
<mkdir name="directory" /> - 
section - Groups block of elements - usually ones that all respect the same if/unless condition.
<section name="id" /> </section> - 
copy - Copy file when node is parsed.
<copy to="destination" from="src" /> - 
import/include - Read xml from another file. 'import' resets the relative base to the new file, include does not.
<import name="filename" section="filter" noerror="true" /> <include name="filename" section="filter" noerror="true" />- noerror - setting the optional noerror allows the file to be missing
 - section - setting the optional section will only read the named section from the xml file. Used by hxcpp_config.xml.
 
 - 
pragma - Only include build file once, even with multiple include statements.
<pragma once="true" /> - 
nvccflag - Add flag to all nvcc compiles.
<nvccflag name="?name" value="-IincludePath" /> - 
nvcclinkflag - Add flag when linking with nvcc code.
<nvcclinkflag name="?name" value="-arch=sm_30" /> - 
files - Define a file group, and set default tags.
<files dir="dir" name="name" tags="tag1,tag2,tag3" > ... </files>- dir = directory to which the filenames in the group are relative
 - tags = comma separated list of flags tags
 
 - 
target - Define a target, and set its toolid(link mode) and output name.
<target name="name" overwrite="true" append="true" tool="linker" toolid="${haxelink}" output="filename" > ... </target> - 
copyFile - Copy a file after given toolId is run into target output directory
<copyFile name="destination" from="src" allowMissing="true" overwrite="true" toolId="filter" > - 
magiclib - Internal for replacing dlls with object files
<magiclib name="libname" replace="old dll" /> - 
compiler - Define a compiler.
<compiler id="id" exe="command" replace="true" > ... </compiler>- Use optional 'replace' to overwrite, otherwise append
 - It is assumed only 1 compiler is active
 - exe can be overridden in the body of the definition
 
 - 
stripper - Define a stripper, to remove debug information for release from gcc executables
<stripper exe="command" replace="true" > </stripper>- Use optional 'replace' to overwrite, otherwise append
 
 - 
linker - Define a linker.
<linker id="id" exe="command" replace="true" > </linker>- Use optional 'replace' to overwrite, otherwise append
 - id could be 'static_link', 'dll' or 'exe'. Usually all 3 linkers are defined.
 - exe can be overridden in the body of the definition
 
 - 
prelinker - Define a prelinker.
<prelinker name="id" replace="true" /> ... </prelinker>