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. ```xml ``` - *setenv* - Sets an hxcpp define and an environment variable for child processes. ```xml ``` - *unset* - Unset a define. if="name" will no longer be true ```xml ``` - *setup* - Used internally to call custom setup code to find SDKs etc. ```xml ``` - *echo* - Print value to console. Good for debugging. ```xml ``` - *error* - Print value to console and force error. Good for checking prerequisites. ```xml ``` - *pleaseUpdateHxcppTool* - Used to tell people updating git version that they need to recompile the build tool. ```xml ``` - *path* - Add an directory to the exe search path. ```xml ``` - *mkdir* - Create a directory. ```xml ``` - *section* - Groups block of elements - usually ones that all respect the same if/unless condition. ```xml
``` - *copy* - Copy file when node is parsed. ```xml ``` - *import*/*include* - Read xml from another file. 'import' resets the relative base to the new file, include does not. ```xml ``` + 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. ```xml ``` - *nvccflag* - Add flag to all nvcc compiles. ```xml ``` - *nvcclinkflag* - Add flag when linking with nvcc code. ```xml ``` - *files* - Define a file group, and set default tags. ```xml ... ``` + 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. ```xml ... ``` - *copyFile* - Copy a file after given toolId is run into target output directory ```xml ``` - *magiclib* - Internal for replacing dlls with object files ```xml ``` - *compiler* - Define a compiler. ```xml ... ``` + 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 ```xml ``` + Use optional 'replace' to overwrite, otherwise append - *linker* - Define a linker. ```xml ``` + 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. ```xml ... ```