Compiler options XML file

Both IntelliDoc and the compiler use the options XML file. Ginjo-Builder looks for an XML file that has the same name as the top level tree node in the project tree. The XML file specifies the startup function as well as other compiler options. A project cannot be run without an XML file. The file is only parsed, and therefore the changes only take effect, when the file is saved. Valid XML is case sensitive, but Ginjo-Builder parses this file in a case insensitive way: the win32resource and Win32Resource tags are equivalent. Note that relative paths are relative to the full path of the XML file (NOT the path of the project). The XML file must have an XML header, and all elements must be inside a <root> node, as in the below example:

<?xml version="1.0" encoding="utf-8"?>
<root>

</root>

Required elements

There are two required elements: <exe> and <startup>. The <exe> element specifies the executables path (including the name). When running in debug mode the executable is not created, but the <exe> tag is still required, because the path is set as the programs current directory. The <startup> element specifies the entry point for the program. Format is "FileName.FunctionName", and the startup function must be of the form:

function FunctionName(var:String cmdArgs[]) returns Int32

The following shows an example of an XML file with the two required elements:

<?xml version="1.0" encoding="utf-8"?>
<root>
   <exe path=".\game.exe" />
   <startup name="map.main" />
</root>

Optional elements

The options XML file can have the following optional blocks:

ImportSymbols
Contains project wide imported namespaces and aliases. This is equivalent to the 'using' directive in C# and the 'Imports' directive in vb.net. There is no need to import the 'System' namespace, it is automatically imported by the compiler.
<ImportSymbols>
   <namespace name="GB"  />
   <namespace name="GB.Core" />
   <namespace name="GB.Video" />
   <namespace name="GB.GUI" />
   <alias name="xmlconf" namespace="System.Xml.Serialization.Configuration" />
</ImportSymbols>
ReferencedAssemblies
The assembly names that are referenced by the compiler. There is no need to reference GinjoIrrLicht3.dll or .NET's System.dll or mscorlib.dll, they are automatically referenced by the compiler. Do not include the '.dll' extension in the 'name' attribute of .NET references. The libraries referenced through the 'file' tag must be .NET created DLLs.
<ReferencedAssemblies>
   <dotnet name="System.XML" />
   <file path="..\mydll.dll" />
</ReferencedAssemblies>
EmbeddedResources
File paths of .NET Framework resources to include in the generated assembly.
<EmbeddedResources>
   <file path="..\resource" />
</EmbeddedResources>
LinkedResources
File paths of .NET Framework resources that are referenced by the source.
<LinkedResources>
   <file path="..\resource" />
</LinkedResources>
win32resource
A Win32 resource file that will be linked into the compiled assembly.
<win32resource path="..\resources\myresorce.res" />