4.4.6. Visual Studio 2008 (vs2008)

Visual Studio 2008.

4.4.6.1. Special properties

In addition to the properties described below, it’s possible to specify any of the vcproj properties directly in a bakefile. To do so, you have to set specially named variables on the target.

The variables are prefixed with vs2008.option., followed by tool name and attribute name. For example:

  • vs2008.option.VCCLCompilerTool.EnableFunctionLevelLinking
  • vs2008.option.VCLinkerTool.EnableCOMDATFolding

Additionally, the following are supported for non-tool nodes:

  • vs2008.option.* (attributes of the root VisualStudioProject node)
  • vs2008.option.Configuration.* (Configuration node attributes)

These variables can be used in several places in bakefiles:

  • In targets, to applied them as project’s global settings.
  • In modules, to apply them to all projects in the module and its submodules.
  • On per-file basis, to modify file-specific settings.

Examples:

vs2008.option.VCCLCompilerTool.EnableFunctionLevelLinking = false;

crashrpt.cpp::vs2008.option.VCCLCompilerTool.ExceptionHandling = 2;

4.4.6.2. Properties

4.4.6.2.1. All targets

vs2008.projectfile (type: path)

File name of the project for the target.

Default: $(id).vcxproj in the same directory as the .sln file

Inheritable from parent: no

vs2008.guid (type: string)

GUID of the project.

Default: automatically generated

Inheritable from parent: no

4.4.6.2.2. Modules

vs2008.solutionfile (type: path)

File name of the solution file for the module.

Default: same name as the module’s bakefile, with .sln extension, in @srcdir

Inheritable from parent: no

vs2008.generate-solution (type: bool)

Whether to generate solution file for the module. Set to false if you want to omit the solution, e.g. for some submodules with only a single target.

Default: True

Inheritable from parent: no