VPC Scripts/Syntax
VPC Script files work in a fairly straightforward way. There are C-Style comments with //, Commands are issued with $ and Scopes are made with { }. Conditionals can also be made with [condition]
$BASE
$BASE
Magic word used to get values that already exist for command.
$Macro
$Macro NAME "VALUE"
Defines a macro NAME with string VALUE
$MacroRequired
$MacroRequired "NAME"
Macro NAME is required or VPC will error
$Include
$Include "PATH.vpc"
includes another vpc file
$Configuration
$Configuration "CONFIG" { }
declares configurations commands depending on what CONFIG were compiling for. If CONFIG is left blank it acts as a default or catch-all case
$General
$Configuration ""
{
	$General
	{
	}
}
General Build Commands
$OutputDirectory
$Configuration ""
{
	$General
	{
		$OutputDirectory ""
	}
}
directory location of finished build
$IntermediateDirectory
$Configuration ""
{
	$General
	{
		$IntermediateDirectory ""
	}
}
Where to store temp build files for this config (like .obj)
$AdditionalIncludeDirectories
$Configuration ""
{
	$Compiler
	{
		$AdditionalIncludeDirectories "<x>;<y>;..."
	}
}
Specifies extra folders to search for files during compilation.
Multiples Options can be done in a single command seperated by ;
$PreprocessorDefinitions
$Configuration ""
{
	$Compiler
	{
		$PreprocessorDefinitions "<x>;<y>;..."
	}
}
Defines macros #define passed to the compiler for conditional compilation.
$Create/UsePrecompiledHeader
$Configuration ""
{
	$Compiler
	{
		$Create/UsePrecompiledHeader "Use Precompiled Header (/Yu)"
	}
}
Enables or specifies usage of a precompiled header (PCH) to speed up compilation.
$Create/UsePCHThroughFile
$Configuration ""
{
	$Compiler
	{
		$Create/UsePCHThroughFile "cbase.h"
	}
}
Specifies the header file to use as the entry point when creating or using a precompiled header
$PrecompiledHeaderFile
$Configuration ""
{
	$Compiler
	{
		$PrecompiledHeaderFile ""
	}
}
Sets the output path and name of the generated precompiled header
$DisableSpecificWarnings
$Configuration ""
{
	$Compiler
	{
		$DisableSpecificWarnings ""
	}
}
Disables the number warning
$Linker
$Configuration ""
{
	$Linker
	{
	}
}
Linker Commands
$SystemLibraries
$Configuration ""
{
	$Linker
	{
		$SystemLibraries ""
	}
}
Specifies system libraries .lib to link
$SystemFrameworks
$Configuration ""
{
	$Linker
	{
		$SystemFrameworks ""
	}
}
Specifies macOS system frameworks
$IgnoreImportLibrary
$Configuration ""
{
	$Linker
	{
		$IgnoreImportLibrary ""
	}
}
Disables creation of a .lib import library when building a DLL.
$AdditionalDependencies
$Configuration ""
{
	$Linker
	{
		$AdditionalDependencies ""
	}
}
Adds extra libraries to link with the project (beyond system and default ones).
$Project
$Project { }
Sets up Project UI
$Folder
$Project
{
	$Folder "Name"
	{
	}
}
Adds extra libraries to link with the project (beyond system and default ones).
$File
$Project
{
	$Folder "Name"
	{
		$File "name.cpp"
	}
}
Adds extra libraries to link with the project (beyond system and default ones).
$Lib
$Project
{
	$Folder "Name"
	{
		$Lib lib
	}
}
Specifies a static library file to include in the build
$ImpLibexternal
$Project
{
	$Folder "Name"
	{
		$ImpLibexternal lib
	}
}
Specifies an external import library to use instead of generating one during DLL build
$Libexternal
$Project
{
	$Folder "Name"
	{
		$Libexternal lib
	}
}
Specifies an external static library to link without building it as part of the project.