summaryrefslogtreecommitdiff
path: root/doc/generated/variables.gen
diff options
context:
space:
mode:
Diffstat (limited to 'doc/generated/variables.gen')
-rw-r--r--doc/generated/variables.gen950
1 files changed, 685 insertions, 265 deletions
diff --git a/doc/generated/variables.gen b/doc/generated/variables.gen
index fdfa9bc9c..42935a317 100644
--- a/doc/generated/variables.gen
+++ b/doc/generated/variables.gen
@@ -448,7 +448,7 @@ 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.
+when the &cv-link-PCH; &consvar; is set.
</para>
</listitem>
</varlistentry>
@@ -462,7 +462,7 @@ 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.
+when the &cv-link-PDB; &consvar; is set.
</para>
<para>
@@ -709,69 +709,112 @@ to each definition in &cv-link-CPPDEFINES;.
</term>
<listitem><para>
A platform independent specification of C preprocessor macro definitions.
-The definitions will be added to command lines
+The definitions are added to command lines
through the automatically-generated
-&cv-link-_CPPDEFFLAGS; &consvar; (see above),
+&cv-link-_CPPDEFFLAGS; &consvar;,
which is constructed according to
-the type of value of &cv-CPPDEFINES;:
+the contents of &cv-CPPDEFINES;:
</para>
+<itemizedlist>
+<listitem>
<para>
If &cv-CPPDEFINES; is a string,
the values of the
&cv-link-CPPDEFPREFIX; and &cv-link-CPPDEFSUFFIX; &consvars;
-will be respectively prepended and appended to
-each definition in &cv-link-CPPDEFINES;.
+are respectively prepended and appended to
+each definition in &cv-CPPDEFINES;,
+split on whitespace.
</para>
<example_commands>
-# Will add -Dxyz to POSIX compiler command lines,
+# Adds -Dxyz to POSIX compiler command lines,
# and /Dxyz to Microsoft Visual C++ command lines.
env = Environment(CPPDEFINES='xyz')
</example_commands>
+</listitem>
+<listitem>
<para>
If &cv-CPPDEFINES; is a list,
the values of the
&cv-CPPDEFPREFIX; and &cv-CPPDEFSUFFIX; &consvars;
-will be respectively prepended and appended to
+are respectively prepended and appended to
each element in the list.
-If any element is a list or tuple,
-then the first item is the name being
-defined and the second item is its value:
+If any element is a tuple (or list)
+then the first item of the tuple is the macro name
+and the second is the macro definition.
+If the definition is not omitted or <literal>None</literal>,
+the name and definition are combined into a single
+<literal>name=definition</literal> item
+before the preending/appending.
</para>
<example_commands>
-# Will add -DB=2 -DA to POSIX compiler command lines,
+# Adds -DB=2 -DA to POSIX compiler command lines,
# and /DB=2 /DA to Microsoft Visual C++ command lines.
env = Environment(CPPDEFINES=[('B', 2), 'A'])
</example_commands>
+</listitem>
+<listitem>
<para>
If &cv-CPPDEFINES; is a dictionary,
the values of the
&cv-CPPDEFPREFIX; and &cv-CPPDEFSUFFIX; &consvars;
-will be respectively prepended and appended to
-each item from the dictionary.
-The key of each dictionary item
-is a name being defined
-to the dictionary item's corresponding value;
-if the value is
-<literal>None</literal>,
-then the name is defined without an explicit value.
-Note that the resulting flags are sorted by keyword
-to ensure that the order of the options on the
-command line is consistent each time
-&scons;
-is run.
+are respectively prepended and appended to
+each key from the dictionary.
+If the value for a key is not <literal>None</literal>,
+then the key (macro name) and the value
+(macros definition) are combined into a single
+<literal>name=definition</literal> item
+before the prepending/appending.
</para>
<example_commands>
-# Will add -DA -DB=2 to POSIX compiler command lines,
-# and /DA /DB=2 to Microsoft Visual C++ command lines.
+# Adds -DA -DB=2 to POSIX compiler command lines,
+# or /DA /DB=2 to Microsoft Visual C++ command lines.
env = Environment(CPPDEFINES={'B':2, 'A':None})
</example_commands>
</listitem>
+</itemizedlist>
+
+<para>
+Depending on how contents are added to &cv-CPPDEFINES;,
+it may be transformed into a compound type,
+for example a list containing strings, tuples and/or dictionaries.
+&SCons; can correctly expand such a compound type.
+</para>
+
+<para>
+Note that &SCons; may call the compiler via a shell.
+If a macro definition contains characters such as spaces that
+have meaning to the shell, or is intended to be a string value,
+you may need to use the shell's quoting syntax to avoid
+interpretation by the shell before the preprocessor sees it.
+Function-like macros are not supported via this mechanism
+(and some compilers do not even implement that functionality
+via the command lines).
+When quoting, note that
+one set of quote characters are used to define a &Python; string,
+then quotes embedded inside that would be consumed by the shell
+unless escaped. These examples may help illustrate:
+</para>
+
+<example_commands>
+env = Environment(CPPDEFINES=['USE_ALT_HEADER=\\"foo_alt.h\\"'])
+env = Environment(CPPDEFINES=[('USE_ALT_HEADER', '\\"foo_alt.h\\"')])
+</example_commands>
+
+<para>
+:<emphasis>Changed in version 4.5</emphasis>:
+&SCons; no longer sorts &cv-CPPDEFINES; values entered
+in dictionary form. &Python; now preserves dictionary
+keys in the order they are entered, so it is no longer
+necessary to sort them to ensure a stable command line.
+</para>
+
+</listitem>
</varlistentry>
<varlistentry id="cv-CPPDEFPREFIX">
<term>
@@ -2658,6 +2701,16 @@ target being built.
</para>
</listitem>
</varlistentry>
+ <varlistentry id="cv-FILE_ENCODING">
+ <term>
+ <envar>FILE_ENCODING</envar>
+ </term>
+ <listitem><para>
+File encoding used for files written by &b-link-Textfile; and &b-link-Substfile;. Set to "utf-8" by default.
+<emphasis>Added in version 4.5.0.</emphasis>
+</para>
+</listitem>
+ </varlistentry>
<varlistentry id="cv-FORTRAN">
<term>
<envar>FORTRAN</envar>
@@ -2689,8 +2742,9 @@ in the &cv-link-FORTRANFLAGS;,
<listitem><para>
General user-specified options that are passed to the Fortran compiler.
Similar to &cv-link-FORTRANFLAGS;,
-but this variable is applied to all dialects.
+but this &consvar; is applied to all dialects.
</para>
+<para><emphasis>New in version 4.4.</emphasis></para>
</listitem>
</varlistentry>
<varlistentry id="cv-FORTRANCOMSTR">
@@ -2729,9 +2783,8 @@ contain
(or similar) include or module search path options
that scons generates automatically from &cv-link-FORTRANPATH;.
See
-&cv-link-_FORTRANINCFLAGS; and &cv-link-_FORTRANMODFLAG;,
-below,
-for the variables that expand those options.
+&cv-link-_FORTRANINCFLAGS; and &cv-link-_FORTRANMODFLAG;
+for the &consvars; that expand those options.
</para>
</listitem>
</varlistentry>
@@ -3225,14 +3278,13 @@ determine the version of versioned import library.
<envar>IMPLICIT_COMMAND_DEPENDENCIES</envar>
</term>
<listitem><para>
-Controls whether or not SCons will
+Controls whether or not &SCons; will
add implicit dependencies for the commands
executed to build targets.
</para>
<para>
-By default, SCons will add
-to each target
+By default, &SCons; will add to each target
an implicit dependency on the command
represented by the first argument of any
command line it executes (which is typically
@@ -3476,16 +3528,30 @@ by default.
<envar>JAVABOOTCLASSPATH</envar>
</term>
<listitem><para>
- Specifies the list of directories that
- will be added to the
- &javac; command line
- via the <option>-bootclasspath</option> option.
- The individual directory names will be
- separated by the operating system's path separate character
- (<filename>:</filename> on UNIX/Linux/POSIX,
- <filename>;</filename>
- on Windows).
+ Specifies the location of the bootstrap class files.
+ Can be specified as a string or Node object,
+ or as a list of strings or Node objects.
</para>
+ <para>
+ The value will be added to the JDK command lines
+ via the <option>-bootclasspath</option> option,
+ which requires a system-specific search path separator.
+ This will be supplied by &SCons; as needed when it
+ constructs the command line if &cv-JAVABOOTCLASSPATH; is
+ provided in list form.
+ If &cv-JAVABOOTCLASSPATH; is a single string containing
+ search path separator characters
+ (<literal>:</literal> for POSIX systems or
+ <literal>;</literal> for Windows), it will not be modified;
+ and so is inherently system-specific;
+ to supply the path in a system-independent manner,
+ give &cv-JAVABOOTCLASSPATH; as a list of paths instead.
+ </para>
+ <note>
+ <para>
+ Can only be used when compiling for releases prior to JDK 9.
+ </para>
+ </note>
</listitem>
</varlistentry>
<varlistentry id="cv-JAVAC">
@@ -3541,10 +3607,9 @@ env = Environment(JAVACCOMSTR="Compiling class files $TARGETS from $SOURCES")
</term>
<listitem><para>
The directory in which Java class files may be found.
- This is stripped from the beginning of any Java .class
- file names supplied to the
- <literal>JavaH</literal>
- builder.
+ This is stripped from the beginning of any Java
+ <filename>.class</filename>
+ file names supplied to the &b-link-JavaH; builder.
</para>
</listitem>
</varlistentry>
@@ -3553,19 +3618,54 @@ env = Environment(JAVACCOMSTR="Compiling class files $TARGETS from $SOURCES")
<envar>JAVACLASSPATH</envar>
</term>
<listitem><para>
- Specifies the list of directories that
- will be searched for Java
- <filename>.class</filename>
- file.
- The directories in this list will be added to the
- &javac; and &javah; command lines
- via the <option>-classpath</option> option.
- The individual directory names will be
- separated by the operating system's path separate character
- (<filename>:</filename> on UNIX/Linux/POSIX,
- <filename>;</filename>
- on Windows).
+ Specifies the class search path for the JDK tools.
+ Can be specified as a string or Node object,
+ or as a list of strings or Node objects.
+ Class path entries may be directory names to search
+ for class files or packages, pathnames to archives
+ (<filename>.jar</filename> or <filename>.zip</filename>)
+ containing classes, or paths ending in a "base name wildcard"
+ character (<literal>*</literal>), which matches files
+ in that directory with a <filename>.jar</filename> suffix.
+ See the Java documentation for more details.
</para>
+ <para>
+ The value will be added to the JDK command lines
+ via the <option>-classpath</option> option,
+ which requires a system-specific search path separator.
+ This will be supplied by &SCons; as needed when it
+ constructs the command line if &cv-JAVACLASSPATH; is
+ provided in list form.
+ If &cv-JAVACLASSPATH; is a single string containing
+ search path separator characters
+ (<literal>:</literal> for POSIX systems or
+ <literal>;</literal> for Windows),
+ it will be split on the separator into a list of individual
+ paths for dependency scanning purposes.
+ It will not be modified for JDK command-line usage,
+ so such a string is inherently system-specific;
+ to supply the path in a system-independent manner,
+ give &cv-JAVACLASSPATH; as a list of paths instead.
+ </para>
+ <note>
+ <para>
+ &SCons; <emphasis role="bold">always</emphasis>
+ supplies a <option>-sourcepath</option>
+ when invoking the Java compiler &javac;,
+ regardless of the setting of &cv-link-JAVASOURCEPATH;,
+ as it passes the path(s) to the source(s) supplied
+ in the call to the &b-link-Java; builder via
+ <option>-sourcepath</option> .
+ From the documentation of the standard Java toolkit for &javac;:
+ <quote>If not compiling code for modules, if the
+ <option>--source-path</option> or <option>-sourcepath</option>
+ option is not specified, then the user class path is also
+ searched for source files.</quote>
+ Since <option>-sourcepath</option> is always supplied,
+ &javac; will not use the contents of the value of
+ &cv-JAVACLASSPATH; when searching for sources.
+ </para>
+ </note>
</listitem>
</varlistentry>
<varlistentry id="cv-JAVACLASSSUFFIX">
@@ -3630,7 +3730,37 @@ for Java classes.
<envar>JAVAINCLUDES</envar>
</term>
<listitem><para>
- Include path for Java header files (such as jni.h)
+ Include path for Java header files
+ (such as <filename>jni.h</filename>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-JAVAPROCESSORPATH">
+ <term>
+ <envar>JAVAPROCESSORPATH</envar>
+ </term>
+ <listitem><para>
+ Specifies the location of the annotation processor class files.
+ Can be specified as a string or Node object,
+ or as a list of strings or Node objects.
+ </para>
+ <para>
+ The value will be added to the JDK command lines
+ via the <option>-processorpath</option> option,
+ which requires a system-specific search path separator.
+ This will be supplied by &SCons; as needed when it
+ constructs the command line if &cv-JAVAPROCESSORPATH; is
+ provided in list form.
+ If &cv-JAVAPROCESSORPATH; is a single string containing
+ search path separator characters
+ (<literal>:</literal> for POSIX systems or
+ <literal>;</literal> for Windows), it will not be modified;
+ and so is inherently system-specific;
+ to supply the path in a system-independent manner,
+ give &cv-JAVAPROCESSORPATH; as a list of paths instead.
+ </para>
+ <para>
+ <emphasis>New in version 4.5.0</emphasis>
</para>
</listitem>
</varlistentry>
@@ -3640,24 +3770,31 @@ for Java classes.
</term>
<listitem><para>
Specifies the list of directories that
- will be searched for input
- <filename>.java</filename>
- file.
- The directories in this list will be added to the
- &javac; command line
- via the <option>-sourcepath</option> option.
- The individual directory names will be
- separated by the operating system's path separate character
- (<filename>:</filename> on UNIX/Linux/POSIX,
- <filename>;</filename>
- on Windows).
+ will be searched for input (source)
+ <filename>.java</filename> files.
+ Can be specified as a string or Node object,
+ or as a list of strings or Node objects.
+ </para>
+ <para>
+ The value will be added to the JDK command lines
+ via the <option>-sourcepath</option> option,
+ which requires a system-specific search path separator,
+ This will be supplied by &SCons; as needed when it
+ constructs the command line if &cv-JAVASOURCEPATH; is
+ provided in list form.
+ If &cv-JAVASOURCEPATH; is a single string containing
+ search path separator characters
+ (<literal>:</literal> for POSIX systems or
+ <literal>;</literal> for Windows), it will not be modified,
+ and so is inherently system-specific;
+ to supply the path in a system-independent manner,
+ give &cv-JAVASOURCEPATH; as a list of paths instead.
</para>
-
<para>
- Note that this currently just adds the specified
- directory via the <option>-sourcepath</option> option.
+ Note that the specified directories are only added to
+ the command line via the <option>-sourcepath</option> option.
&SCons; does not currently search the
- &cv-JAVASOURCEPATH; directories for dependency
+ &cv-JAVASOURCEPATH; directories for dependent
<filename>.java</filename>
files.
</para>
@@ -4720,11 +4857,11 @@ 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
+and were configured in SCons using the same &consenv;
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).
+(via the &cv-link-CHANGED_SOURCES; &consvar;).
Any compilations where the object (target) file base name
(minus the <filename>.obj</filename>)
does not match the source file base name
@@ -4839,6 +4976,8 @@ When &cv-MSVC_NOTFOUND_POLICY; is not specified, the default &scons; behavior is
subject to the conditions listed above. The default &scons; behavior may change in the future.
</para>
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_SCRIPT_ARGS">
@@ -4851,8 +4990,8 @@ Pass user-defined arguments to the Visual C++ batch file determined via autodete
<para>
&cv-MSVC_SCRIPT_ARGS; is available for msvc batch file arguments that do not have first-class support
-via construction variables or when there is an issue with the appropriate construction variable validation.
-When available, it is recommended to use the appropriate construction variables (e.g., &cv-link-MSVC_TOOLSET_VERSION;)
+via &consvars; or when there is an issue with the appropriate &consvar; validation.
+When available, it is recommended to use the appropriate &consvars; (e.g., &cv-link-MSVC_TOOLSET_VERSION;)
rather than &cv-MSVC_SCRIPT_ARGS; arguments.
</para>
@@ -4976,6 +5115,8 @@ and compatible with the version of msvc selected.
</itemizedlist>
</para>
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_SCRIPTERROR_POLICY">
@@ -5028,6 +5169,9 @@ Issue a warning when msvc batch file errors are detected.
<para>
Suppress msvc batch file error messages.
</para>
+
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
@@ -5102,6 +5246,8 @@ when setting the script error policy to raise an exception (e.g., <literal>'Erro
</itemizedlist>
</para>
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_SDK_VERSION">
@@ -5221,6 +5367,8 @@ specify a Windows 10 SDK (e.g., <literal>'10.0.20348.0'</literal>) for the build
</itemizedlist>
</para>
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_SPECTRE_LIBS">
@@ -5302,6 +5450,8 @@ The burden is on the user to ensure the requisite libraries with spectre mitigat
</itemizedlist>
</para>
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_TOOLSET_VERSION">
@@ -5473,6 +5623,8 @@ The burden is on the user to ensure the requisite toolset target architecture bu
</itemizedlist>
</para>
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_USE_SCRIPT">
@@ -5500,7 +5652,7 @@ This can be useful to force the use of a compiler version that
Setting
&cv-MSVC_USE_SCRIPT; to <constant>None</constant> bypasses the
Visual Studio autodetection entirely;
-use this if you are running SCons in a Visual Studio <command>cmd</command>
+use this if you are running &SCons; in a Visual Studio <command>cmd</command>
window and importing the shell's environment variables - that
is, if you are sure everything is set correctly already and
you don't want &SCons; to change anything.
@@ -5508,6 +5660,12 @@ you don't want &SCons; to change anything.
<para>
&cv-MSVC_USE_SCRIPT; ignores &cv-link-MSVC_VERSION; and &cv-link-TARGET_ARCH;.
</para>
+
+<para><emphasis>Changed in version 4.4:</emphasis>
+new &cv-link-MSVC_USE_SCRIPT_ARGS; provides a
+way to pass arguments.
+</para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_USE_SCRIPT_ARGS">
@@ -5517,6 +5675,9 @@ you don't want &SCons; to change anything.
<listitem><para>
Provides arguments passed to the script &cv-link-MSVC_USE_SCRIPT;.
</para>
+
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_USE_SETTINGS">
@@ -5598,11 +5759,15 @@ therefore may change at any time.
</emphasis>
The burden is on the user to ensure the dictionary contents are minimally sufficient to
ensure successful builds.
-</para></listitem>
+</para>
+
+</listitem>
</itemizedlist>
</para>
+<para><emphasis>New in version 4.4</emphasis></para>
+
</listitem>
</varlistentry>
<varlistentry id="cv-MSVC_UWP_APP">
@@ -5683,12 +5848,10 @@ The burden is on the user to ensure the requisite UWP libraries are installed.
</term>
<listitem><para>
Sets the preferred version of Microsoft Visual C/C++ to use.
-</para>
-
-<para>
+If the specified version is unavailable (not installed,
+or not discoverable), tool initialization will fail.
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.
+latest version of Visual C/C++ installed on your system.
</para>
<para>
@@ -5701,28 +5864,186 @@ loaded into the environment.
</para>
<para>
-Valid values for Windows are
-<literal>14.3</literal>,
-<literal>14.2</literal>,
-<literal>14.1</literal>,
-<literal>14.1Exp</literal>,
-<literal>14.0</literal>,
-<literal>14.0Exp</literal>,
-<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.
+The valid values for &cv-MSVC_VERSION; represent major versions
+of the compiler, except that versions ending in <literal>Exp</literal>
+refer to "Express" or "Express for Desktop" Visual Studio editions,
+which require distict entries because they use a different
+filesystem layout and have some feature limitations compared to
+the full version.
+The following table shows correspondence
+of the selector string to various version indicators
+('x' is used as a placeholder for
+a single digit that can vary).
+Note that it is not necessary to install Visual Studio
+to build with &SCons; (for example, you can install only
+Build Tools), but if Visual Studio is installed,
+additional builders such as &b-link-MSVSSolution; and
+&b-link-MSVSProject; become avaialable and will
+correspond to the indicated versions.
+</para>
+
+<informaltable>
+ <tgroup cols="5">
+ <colspec align="left"/>
+ <colspec align="center"/>
+ <colspec align="center"/>
+ <colspec align="left"/>
+ <colspec align="center"/>
+ <thead>
+ <row>
+ <entry> SCons Key </entry>
+ <entry> MSVC++ Version </entry>
+ <entry> <literal>_MSVC_VER</literal> </entry>
+ <entry> VS Product </entry>
+ <entry> MSBuild/VS Version </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry> <literal>14.3</literal> </entry>
+ <entry> 14.3x </entry>
+ <entry> 193x </entry>
+ <entry> Visual Studio 2022 </entry>
+ <entry> 17.x </entry>
+ </row>
+ <row>
+ <entry> <literal>14.2</literal> </entry>
+ <entry> 14.2x </entry>
+ <entry> 192x </entry>
+ <entry> Visual Studio 2019 </entry>
+ <entry> 16.x, 16.1x </entry>
+ </row>
+ <row>
+ <entry> <literal>14.1</literal> </entry>
+ <entry> 14.1 or 14.1x </entry>
+ <entry> 191x </entry>
+ <entry> Visual Studio 2017 </entry>
+ <entry> 15.x </entry>
+ </row>
+ <row>
+ <entry> <literal>14.1Exp</literal> </entry>
+ <entry> 14.1 </entry>
+ <entry> 1910 </entry>
+ <entry> Visual Studio 2017 Express </entry>
+ <entry> 15.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>14.0</literal> </entry>
+ <entry> 14.0 </entry>
+ <entry> 1900 </entry>
+ <entry> Visual Studio 2015 </entry>
+ <entry> 14.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>14.0Exp</literal> </entry>
+ <entry> 14.0 </entry>
+ <entry> 1900 </entry>
+ <entry> Visual Studio 2015 Express </entry>
+ <entry> 14.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>12.0</literal> </entry>
+ <entry> 12.0 </entry>
+ <entry> 1800 </entry>
+ <entry> Visual Studio 2013 </entry>
+ <entry> 12.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>12.0Exp</literal> </entry>
+ <entry> 12.0 </entry>
+ <entry> 1800 </entry>
+ <entry> Visual Studio 2013 Express </entry>
+ <entry> 12.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>11.0</literal> </entry>
+ <entry> 11.0 </entry>
+ <entry> 1700 </entry>
+ <entry> Visual Studio 2012 </entry>
+ <entry> 11.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>11.0Exp</literal> </entry>
+ <entry> 11.0 </entry>
+ <entry> 1700 </entry>
+ <entry> Visual Studio 2012 Express </entry>
+ <entry> 11.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>10.0</literal> </entry>
+ <entry> 10.0 </entry>
+ <entry> 1600 </entry>
+ <entry> Visual Studio 2010 </entry>
+ <entry> 10.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>10.0Exp</literal> </entry>
+ <entry> 10.0 </entry>
+ <entry> 1600 </entry>
+ <entry> Visual C++ Express 2010 </entry>
+ <entry> 10.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>9.0</literal> </entry>
+ <entry> 9.0 </entry>
+ <entry> 1500 </entry>
+ <entry> Visual Studio 2008 </entry>
+ <entry> 9.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>9.0Exp</literal> </entry>
+ <entry> 9.0 </entry>
+ <entry> 1500 </entry>
+ <entry> Visual C++ Express 2008 </entry>
+ <entry> 9.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>8.0</literal> </entry>
+ <entry> 8.0 </entry>
+ <entry> 1400 </entry>
+ <entry> Visual Studio 2005 </entry>
+ <entry> 8.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>8.0Exp</literal> </entry>
+ <entry> 8.0 </entry>
+ <entry> 1400 </entry>
+ <entry> Visual C++ Express 2005 </entry>
+ <entry> 8.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>7.1</literal> </entry>
+ <entry> 7.1 </entry>
+ <entry> 1300 </entry>
+ <entry> Visual Studio .NET 2003 </entry>
+ <entry> 7.1 </entry>
+ </row>
+ <row>
+ <entry> <literal>7.0</literal> </entry>
+ <entry> 7.0 </entry>
+ <entry> 1200 </entry>
+ <entry> Visual Studio .NET 2002 </entry>
+ <entry> 7.0 </entry>
+ </row>
+ <row>
+ <entry> <literal>6.0</literal> </entry>
+ <entry> 6.0 </entry>
+ <entry> 1100 </entry>
+ <entry> Visual Studio 6.0 </entry>
+ <entry> 6.0 </entry>
+ </row>
+ </tbody>
+ </tgroup>
+</informaltable>
+
+<para>
+The compilation environment can be further or more precisely specified through the
+use of several other &consvars;: see the descriptions of
+&cv-link-MSVC_TOOLSET_VERSION;,
+&cv-link-MSVC_SDK_VERSION;,
+&cv-link-MSVC_USE_SCRIPT;,
+&cv-link-MSVC_USE_SCRIPT_ARGS;,
+and &cv-link-MSVC_USE_SETTINGS;.
</para>
</listitem>
@@ -5737,28 +6058,39 @@ Versions ending in <literal>Exp</literal> refer to "Express" or
</para>
<variablelist>
<varlistentry>
- <term>VERSION</term> <listitem>
+ <term>VERSION</term>
+ <listitem>
<para>the version of MSVS being used (can be set via
- &cv-link-MSVS_VERSION;)</para>
+ &cv-link-MSVC_VERSION;)</para>
</listitem>
- </varlistentry> <varlistentry>
- <term>VERSIONS</term> <listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>VERSIONS</term>
+ <listitem>
<para>the available versions of MSVS installed</para>
</listitem>
- </varlistentry> <varlistentry>
- <term>VCINSTALLDIR</term> <listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>VCINSTALLDIR</term>
+ <listitem>
<para>installed directory of Visual C++</para>
</listitem>
- </varlistentry> <varlistentry>
- <term>VSINSTALLDIR</term> <listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>VSINSTALLDIR</term>
+ <listitem>
<para>installed directory of Visual Studio</para>
</listitem>
- </varlistentry> <varlistentry>
- <term>FRAMEWORKDIR</term> <listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>FRAMEWORKDIR</term>
+ <listitem>
<para>installed directory of the .NET framework</para>
</listitem>
- </varlistentry> <varlistentry>
- <term>FRAMEWORKVERSIONS</term> <listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>FRAMEWORKVERSIONS</term>
+ <listitem>
<para>
list of installed versions of the .NET framework,
sorted latest to oldest.
@@ -5795,7 +6127,12 @@ Versions ending in <literal>Exp</literal> refer to "Express" or
</listitem>
</varlistentry>
</variablelist>
- <para>If a value is not set, it was not available in the registry.</para>
+ <para>If a value is not set, it was not available in the registry.
+ Visual Studio 2017 and later do not use the registry for
+ primary storage of this information, so typically for these
+ versions only <literal>PROJECTSUFFIX</literal> and
+ <literal>SOLUTIONSUFFIX</literal> will be set.
+ </para>
</listitem>
</varlistentry>
<varlistentry id="cv-MSVS_ARCH">
@@ -5821,7 +6158,7 @@ Versions ending in <literal>Exp</literal> refer to "Express" or
</term>
<listitem><para>
The string placed in a generated
-Microsoft Visual Studio project file as the value of the
+Microsoft Visual C++ project file as the value of the
<literal>ProjectGUID</literal> attribute. There is no default
value. If not
defined, a new GUID is generated.
@@ -5835,9 +6172,9 @@ defined, a new GUID is generated.
</term>
<listitem><para>
The path name placed in a generated
-Microsoft Visual Studio project file as the value of the
+Microsoft Visual C++ project file as the value of the
<literal>SccAuxPath</literal> attribute if the
- <envar>MSVS_SCC_PROVIDER</envar> construction variable is
+ <envar>MSVS_SCC_PROVIDER</envar> &consvar; is
also set. There is
no default value.
@@ -5852,7 +6189,7 @@ no default value.
The root path of projects in your SCC workspace, i.e the
path under which all project and solution files will be
generated. It is used as a reference path from which the
- relative paths of the generated Microsoft Visual Studio project
+ relative paths of the generated Microsoft Visual C++ project
and solution files are computed. The relative project file path
is placed as the value of the <literal>SccLocalPath</literal>
attribute of the project file and as the values of the
@@ -5865,7 +6202,7 @@ no default value.
to the number of projects in the solution) attributes of the
<literal>GlobalSection(SourceCodeControl)</literal> section of
the Microsoft Visual Studio solution file. This is used only if
- the <envar>MSVS_SCC_PROVIDER</envar> construction variable is
+ the <envar>MSVS_SCC_PROVIDER</envar> &consvar; is
also set. The default value is the current working directory.
</para>
</listitem>
@@ -5876,9 +6213,9 @@ no default value.
</term>
<listitem><para>
The project name placed in a generated Microsoft
- Visual Studio project file as the value of the
+ Visual C++ project file as the value of the
<literal>SccProjectName</literal> attribute if the
- <envar>MSVS_SCC_PROVIDER</envar> construction variable
+ <envar>MSVS_SCC_PROVIDER</envar> &consvar;
is also set. In this case the string is also placed in
the <literal>SccProjectName0</literal> attribute of the
<literal>GlobalSection(SourceCodeControl)</literal> section
@@ -5893,7 +6230,7 @@ no default value.
</term>
<listitem><para>
The string placed in a generated Microsoft
- Visual Studio project file as the value of the
+ Visual C++ project file as the value of the
<literal>SccProvider</literal> attribute. The string is
also placed in the <literal>SccProvider0</literal> attribute
of the <literal>GlobalSection(SourceCodeControl)</literal>
@@ -5906,23 +6243,25 @@ no default value.
<term>
<envar>MSVS_VERSION</envar>
</term>
- <listitem><para>Sets the preferred version of Microsoft Visual Studio to use.</para>
+ <listitem><para>Set the preferred version of Microsoft Visual Studio to use.</para>
<para>
If &cv-MSVS_VERSION; is not set, &SCons; will (by default)
select the latest version of Visual Studio installed on your
system. So, if you have version 6 and version 7 (MSVS .NET)
installed, it will prefer version 7. You can override this by
- specifying the <envar>MSVS_VERSION</envar> variable in the
- Environment initialization, setting it to the appropriate
+ specifying the &cv-link-MSVS_VERSION; variable when
+ initializing the Environment, setting it to the appropriate
version ('6.0' or '7.0', for example). If the specified
version isn't installed, tool initialization will fail.
</para>
<para>
- This is obsolete: use &cv-MSVC_VERSION; instead. If
- &cv-MSVS_VERSION; is set and &cv-MSVC_VERSION; is
- not, &cv-MSVC_VERSION; will be set automatically to
- &cv-MSVS_VERSION;. If both are set to different values,
- scons will raise an error.
+ <emphasis>Deprecated since 1.3.0:</emphasis>
+ &cv-MSVS_VERSION; is deprecated in favor of &cv-link-MSVC_VERSION;.
+ As a transitional aid, if &cv-MSVS_VERSION; is set
+ and &cv-MSVC_VERSION; is not,
+ &cv-MSVC_VERSION; will be initialized to the value
+ of &cv-MSVS_VERSION;.
+ An error is raised if If both are set and have different values,
</para>
</listitem>
</varlistentry>
@@ -5932,8 +6271,8 @@ no default value.
</term>
<listitem><para>
The build command line placed in a generated Microsoft Visual
- Studio project file. The default is to have Visual Studio
- invoke SCons with any specified build targets.
+ C++ project file. The default is to have Visual Studio
+ invoke &SCons; with any specified build targets.
</para>
</listitem>
</varlistentry>
@@ -5943,9 +6282,9 @@ no default value.
</term>
<listitem><para>
The clean command line placed in a generated Microsoft Visual
- Studio project file. The default is to have Visual Studio
- invoke SCons with the -c option to remove any specified
- targets.
+ C++ project file. The default is to have Visual Studio
+ invoke &SCons; with the <option>-c</option> option to remove
+ any specified targets.
</para>
</listitem>
</varlistentry>
@@ -5955,7 +6294,7 @@ no default value.
</term>
<listitem><para>
The encoding string placed in a generated Microsoft
- Visual Studio project file. The default is encoding
+ Visual C++ project file. The default is encoding
<literal>Windows-1252</literal>.
</para>
</listitem>
@@ -5964,7 +6303,7 @@ no default value.
<term>
<envar>MSVSPROJECTCOM</envar>
</term>
- <listitem><para>The action used to generate Microsoft Visual Studio project files.</para>
+ <listitem><para>The action used to generate Microsoft Visual C++ project files.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-MSVSPROJECTSUFFIX">
@@ -5972,11 +6311,12 @@ no default value.
<envar>MSVSPROJECTSUFFIX</envar>
</term>
<listitem><para>
- The suffix used for Microsoft Visual Studio project (DSP)
- files. The default value is <filename>.vcproj</filename>
- when using Visual Studio version 7.x (.NET) or later version,
- and <filename>.dsp</filename> when using earlier versions of
- Visual Studio.
+ The suffix used for Microsoft Visual C++ project (DSP)
+ files. The default value is
+ <filename>.vcxproj</filename> when using Visual Studio 2010
+ and later, <filename>.vcproj</filename>
+ when using Visual Studio versions between 2002 and 2008,
+ and <filename>.dsp</filename> when using Visual Studio 6.0.
</para>
</listitem>
</varlistentry>
@@ -5986,8 +6326,8 @@ no default value.
</term>
<listitem><para>
The rebuild command line placed in a generated Microsoft
- Visual Studio project file. The default is to have Visual
- Studio invoke SCons with any specified rebuild targets.
+ Visual C++ project file. The default is to have Visual
+ Studio invoke &SCons; with any specified rebuild targets.
</para>
</listitem>
@@ -5997,8 +6337,8 @@ no default value.
<envar>MSVSSCONS</envar>
</term>
<listitem><para>
- The SCons used in generated Microsoft Visual Studio project
- files. The default is the version of SCons being used to
+ The &SCons; used in generated Microsoft Visual C++ project
+ files. The default is the version of &SCons; being used to
generate the project file.
</para>
</listitem>
@@ -6008,8 +6348,8 @@ no default value.
<envar>MSVSSCONSCOM</envar>
</term>
<listitem><para>
- The default SCons command used in generated Microsoft Visual
- Studio project files.
+ The default &SCons; command used in generated Microsoft Visual
+ C++ project files.
</para>
</listitem>
</varlistentry>
@@ -6019,10 +6359,10 @@ no default value.
</term>
<listitem><para>
The sconscript file (that is, &SConstruct; or &SConscript;
- file) that will be invoked by Visual Studio project files
+ file) that will be invoked by Visual C++ project files
(through the &cv-link-MSVSSCONSCOM; variable). The default
is the same sconscript file that contains the call to
- &b-MSVSProject; to build the project file.
+ &b-link-MSVSProject; to build the project file.
</para>
</listitem>
</varlistentry>
@@ -6031,7 +6371,7 @@ no default value.
<envar>MSVSSCONSFLAGS</envar>
</term>
<listitem><para>
- The SCons flags used in generated Microsoft Visual Studio project files.
+ The &SCons; flags used in generated Microsoft Visual C++ project files.
</para>
</listitem>
</varlistentry>
@@ -6049,9 +6389,8 @@ no default value.
<listitem><para>
The suffix used for Microsoft Visual Studio solution (DSW)
files. The default value is <filename>.sln</filename>
- when using Visual Studio version 7.x (.NET), and
- <filename>.dsw</filename> when using earlier versions of
- Visual Studio.
+ when using Visual Studio version 7.x (.NET 2002) and later,
+ and <filename>.dsw</filename> when using Visual Studio 6.0.
</para>
</listitem>
</varlistentry>
@@ -6475,9 +6814,9 @@ If this is not set, then &cv-link-PCHCOM; (the command line) is displayed.
<envar>PCHPDBFLAGS</envar>
</term>
<listitem><para>
-A construction variable that, when expanded,
+A &consvar; that, when expanded,
adds the <option>/yD</option> flag to the command line
-only if the &cv-link-PDB; construction variable is set.
+only if the &cv-link-PDB; &consvar; is set.
</para>
</listitem>
</varlistentry>
@@ -6909,51 +7248,63 @@ The prefix used for PostScript file names.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_AUTOSCAN">
+ <varlistentry id="cv-QT3_AUTOSCAN">
<term>
- <envar>QT_AUTOSCAN</envar>
+ <envar>QT3_AUTOSCAN</envar>
</term>
<listitem><para>
Turn off scanning for mocable files. Use the &b-link-Moc; Builder to explicitly
specify files to run <command>moc</command> on.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_AUTOSCAN.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_BINPATH">
+ <varlistentry id="cv-QT3_BINPATH">
<term>
- <envar>QT_BINPATH</envar>
+ <envar>QT3_BINPATH</envar>
</term>
<listitem><para>
The path where the Qt binaries are installed.
-The default value is '&cv-link-QTDIR;<filename>/bin</filename>'.
+The default value is '&cv-link-QT3DIR;<filename>/bin</filename>'.
+</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_BINPATH.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_CPPPATH">
+ <varlistentry id="cv-QT3_CPPPATH">
<term>
- <envar>QT_CPPPATH</envar>
+ <envar>QT3_CPPPATH</envar>
</term>
<listitem><para>
The path where the Qt header files are installed.
-The default value is '&cv-link-QTDIR;/include'.
+The default value is '&cv-link-QT3DIR;/include'.
Note: If you set this variable to <constant>None</constant>,
the tool won't change the &cv-link-CPPPATH;
construction variable.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_CPPPATH.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_DEBUG">
+ <varlistentry id="cv-QT3_DEBUG">
<term>
- <envar>QT_DEBUG</envar>
+ <envar>QT3_DEBUG</envar>
</term>
<listitem><para>
Prints lots of debugging information while scanning for moc files.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_DEBUG.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_LIB">
+ <varlistentry id="cv-QT3_LIB">
<term>
- <envar>QT_LIB</envar>
+ <envar>QT3_LIB</envar>
</term>
<listitem><para>
Default value is <literal>'qt'</literal>.
@@ -6961,33 +7312,39 @@ You may want to set this to <literal>'qt-mt'</literal>.
Note: If you set this variable to <constant>None</constant>,
the tool won't change the &cv-link-LIBS; variable.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_LIB.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_LIBPATH">
+ <varlistentry id="cv-QT3_LIBPATH">
<term>
- <envar>QT_LIBPATH</envar>
+ <envar>QT3_LIBPATH</envar>
</term>
<listitem><para>
The path where the Qt libraries are installed.
-The default value is '&cv-link-QTDIR;<filename>/lib</filename>'.
+The default value is '&cv-link-QT3DIR;<filename>/lib</filename>'.
Note: If you set this variable to <constant>None</constant>,
the tool won't change the &cv-link-LIBPATH;
construction variable.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_LIBPATH.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOC">
+ <varlistentry id="cv-QT3_MOC">
<term>
- <envar>QT_MOC</envar>
+ <envar>QT3_MOC</envar>
</term>
<listitem><para>
-Default value is '&cv-link-QT_BINPATH;<filename>/moc</filename>'.
+Default value is '&cv-link-QT3_BINPATH;<filename>/moc</filename>'.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCCXXPREFIX">
+ <varlistentry id="cv-QT3_MOCCXXPREFIX">
<term>
- <envar>QT_MOCCXXPREFIX</envar>
+ <envar>QT3_MOCCXXPREFIX</envar>
</term>
<listitem><para>
Default value is <literal>''</literal>.
@@ -6995,204 +7352,264 @@ Prefix for <command>moc</command> output files when source is a C++ file.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCCXXSUFFIX">
+ <varlistentry id="cv-QT3_MOCCXXSUFFIX">
<term>
- <envar>QT_MOCCXXSUFFIX</envar>
+ <envar>QT3_MOCCXXSUFFIX</envar>
</term>
<listitem><para>
Default value is <literal>'.moc'</literal>.
Suffix for <command>moc</command> output files when source is a C++ file.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCCXXSUFFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCFROMCXXCOM">
+ <varlistentry id="cv-QT3_MOCFROMCXXCOM">
<term>
- <envar>QT_MOCFROMCXXCOM</envar>
+ <envar>QT3_MOCFROMCXXCOM</envar>
</term>
<listitem><para>
Command to generate a moc file from a C++ file.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCFROMCXXCOM.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCFROMCXXCOMSTR">
+ <varlistentry id="cv-QT3_MOCFROMCXXCOMSTR">
<term>
- <envar>QT_MOCFROMCXXCOMSTR</envar>
+ <envar>QT3_MOCFROMCXXCOMSTR</envar>
</term>
<listitem><para>
The string displayed when generating a moc file from a C++ file.
-If this is not set, then &cv-link-QT_MOCFROMCXXCOM; (the command line) is displayed.
+If this is not set, then &cv-link-QT3_MOCFROMCXXCOM; (the command line) is displayed.
+</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCFROMCXXCOMSTR.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCFROMCXXFLAGS">
+ <varlistentry id="cv-QT3_MOCFROMCXXFLAGS">
<term>
- <envar>QT_MOCFROMCXXFLAGS</envar>
+ <envar>QT3_MOCFROMCXXFLAGS</envar>
</term>
<listitem><para>
Default value is <literal>'-i'</literal>.
These flags are passed to <command>moc</command> when moccing a C++ file.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCFROMCXXFLAGS.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCFROMHCOM">
+ <varlistentry id="cv-QT3_MOCFROMHCOM">
<term>
- <envar>QT_MOCFROMHCOM</envar>
+ <envar>QT3_MOCFROMHCOM</envar>
</term>
<listitem><para>
Command to generate a moc file from a header.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCFROMSHCOM.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCFROMHCOMSTR">
+ <varlistentry id="cv-QT3_MOCFROMHCOMSTR">
<term>
- <envar>QT_MOCFROMHCOMSTR</envar>
+ <envar>QT3_MOCFROMHCOMSTR</envar>
</term>
<listitem><para>
The string displayed when generating a moc file from a C++ file.
-If this is not set, then &cv-link-QT_MOCFROMHCOM; (the command line) is displayed.
+If this is not set, then &cv-link-QT3_MOCFROMHCOM; (the command line) is displayed.
+</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCFROMSHCOMSTR.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCFROMHFLAGS">
+ <varlistentry id="cv-QT3_MOCFROMHFLAGS">
<term>
- <envar>QT_MOCFROMHFLAGS</envar>
+ <envar>QT3_MOCFROMHFLAGS</envar>
</term>
<listitem><para>
Default value is <literal>''</literal>. These flags are passed to <command>moc</command>
when moccing a header file.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCFROMSHFLAGS.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCHPREFIX">
+ <varlistentry id="cv-QT3_MOCHPREFIX">
<term>
- <envar>QT_MOCHPREFIX</envar>
+ <envar>QT3_MOCHPREFIX</envar>
</term>
<listitem><para>
Default value is <literal>'moc_'</literal>.
Prefix for <command>moc</command> output files when source is a header.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCHPREFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_MOCHSUFFIX">
+ <varlistentry id="cv-QT3_MOCHSUFFIX">
<term>
- <envar>QT_MOCHSUFFIX</envar>
+ <envar>QT3_MOCHSUFFIX</envar>
</term>
<listitem><para>
Default value is '&cv-link-CXXFILESUFFIX;'.
Suffix for moc output files when source is a header.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_MOCHSUFFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UIC">
+ <varlistentry id="cv-QT3_UIC">
<term>
- <envar>QT_UIC</envar>
+ <envar>QT3_UIC</envar>
</term>
<listitem><para>
-Default value is '&cv-link-QT_BINPATH;<filename>/uic</filename>'.
+Default value is '&cv-link-QT3_BINPATH;<filename>/uic</filename>'.
+</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UIC.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICCOM">
+ <varlistentry id="cv-QT3_UICCOM">
<term>
- <envar>QT_UICCOM</envar>
+ <envar>QT3_UICCOM</envar>
</term>
<listitem><para>
Command to generate header files from <filename>.ui</filename> files.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICCOM.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICCOMSTR">
+ <varlistentry id="cv-QT3_UICCOMSTR">
<term>
- <envar>QT_UICCOMSTR</envar>
+ <envar>QT3_UICCOMSTR</envar>
</term>
<listitem><para>
The string displayed when generating header files from <filename>.ui</filename> files.
-If this is not set, then &cv-link-QT_UICCOM; (the command line) is displayed.
+If this is not set, then &cv-link-QT3_UICCOM; (the command line) is displayed.
+</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICCOMSTR.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICDECLFLAGS">
+ <varlistentry id="cv-QT3_UICDECLFLAGS">
<term>
- <envar>QT_UICDECLFLAGS</envar>
+ <envar>QT3_UICDECLFLAGS</envar>
</term>
<listitem><para>
Default value is ''. These flags are passed to <command>uic</command>
when creating a header file from a <filename>.ui</filename> file.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICDECLFLAGS.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICDECLPREFIX">
+ <varlistentry id="cv-QT3_UICDECLPREFIX">
<term>
- <envar>QT_UICDECLPREFIX</envar>
+ <envar>QT3_UICDECLPREFIX</envar>
</term>
<listitem><para>
Default value is <literal>''</literal>.
Prefix for <command>uic</command> generated header files.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICDECLPREFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICDECLSUFFIX">
+ <varlistentry id="cv-QT3_UICDECLSUFFIX">
<term>
- <envar>QT_UICDECLSUFFIX</envar>
+ <envar>QT3_UICDECLSUFFIX</envar>
</term>
<listitem><para>
Default value is <literal>'.h'</literal>.
Suffix for <command>uic</command> generated header files.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICDECLSUFFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICIMPLFLAGS">
+ <varlistentry id="cv-QT3_UICIMPLFLAGS">
<term>
- <envar>QT_UICIMPLFLAGS</envar>
+ <envar>QT3_UICIMPLFLAGS</envar>
</term>
<listitem><para>
Default value is <literal>''</literal>.
These flags are passed to <command>uic</command> when creating a C++
file from a <filename>.ui</filename> file.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICIMPFLAGS.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICIMPLPREFIX">
+ <varlistentry id="cv-QT3_UICIMPLPREFIX">
<term>
- <envar>QT_UICIMPLPREFIX</envar>
+ <envar>QT3_UICIMPLPREFIX</envar>
</term>
<listitem><para>
Default value is <literal>'uic_'</literal>.
Prefix for uic generated implementation files.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICIMPLPREFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UICIMPLSUFFIX">
+ <varlistentry id="cv-QT3_UICIMPLSUFFIX">
<term>
- <envar>QT_UICIMPLSUFFIX</envar>
+ <envar>QT3_UICIMPLSUFFIX</envar>
</term>
<listitem><para>
Default value is '&cv-link-CXXFILESUFFIX;'. Suffix for uic generated implementation
files.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UICIMPLSUFFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QT_UISUFFIX">
+ <varlistentry id="cv-QT3_UISUFFIX">
<term>
- <envar>QT_UISUFFIX</envar>
+ <envar>QT3_UISUFFIX</envar>
</term>
<listitem><para>
Default value is <literal>'.ui'</literal>.
Suffix of designer input files.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QT_UISUFFIX.
+</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-QTDIR">
+ <varlistentry id="cv-QT3DIR">
<term>
- <envar>QTDIR</envar>
+ <envar>QT3DIR</envar>
</term>
<listitem><para>
The path to the Qt installation to build against.
If not already set,
-&t-link-qt; tool tries to obtain this from
+&t-link-qt3; tool tries to obtain this from
<varname>os.environ</varname>;
if not found there, it tries to make a guess.
</para>
+<para>
+<emphasis>Changed in 4.5.0</emphasis>: renamed from QTDIR.
+</para>
</listitem>
</varlistentry>
<varlistentry id="cv-RANLIB">
@@ -7281,7 +7698,7 @@ The flags passed to the resource compiler by the &b-link-RES; builder.
<envar>RCINCFLAGS</envar>
</term>
<listitem><para>
-An automatically-generated construction variable
+An automatically-generated &consvar;
containing the command-line options
for specifying directories to be searched
by the resource compiler.
@@ -7301,7 +7718,7 @@ of each directory in &cv-link-CPPPATH;.
The prefix (flag) used to specify an include directory
on the resource compiler command line.
This will be prepended to the beginning of each directory
-in the &cv-link-CPPPATH; construction variable
+in the &cv-link-CPPPATH; &consvar;
when the &cv-link-RCINCFLAGS; variable is expanded.
</para>
</listitem>
@@ -7314,7 +7731,7 @@ when the &cv-link-RCINCFLAGS; variable is expanded.
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-link-CPPPATH; construction variable
+in the &cv-link-CPPPATH; &consvar;
when the &cv-link-RCINCFLAGS; variable is expanded.
</para>
</listitem>
@@ -7411,7 +7828,9 @@ If this is not set, then &cv-link-RMICCOM; (the command line) is displayed.
</para>
<example_commands>
-env = Environment(RMICCOMSTR = "Generating stub/skeleton class files $TARGETS from $SOURCES")
+env = Environment(
+ RMICCOMSTR="Generating stub/skeleton class files $TARGETS from $SOURCES"
+)
</example_commands>
</listitem>
</varlistentry>
@@ -7574,11 +7993,11 @@ for more information.
<envar>SCONS_HOME</envar>
</term>
<listitem><para>
- The (optional) path to the SCons library directory,
+ The (optional) path to the &SCons; library directory,
initialized from the external environment. If set, this is
used to construct a shorter and more efficient search path in
the &cv-link-MSVSSCONS; command line executed from Microsoft
- Visual Studio project files.
+ Visual C++ project files.
</para>
</listitem>
</varlistentry>
@@ -7790,21 +8209,39 @@ construction variable for more information.
<envar>SHELL_ENV_GENERATORS</envar>
</term>
<listitem><para>
-Must be a list (or an iterable) containing functions where each function generates or
-alters the environment dictionary which will be used
-when executing the &cv-link-SPAWN; function. The functions will initially
-be passed a reference of the current execution environment (e.g. env['ENV']),
-and each called while iterating the list. Each function must return a dictionary
-which will then be passed to the next function iterated. The return dictionary
-should contain keys which represent the environment variables and their respective
-values.
+A hook allowing the execution environment to be modified prior
+to the actual execution of a command line from an action
+via the spawner function defined by &cv-link-SPAWN;.
+Allows substitution based on targets and sources,
+as well as values from the &consenv;,
+adding extra environment variables, etc.
+ </para>
-This primary purpose of this construction variable is to give the user the ability
-to substitute execution environment variables based on env, targets, and sources.
-If desired, the user can completely customize the execution environment for particular
-targets.
+ <para>
+The value must be a list (or other iterable)
+of functions which each generate or
+alter the execution environment dictionary.
+The first function will be passed a copy of the initial execution environment
+(&cv-link-ENV; in the current &consenv;);
+the dictionary returned by that function is passed to the next,
+until the iterable is exhausted and the result returned
+for use by the command spawner.
+The original execution environment is not modified.
</para>
+ <para>
+Each function provided in &cv-SHELL_ENV_GENERATORS; must accept four
+arguments and return a dictionary:
+<varname>env</varname> is the &consenv; for this action;
+<varname>target</varname> is the list of targets associated with this action;
+<varname>source</varname> is the list of sources associated with this action;
+and <varname>shell_env</varname> is the current dictionary after iterating
+any previous &cv-SHELL_ENV_GENERATORS; functions
+(this can be compared to the original execution environment,
+which is available as <literal>env['ENV']</literal>, to detect any changes).
+ </para>
+
+ <para>Example:</para>
<example_commands>
def custom_shell_env(env, target, source, shell_env):
"""customize shell_env if desired"""
@@ -7815,24 +8252,7 @@ def custom_shell_env(env, target, source, shell_env):
env["SHELL_ENV_GENERATORS"] = [custom_shell_env]
</example_commands>
- <para>
- <varname>env</varname>
-The SCons construction environment from which the
-execution environment can be derived from.
- </para>
- <para>
- <varname>target</varname>
-The list of targets associated with this action.
- </para>
- <para>
- <varname>source</varname>
-The list of sources associated with this action.
- </para>
- <para>
- <varname>shell_env</varname>
-The current shell_env after iterating other SHELL_ENV_GENERATORS functions. This can be compared
-to the passed env['ENV'] to detect any changes.
- </para>
+ <para><emphasis>Available since 4.4</emphasis></para>
</listitem>
</varlistentry>
<varlistentry id="cv-SHF03">