You can use macros to modify the way that the project system refers to files. Macros are divided into four classes:
The following macro values are defined by the system
| Macro | Description |
| StudioDir | The install directory of the CrossStudio application. |
System macros can be used in build properties and also for environment settings.
To define a global macro
To define a project macro
Alternatively you can set the project macros from the properties window:
The following macro values are defined by the project system for a build of a given project node.
| Macro | Description |
| ProjectDir | The project directory. |
| ProjectName | The project name. |
| Configuration | The selected build configuration. |
| SolutionDir | The directory containing the solution file. |
| SolutionName | The solution name. |
| InputFileName | The name of an input file relative to its project directory. |
| InputName | The name of an input file relative to its project directory without its extension. |
| InputExt | The extension of an input file. |
| IntDir | The macro-expanded value of the Intermediate Directory property. |
| OutDir | The macro-expanded value of the Output Directory property. |
| EXE | The default file extension for an executable file including the dot. |
| LIB | The default file extension for a library file including the dot. |
| OBJ | The default file extension for an object file including the dot. |
| LibExt | A platform specific library extension that is generated based on project property values. |
You can use a macro in a project property or an environment setting using the $(macro) syntax. For example the Object File Name property has a default value of $(IntDir)/$(InputName)$(OBJ).
To enable debugging of builds you should use the Build Information... dialog that is on the context menu of the project explorer. This dialog will give a full list of the macros that are specified for the project node selected together with the macro expanded property values.