SharpGenTools Config File Features¶
The SharpGenTools config files have a few nice features to ease mapping development.
Macros¶
You can define SharpGen macros in your project file as below:
<PropertyGroup>
<SharpGenMacros>$(SharpGenMacros);MY_MACRO</SharpGenMacros>
</PropertyGroup>
Then, within your config file, you can surround any XML tag(s) with an <ifdef name="MY_MACRO">
tag. Then, when MY_MACRO
is defined, those rules/includes will be included, but otherwise they will be ignored.
Variables¶
Variables can be defined in your mapping file to give you some shorthand to use common expressions. You can define a variable with the <var>
tag as shown:
<var name="varname" value="value" />
You can refer to this variable in any attribute value or element value as $(varname)
. The variable $(THIS_CONFIG_PATH)
is to the directory path the file is in.
Dynamic Variables¶
Dynamic Variables allow your mapping rules to use the values of C++ macros in attributes or element values of mapping and binding rules. A dynamic variable is defined for every C++ macro SharpGenTools parsed while parsing the C++ headers. To use a dynamic variable, you can use the syntax #(DYNAMIC_VARIABLE_NAME)
. SharpGen will give you an error if the dynamic variable cannot be found.