VCXProject
Generates a project file for use with Visual Studio, allowing integration of FASTBuild into Visual Studio solutions.
VCXProject generates a Visual Studio project file for use with VSSolution. Generated projects are compatible with VS 2010 and later.
.ProjectOutput - String - (Required)
The output location of the .vcxproj file.
Example:Files which will be included in the generated project can be specified in several ways. Files included in/excluded from the project do not impact compilation (which is still entirely controlled by the rules configured within the BFF file).
.ProjectInputPaths - String or ArrayOfStrings - (Optional)
Paths(s) to search for files to include in the project.
Example:.ProjectInputPathsExclude - String or ArrayOfStrings - (Optional)
Path(s) to exclude when searching for files to include in the project.
Example:.ProjectInputPathsRecurse - bool - (Optional)
Toggles whether to recurse into subdirectories of .ProjectInputPaths when finding files to add to the project.
Example:.ProjectPatternToExclude - String or ArrayOfStrings - (Optional)
Pattern(s) for files to exclude from project.
Example:.ProjectAllowedFileExtensions - String or ArrayOfStrings - (Optional)
Filter for file type(s) to include in the project.
Example:.ProjectFiles - String or ArrayOfStrings - (Optional)
File(s) to explicitly include in the project.
Example:.ProjectFilesToExclude - String or ArrayOfStrings - (Optional)
Files to exclude from the project (filtered from files discovered via ProjectInputPaths).
Example:.ProjectBasePath - String or ArrayOfStrings - (Optional)
Path(s) to use as base for generation of folder hierarchy within project.
Example:.ProjectFileTypes - Array of ProjectFileType Structures - (Optional)
File types can be specified if needed, for example for WinForms header files.
Example:Multiple project configurations can be specified. This allows for per-config settings to be a configured.
.ProjectConfigs - Array of ProjectConfig Structure(s) - (Optional)
A list of project configuration structures in the following format:
The optional .Target option can be used to specify the associated compilation target. This will be used to automatically populate the Intellisense options for Intellisense.
Example:.ProjectReferences - String or ArrayOfStrings - (Optional)
References to assemblies can be specified. This may be necessary if mixing C#, Managed C++ and C++ projects.
Example:.ProjectProjectReferences - String or ArrayOfStrings - (Optional)
Add explicit references to projects not generated by FASTBuild. If your Visual Studio Solution mixes generated and manually created project files, you can set explicit references to them.
Example:.ProjectProjectImports - ArrayOfStructs - (Optional)
Additional .targets files can be imported into a Visual Studio project. This can be useful for better integration/debugging of non-native architectures.
Example:.ProjectGuid - String - (Optional)
Override default generated ProjectGuid.
By default, a Guid for a project will be generated automatically. If necessary, a Guid can be explicitly specified instead.
Example:
.DefaultLanguage - String - (Optional)
Set the default language property. This may be necessary for XboxOne and WinRT applications.
Example:.ApplicationEnvironment - String - (Optional)
Set the application environment property. This may be necessary for XboxOne and WinRT applications.
Example:.ProjectSccEntrySAK - bool - (Optional)
Specifies if generic source control strings (SAK) should be generated in the project file.
Example:Various options can be specified to control how each configuration is controlled. If the option is defined at the VCXProject level it will be applied to all configurations. If defined at the .ProjectConfig level, it will be used for the given project configuration. Options can be specified at both levels, allowing for individual ProjectConfigs to override as needed.
ProjectBuildCommand - String - (Optional)
Command to launch when "build project" is selected.
Example:It can be convenient to take advantage of Visual Studio's runtime macro substitution to avoid having to manually specify this for every configuration.
Example:ProjectRebuildCommand - String - (Optional)
Command to launch when "rebuild project" is selected.
Example:It can be convenient to take advantage of Visual Studio's runtime macro substitution to avoid having to manually specify this for every configuration.
Example:ProjectCleanCommand - String - (Optional)
Command to launch when "clean project" is selected.
Example:It can be convenient to take advantage of Visual Studio's runtime macro substitution to avoid having to manually specify this for every configuration.
Example:Output - String - (Optional)
Output generated by compilation.
Example:OutputDirectory - String - (Optional)
Output directory for Visual Studio
Example:IntermediateDirectory - String - (Optional)
Intermediate directory for Visual Studio.
Example:BuildLogFile - String - (Optional)
Build log file for Visual Studio.
Example:LayoutDir - String - (Optional)
Directory to prepare Layout (for XboxOne)
Example:LayoutExtensionFilter - String - (Optional)
Files to filter from Layout (for XboxOne).
Example:PreprocessorDefinitions - String - (Optional)
Preprocessor definitions for Intellisense can be manually specified. If the .Target for a configuration is specified, this will be populated automatically by detecting use of /D or -D in the compiler command line. Manual specification will override the automated detection.
Example:IncludeSearchPath - String - (Optional)
Include search paths for Intellisense can be manually specified. If the .Target for a configuration is specified, this will be populated automatically by detecting use of /I, -I, -isystem, -isystem-after, /imsvc, -imsvc, -idirafter, -iquote, /external:I or -external:I in the compiler command line. Manual specification will override the automated detection.
Example:ForcedIncludes - String - (Optional)
Force included files for Intellisense can be manually specified.
Example:AssemblySearchPath - String - (Optional)
Assembly search paths for Intellisense can be manually specified.
Example:ForcedUsingAssemblies - String - (Optional)
Forced using assemblies for Intellisense can be manually specified.
Example:AdditionalOptions - String - (Optional)
Additional compiler options for Intellisense can be manually specified.
Example:LocalDebuggerCommand - String - (Optional)
Explicitly specify the executable to launch when debugging. The LocalDebuggerCommand property of a Visual Studio project is usually set automatically by FASTBuild (extracted from the .Target specified per build configuration), but can be explicitily set via .LocalDebuggerCommand if desired.
Example:
LocalDebuggerCommandArguments - String - (Optional)
Args passed to executable when debugging.
Example:LocalDebuggerWorkingDirectory - String - (Optional)
Working Dir for executable when debugging.
Example:LocalDebuggerEnvironment - String - (Optional)
Environment variables when debugging.
Example:RemoteDebuggerCommand - String - (Optional)
Executable to launch when debugging remotely.
Specify the executable to launch when debugging remotely, when using the Windows Subsystem for Linux for example.Example:
RemoteDebuggerCommandArguments - String - (Optional)
Args passed to remote executable when debugging.
Example:RemoteDebuggerWorkingDirectory - String - (Optional)
Working Dir for remote executable when debugging.
Example:Xbox360DebuggerCommand - String - (Optional)
Debugger command for Xbox360 only.
DebuggerFlavor - String - (Optional)
Debugger flavor.
Example:AumidOverride - String - (Optional)
Aumid override (for XboxOne).
Keyword - String - (Optional)
Keyword e.g. 'Android'
ApplicationType - String - (Optional)
ApplicationType e.g. 'Android'
ApplicationTypeRevision - String - (Optional)
ApplicationType e.g. '3.0'
TargetLinuxPlatform - String - (Optional)
Set the Linux platform type.
Example:LinuxProjectType - String - (Optional)
Set the project type GUID for Linux.
Example:PackagePath - String - (Optional)
Path to the package to be used for debugging.
AdditionalSymbolSearchPaths - String - (Optional)
Path to additional symbols to be used when debugging.
AndroidApkLocation - String - (Optional)
Location of APK for Android Game Development Extension.
AndroidDebugComponent - String - (Optional)
Debug component for Android Game Development Extension.
AndroidDebugTarget - String - (Optional)
Debug target for Android Game Development Extension.
AndroidJdb - String - (Optional)
JDB for Android Game Development Extension.
AndroidLldbPostAttachCommands - String - (Optional)
LLDB post attach commands for Android Game Development Extension.
AndroidLldbStartupCommands - String - (Optional)
LLDB startup commands for Android Game Development Extension.
AndroidPostApkInstallCommands - String - (Optional)
Post APK install commands for Android Game Development Extension.
AndroidPreApkInstallCommands - String - (Optional)
Pre APK install commands for Android Game Development Extension.
AndroidSymbolDirectories - String - (Optional)
Symbol dirs for Android Game Development Extension.
AndroidWaitForDebugger - String - (Optional)
Wait for Debugger for Android Game Development Extension.
LaunchFlags - String - (Optional)
Launch flags for Android Game Development Extension.
PlatformToolset - String - (Optional)
Specify PlatformToolset.
Example:DeploymentType - String - (Optional)
Specify deployment type for Xbox360.
DeploymentFiles - String - (Optional)
Specify files to add to deployment for Xbox360.
.RootNamespace - String - (Optional)
Set the RootNamespace for a project.
Example: