<?xml version="1.0" encoding="UTF-8"?> <!-- __COPYRIGHT__ This file is processed by the bin/SConsDoc.py module. See its __doc__ string for a discussion of the format. --> <!DOCTYPE sconsdoc [ <!ENTITY % scons SYSTEM '../../../../doc/scons.mod'> %scons; <!ENTITY % builders-mod SYSTEM '../../../../doc/generated/builders.mod'> %builders-mod; <!ENTITY % functions-mod SYSTEM '../../../../doc/generated/functions.mod'> %functions-mod; <!ENTITY % tools-mod SYSTEM '../../../../doc/generated/tools.mod'> %tools-mod; <!ENTITY % variables-mod SYSTEM '../../../../doc/generated/variables.mod'> %variables-mod; ]> <sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd"> <tool name="msvc"> <summary> <para> Sets construction variables for the Microsoft Visual C/C++ compiler. </para> </summary> <sets> <item>CCPDBFLAGS</item> <item>CCPCHFLAGS</item> <item><!--CCCOMFLAGS--></item> <item>CC</item> <item>CCFLAGS</item> <item>CFLAGS</item> <item>CCCOM</item> <item>SHCC</item> <item>SHCCFLAGS</item> <item>SHCFLAGS</item> <item>SHCCCOM</item> <item>CXX</item> <item>CXXFLAGS</item> <item>CXXCOM</item> <item>SHCXX</item> <item>SHCXXFLAGS</item> <item>SHCXXCOM</item> <item>CPPDEFPREFIX</item> <item>CPPDEFSUFFIX</item> <item>INCPREFIX</item> <item>INCSUFFIX</item> <item><!--STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME--></item> <item>RC</item> <item>RCFLAGS</item> <item>RCCOM</item> <item>BUILDERS</item> <item>OBJPREFIX</item> <item>OBJSUFFIX</item> <item>SHOBJPREFIX</item> <item>SHOBJSUFFIX</item> <item>CFILESUFFIX</item> <item>CXXFILESUFFIX</item> <item>PCHPDBFLAGS</item> <item>PCHCOM</item> </sets> <uses> <item>CCCOMSTR</item> <item>SHCCCOMSTR</item> <item>CXXCOMSTR</item> <item>SHCXXCOMSTR</item> <item>PCH</item> <item>PCHSTOP</item> <item>PDB</item> </uses> </tool> <builder name="PCH"> <summary> <para> Builds a Microsoft Visual C++ precompiled header. Calling this builder method returns a list of two targets: the PCH as the first element, and the object file as the second element. Normally the object file is ignored. This builder method is only provided when Microsoft Visual C++ is being used as the compiler. The PCH builder method is generally used in conjunction with the PCH construction variable to force object files to use the precompiled header: </para> <example_commands> env['PCH'] = env.PCH('StdAfx.cpp')[0] </example_commands> </summary> </builder> <builder name="RES"> <summary> <para> Builds a Microsoft Visual C++ resource file. This builder method is only provided when Microsoft Visual C++ or MinGW is being used as the compiler. The <filename>.res</filename> (or <filename>.o</filename> for MinGW) suffix is added to the target name if no other suffix is given. The source file is scanned for implicit dependencies as though it were a C file. Example: </para> <example_commands> env.RES('resource.rc') </example_commands> </summary> </builder> <cvar name="CCPCHFLAGS"> <summary> <para> Options added to the compiler command line to support building with precompiled headers. The default value expands expands to the appropriate Microsoft Visual C++ command-line options when the &cv-link-PCH; construction variable is set. </para> </summary> </cvar> <cvar name="CCPDBFLAGS"> <summary> <para> Options added to the compiler command line to support storing debugging information in a Microsoft Visual C++ PDB file. The default value expands expands to appropriate Microsoft Visual C++ command-line options when the &cv-link-PDB; construction variable is set. </para> <para> The Visual C++ compiler option that SCons uses by default to generate PDB information is <option>/Z7</option>. This works correctly with parallel (<option>-j</option>) builds because it embeds the debug information in the intermediate object files, as opposed to sharing a single PDB file between multiple object files. This is also the only way to get debug information embedded into a static library. Using the <option>/Zi</option> instead may yield improved link-time performance, although parallel builds will no longer work. </para> <para> You can generate PDB files with the <option>/Zi</option> switch by overriding the default &cv-link-CCPDBFLAGS; variable as follows: </para> <example_commands> env['CCPDBFLAGS'] = ['${(PDB and "/Zi /Fd%s" % File(PDB)) or ""}'] </example_commands> <para> An alternative would be to use the <option>/Zi</option> to put the debugging information in a separate <filename>.pdb</filename> file for each object file by overriding the &cv-link-CCPDBFLAGS; variable as follows: </para> <example_commands> env['CCPDBFLAGS'] = '/Zi /Fd${TARGET}.pdb' </example_commands> </summary> </cvar> <cvar name="MSVC_BATCH"> <summary> <para> When set to any true value, specifies that SCons should batch compilation of object files when calling the Microsoft Visual C/C++ compiler. All compilations of source files from the same source directory that generate target files in a same output directory and were configured in SCons using the same construction environment will be built in a single call to the compiler. Only source files that have changed since their object files were built will be passed to each compiler invocation (via the &cv-link-CHANGED_SOURCES; construction variable). Any compilations where the object (target) file base name (minus the <filename>.obj</filename>) does not match the source file base name will be compiled separately. </para> </summary> </cvar> <cvar name="PCH"> <summary> <para> The Microsoft Visual C++ precompiled header that will be used when compiling object files. This variable is ignored by tools other than Microsoft Visual C++. When this variable is defined SCons will add options to the compiler command line to cause it to use the precompiled header, and will also set up the dependencies for the PCH file. Example: </para> <example_commands> env['PCH'] = 'StdAfx.pch' </example_commands> </summary> </cvar> <cvar name="PCHCOM"> <summary> <para> The command line used by the &b-PCH; builder to generated a precompiled header. </para> </summary> </cvar> <cvar name="PCHCOMSTR"> <summary> <para> The string displayed when generating a precompiled header. If this is not set, then &cv-link-PCHCOM; (the command line) is displayed. </para> </summary> </cvar> <cvar name="PCHPDBFLAGS"> <summary> <para> A construction variable that, when expanded, adds the <literal>/yD</literal> flag to the command line only if the &cv-PDB; construction variable is set. </para> </summary> </cvar> <cvar name="PCHSTOP"> <summary> <para> This variable specifies how much of a source file is precompiled. This variable is ignored by tools other than Microsoft Visual C++, or when the PCH variable is not being used. When this variable is define it must be a string that is the name of the header that is included at the end of the precompiled portion of the source files, or the empty string if the "#pragma hrdstop" construct is being used: </para> <example_commands> env['PCHSTOP'] = 'StdAfx.h' </example_commands> </summary> </cvar> <cvar name="RC"> <summary> <para> The resource compiler used to build a Microsoft Visual C++ resource file. </para> </summary> </cvar> <cvar name="RCCOM"> <summary> <para> The command line used to build a Microsoft Visual C++ resource file. </para> </summary> </cvar> <cvar name="RCCOMSTR"> <summary> <para> The string displayed when invoking the resource compiler to build a Microsoft Visual C++ resource file. If this is not set, then &cv-link-RCCOM; (the command line) is displayed. </para> </summary> </cvar> <cvar name="RCFLAGS"> <summary> <para> The flags passed to the resource compiler by the RES builder. </para> </summary> </cvar> <cvar name="RCINCFLAGS"> <summary> <para> An automatically-generated construction variable containing the command-line options for specifying directories to be searched by the resource compiler. The value of &cv-RCINCFLAGS; is created by appending &cv-RCINCPREFIX; and &cv-RCINCSUFFIX; to the beginning and end of each directory in &cv-CPPPATH;. </para> </summary> </cvar> <cvar name="RCINCPREFIX"> <summary> <para> The prefix (flag) used to specify an include directory on the resource compiler command line. This will be appended to the beginning of each directory in the &cv-CPPPATH; construction variable when the &cv-RCINCFLAGS; variable is expanded. </para> </summary> </cvar> <cvar name="RCINCSUFFIX"> <summary> <para> The suffix used to specify an include directory on the resource compiler command line. This will be appended to the end of each directory in the &cv-CPPPATH; construction variable when the &cv-RCINCFLAGS; variable is expanded. </para> </summary> </cvar> <cvar name="MSVC_VERSION"> <summary> <para> Sets the preferred version of Microsoft Visual C/C++ to use. </para> <para> If &cv-MSVC_VERSION; is not set, SCons will (by default) select the latest version of Visual C/C++ installed on your system. If the specified version isn't installed, tool initialization will fail. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect. </para> <para> Valid values for Windows are <literal>12.0</literal>, <literal>12.0Exp</literal>, <literal>11.0</literal>, <literal>11.0Exp</literal>, <literal>10.0</literal>, <literal>10.0Exp</literal>, <literal>9.0</literal>, <literal>9.0Exp</literal>, <literal>8.0</literal>, <literal>8.0Exp</literal>, <literal>7.1</literal>, <literal>7.0</literal>, and <literal>6.0</literal>. Versions ending in <literal>Exp</literal> refer to "Express" or "Express for Desktop" editions. </para> </summary> </cvar> <cvar name="MSVC_USE_SCRIPT"> <summary> <para> Use a batch script to set up Microsoft Visual Studio compiler </para> <para> &cv-MSVC_USE_SCRIPT; overrides &cv-MSVC_VERSION; and &cv-TARGET_ARCH;. If set to the name of a Visual Studio .bat file (e.g. vcvars.bat), SCons will run that bat file and extract the relevant variables from the result (typically %INCLUDE%, %LIB%, and %PATH%). Setting MSVC_USE_SCRIPT to None bypasses the Visual Studio autodetection entirely; use this if you are running SCons in a Visual Studio cmd window and importing the shell's environment variables. </para> </summary> </cvar> <cvar name="HOST_ARCH"> <summary> <para> Sets the host architecture for Visual Studio compiler. If not set, default to the detected host architecture: note that this may depend on the python you are using. This variable must be passed as an argument to the Environment() constructor; setting it later has no effect. </para> <para> Valid values are the same as for &cv-TARGET_ARCH;. </para> <para> This is currently only used on Windows, but in the future it will be used on other OSes as well. </para> </summary> </cvar> <cvar name="TARGET_ARCH"> <summary> <para> Sets the target architecture for Visual Studio compiler (i.e. the arch of the binaries generated by the compiler). If not set, default to &cv-HOST_ARCH;, or, if that is unset, to the architecture of the running machine's OS (note that the python build or architecture has no effect). This variable must be passed as an argument to the Environment() constructor; setting it later has no effect. This is currently only used on Windows, but in the future it will be used on other OSes as well. </para> <para> Valid values for Windows are <literal>x86</literal>, <literal>i386</literal> (for 32 bits); <literal>amd64</literal>, <literal>emt64</literal>, <literal>x86_64</literal> (for 64 bits); and <literal>ia64</literal> (Itanium). For example, if you want to compile 64-bit binaries, you would set <literal>TARGET_ARCH='x86_64'</literal> in your SCons environment. </para> </summary> </cvar> </sconsdoc>