The files node defines a group of files that all share the same attributes, including relative directory, default compiler flags and dependencies. The node can be used to define a set of header files on which other files can depend, or a set of source files to be compiled and included in a target.
depend - Declares that all files in the group depend on another file or another file group.
name- if the named file changes then all the files in the group need recompiling.
files- if any of the files in the named group changes then then all the files in the group need recompiling.
<depend name="filename" /> <depend files="filesId" />
options- Sets the name of the file containing compiler flags. When the cache is not used,
Options.txthelps detect when the options have changed, and therefore whether files need recompiling.
<options name="Options.txt" />
config- Sets the name of the file to generate that contains the C++ preprocessor defines that were active when code was compiled.
<config name="outfile.h" />
tag- Adds a default compiler tag for all files in the group. See Tags.
<tag value="tag" />
addTwice- When compiled to a library, adds the library twice to the link line - once at the beginning and once at the end to satisfy Linux selective linking.
<addTwice value="true" />
cache - Enables compiler cache for files in the group. See compile cache for more details.
project- name of project used to manage and group object files in the cache.
asLibrary- link the objects (
.obj) into a
.libfile, which can skip unneeded objects, but will also skip things that rely on static initializers to register handlers, so be careful.
<cache value="true" project="name" asLibrary="true" />
include- Includes an external file list.
<include name="filename.xml" />
section- Groups blocks of elements - usually ones that all respect the same
<section name="id" />...</section>
compilerflag - Adds a compiler flag when compiling files in the group.
value- adds 2 command-line arguments when compiling.
value- adds 1 command-line argument when compiling.
<compilerflag name="name" value="value" /> <compilerflag value="value" />
nvcc- This group is compiled with nvcc.
objprefix- Sets the id prepended to generated object (
.obj) name to allow alphabetical grouping of similar objects.
<objprefix value="prefix" />
precompiledheader - Use a precompiled header of given name when compiling the group.
name- the include used when precompiling these files (without the .h).
directory- the location of this file.
<precompiledheader name="name" dir="directory" />
file - Adds a file to the group, with optional attributes.
name- name of the file - may be absolute or relative to
tags- overrides group tags. See Tags. (optional)
filterout- allows files to be skipped at compile-time if the named define exists. This is useful when the define is set sometime after the file list is parsed.
embed- causes the file to be embedded as an extern C++
const char *string constant of the specified name.
<depend name="..." />(child node) - filename of additional dependency.
<file name="filename" tags="tag,tag1" filterout="define" embedName="embed" > <depend name="filename1" /> <depend name="filename2" /> </file>