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.