You can use macros to modify the way the project system refers to files.
Macros are divided into four classes:
- System macros defined by CrossStudio relay information about the
environment, such as paths to common directories.
- Global macros are saved in the environment and are shared across
all solutions and projects. Typically, you would set up paths to libraries
and any external items here.
- Project macros are saved as project properties in the project file
and can define values specific to the solution or project in which they are
defined.
- Build macros are generated by the project system when you build
your project.
System macros
System macros are defined by CrossStudio itself and as such are read-only.
System macros can be used in project properties, environment settings
and to refer to files. See System macros list
for the list of System macros.
Global macros
Global macros are store in the environment option Global Macros.
To define a global macro:
- Use Tools > Options to show the environment options dialog.
- In the Environment Options dialog's Building group, select the Global Macros property.
- Click the ellipsis button on the right.
- Set the macro using the syntax name = replacement text.
Project macros
To define a project macro:
You can set the project macros from the Properties window:
- Select the appropriate solution/project in the Project Explorer.
- In the Properties window's General Options group, select the Macros property.
- Click the ellipsis button on the right.
- Set the macro using the syntax name = replacement text.
Build macros
Build macros are defined by the project system for a build of a
given project node. See Build macros list
for the list of build macros.
Using macros
You can use a macro for a project property or environment setting by using the
$(macro) syntax. For example, the Object File Name property has a default
value of $(IntDir)/$(InputName)$(OBJ).
You can also specify a default value for a macro if it is undefined using
the $(macro:default) syntax. For example, $(MyMacro:0) would
expand to 0 if the macro MyMacro has not been defined.