Valve Project Creator

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)

The Valve Project Creator generates project and makefiles for the Source SDK.

For more information about building the Source SDK, see Source SDK 2013. To learn more about editing VPC scripts, visit Editing VPC scripts.

How to use

Valve Project Creator is a command-line tool, so you'll have to use the command-prompt window.

An example for a command using the command prompt:

C:\Users\someguy\Desktop\source-sdk-2013\mp\src\devtools\bin>vpc /h 

This will print out the help information seen below.

Another example:

C:\Users\someguy\Desktop\source-sdk-2013\mp\src\devtools\bin>vpc +shaders /hl2mp

This command will create the project file(s) for the shaders project group for the Source 2013 Multiplayer branch.

VPC Help Information

VPC - Valve Project Creator For Visual Studio, Xbox 360, PlayStation 3, Xcode and Make (Build: Aug 27 2014 12:55:48)
(C) Copyright 1996-2010, Valve Corporation, All rights reserved.

Source Path: D:\Games\Steam\SteamApps\sourcemods\assets\code-2013
Target Platform: win32
Generating for Visual Studio 2013.

usage: vpc [options] <+/-/*project or group>

Examples:

  Single .vcproj generation:
    vpc +client /hl2     <-- Creates a Win32 .vcproj for the HL2 client.
    vpc +shaderapi /x360 <-- Creates a Xbox360 .vcproj for the shaderapi.

  Multiple .vcproj generation - Multiple Projects for Games and Platforms:
    vpc +client /hl2 /tf           <-- Creates ALL the Win32 .vcprojs for the HL2 and TF client.
    vpc +gamedlls /allgames        <-- Creates ALL the Win32 .vcprojs for client and server for all GAMES.
    vpc +tools -tier0 /win32 /x360 <-- Creates ALL the Win32 and Xbox360 .vcprojs for the tool projects but not the tier0 project.

  Use +/- to add or remove projects or groups.
  Use *   to add a project and all projects that depend on it.
  Use @   to add a project and all projects that it depends on.
  Use /h spew final target build set only (no .vcproj created).

  Further details can be found on Valve Internal Wiki on VPC.

--- OPTIONS ---
[/q]:          Quiet mode (quiet mode is automatically on if the VPC_QUIET environment variable is set)
[/v]:          Verbose
[/f]:          Force generate .vcproj, otherwise use crc checks
[/dp]:         Decorate project names with platform
[/testmode]:   Override output .vcproj file to be named 'test.vcproj'
[/srcctl]:     Enable source control integration
[/2013]:       Generate projects and solutions for Visual Studio 2013 [default]
[/2012]:       Generate projects and solutions for Visual Studio 2012
[/2010]:       Generate projects and solutions for Visual Studio 2010
[/2005]:       Generate projects and solutions for Visual Studio 2005
[/nounity]:    Disable unity file generation

--- Help ---
[/h]:          Help
[/?]:          Help
[/platforms]:  Spew Platforms
[/games]:      Spew Games
[/projects]:   Spew Projects
[/groups]:     Spew Groups
[/properties]: Spew VS2005 Properties

--- Conditionals ---
[/profile]:    Set Reserved $PROFILE=1
[/retail]:     Set Reserved $RETAIL=1
[/callcap]:    Set Reserved $CALLCAP=1
[/fastcap]:    Set Reserved $FASTCAP=1
[/nofpo]:      Set Reserved $NOFPO=1
[/lv]:         Set Reserved $LV=1
[/demo]:       Set Reserved $DEMO=1
[/no_steam]:   Set Reserved $NO_STEAM=1
[/qtdebug]:    Set Reserved $QTDEBUG=1
[/no_ceg]:     Set Reserved $NO_CEG=1
[/upload_ceg]: Set Reserved $UPLOAD_CEG=1

--- Other ---
[/mksln]:      <.sln filename> - make a solution file
[/p4sln]:      <.sln filename> <changelists...> - make a solution file based on
               the changelist. Changelists can be specific numbers, 0 or "default"
               for the default changelist, or "all" for all active changelists.
[/nop4add]:    Don't automatically add project files to Perforce
[/slnitems]:   <filename> - adds all files listed in <filename> to generated
               solutions
[/showdeps]:   Show an example dependency chain for each project that depends
               on your p4 change list(s).  Use with /p4sln.
[/checkfiles]: Check for the existence of files in $file commands. For debugging vpc files.
               Only works if the currrent directory is the project directory.
[/define:xxx]: Enable a custom conditional $XXX to use for quick testing in VPC files.