Proposed format for defining compiler interfaces using only XML (in conjunction with Compiler options files). See: [/index.php/topic,16463.0.html XML based compilers].
<CodeBlocks_compiler name="Digital Mars Compiler" id="dmc" weight="24" platform="windows"> [...] </CodeBlocks_compiler>
I am a Code::Blocks compiler file.
- <txt> is the descriptive name that will be shown to the user for this compiler.
- Lowercase sequence of letters, numbers, underscores, and/or hyphens (it must, however, start with a letter) which is used internally to represent this compiler.
- Determines the order in the compiler drop-down menu that this compiler will be listed; lower numbers are listed sooner (keep <num> between 0 and 100).
platform="<os>" (optional). Only load this compiler if the current operating system is <os>. <os> is one of:
All of the following routines are used during auto-detection.
Conditional <if>[...]</if><else>[...]</else> statements are available in the same form as in Compiler options files.
<Path type="master"> [...] </Path>
type="<tp>" Determines what variable the results of the contained detection routine(s) will be stored in. <tp> is one of:
<Search envVar="PATH" for="C"/>
Searches all paths in the given environment variable.
- If for is not specified, any path that exists will be added to the current <Path type="...">.
- If for is given, the corresponding executable name will be replaced (if applicable; see <if exec="..."></if> blocks). If the specified file exists on any of the paths in the environment variable, those path(s) will be added.
(If the current path type is master, any trailing bin directories will be stripped.)
<Search path="C:\MinGW" for="C"/>
Same functionality as <Search envVar="..."> except that this tests a hard-coded path.
Wildcards are allowed in <Search path="...">.
<Search registry="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC" value="InstallLocation"/>
Read a Windows registry key. If value is found in the registry key, and it is a valid folder, it will be added to the current <Path type="...">.
If the current <Path type="..."> is empty, add this path to it.
Add a path to the current <Path type="...">.
- <master/> is replaced by the contents of the master path.
- <separator/> is replaced by the system's native file path separator.
Enable a compiler flag.
Enable a linker flag.
Add a library.