summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2021-04-11 00:09:03 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2021-04-13 20:56:50 (GMT)
commit791e7939e34c3b8333a1221002ff894784d4e2e3 (patch)
treeeb11d48a84eacbf7e97f4f8fe44d82b09eeb15c4
parent70b783ca59bfea4276e3bcb2b3becee20ca35eaf (diff)
downloadSCons-791e7939e34c3b8333a1221002ff894784d4e2e3.zip
SCons-791e7939e34c3b8333a1221002ff894784d4e2e3.tar.gz
SCons-791e7939e34c3b8333a1221002ff894784d4e2e3.tar.bz2
Fix ninja.xml syntax error
-rw-r--r--SCons/Tool/ninjaCommon/ninja.xml2
-rw-r--r--doc/generated/builders.gen65
-rw-r--r--doc/generated/builders.mod4
-rw-r--r--doc/generated/functions.gen360
-rw-r--r--doc/generated/tools.gen11
-rw-r--r--doc/generated/tools.mod2
-rw-r--r--doc/generated/variables.gen464
-rw-r--r--doc/generated/variables.mod38
8 files changed, 650 insertions, 296 deletions
diff --git a/SCons/Tool/ninjaCommon/ninja.xml b/SCons/Tool/ninjaCommon/ninja.xml
index 8f7de36..c28d697 100644
--- a/SCons/Tool/ninjaCommon/ninja.xml
+++ b/SCons/Tool/ninjaCommon/ninja.xml
@@ -176,9 +176,11 @@ See its __doc__ string for a discussion of the format.
This propagates directly into the generated Ninja.build file.
From Ninja's docs:
<blockquote>
+ <para>
builddir
A directory for some Ninja output files. ... (You can also store other build output in this
directory.)
+ </para>
</blockquote>
</para>
</summary>
diff --git a/doc/generated/builders.gen b/doc/generated/builders.gen
index bfb1ff1..e2b98fe 100644
--- a/doc/generated/builders.gen
+++ b/doc/generated/builders.gen
@@ -1217,6 +1217,59 @@ env.MSVSSolution(
</example_commands>
</listitem>
</varlistentry>
+ <varlistentry id="b-Ninja">
+ <term><function>Ninja</function>()</term>
+ <term><replaceable>env</replaceable>.<methodname>Ninja</methodname>()</term>
+ <listitem><para>
+ &b-Ninja; is a special builder which
+ adds a target to create a ninja build file.
+ The builder does not require any source files to be specified,
+
+ </para>
+ <para>
+ If called with no arguments,
+ the builder will default to a target name of
+ <filename>ninja.build</filename>.
+ </para>
+ <para>
+ If called with a single positional argument,
+ &scons; will "deduce" the target name from that source
+ argument, giving it the same name, and then
+ ignore the source.
+ This is the usual way to call the builder if a
+ non-default target name is wanted.
+ </para>
+ <para>
+ If called with either the
+ <parameter>target=</parameter>
+ or <parameter>source=</parameter> keyword arguments,
+ the value of the argument is taken as the target name.
+ If called with both, the
+ <parameter>target=</parameter>
+ value is used and <parameter>source=</parameter> is ignored.
+ If called with multiple sources,
+ the source list will be ignored,
+ since there is no way to deduce what the intent was;
+ in this case the default target name will be used.
+ </para>
+ <note>
+ <para>
+ You must load the &t-ninja; tool prior to specifying
+ any part of your build or some source/output
+ files will not show up in the compilation database.
+ </para>
+ <para>
+ To use this tool you must install pypi's <ulink url="https://pypi.org/project/ninja/">ninja
+ package</ulink>.
+ This can be done via
+ <command>pip install ninja</command>
+ </para>
+ </note>
+ <para>
+ <emphasis>Available since &scons; 4.2.</emphasis>
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry id="b-Object">
<term><function>Object</function>()</term>
<term><replaceable>env</replaceable>.<methodname>Object</methodname>()</term>
@@ -1322,7 +1375,7 @@ env.Package(
SUMMARY="balalalalal",
DESCRIPTION="this should be really really long",
X_RPM_GROUP="Application/fu",
- SOURCE_URL="http://foo.org/foo-1.2.3.tar.gz",
+ SOURCE_URL="https://foo.org/foo-1.2.3.tar.gz",
)
</example_commands>
@@ -1333,7 +1386,7 @@ since it is not under the project top directory.
However, since no <parameter>source</parameter>
is specified to the &b-Package; builder,
it is selected for packaging by the default sources rule.
-Since packaging is done using &cv-PACKAGEROOT;, no write is
+Since packaging is done using &cv-link-PACKAGEROOT;, no write is
actually done to the system's <filename>/bin</filename> directory,
and the target <emphasis>will</emphasis> be selected since
after rebasing to underneath &cv-PACKAGEROOT; it is now under
@@ -1347,13 +1400,13 @@ the top directory of the project.
<term><replaceable>env</replaceable>.<methodname>PCH</methodname>()</term>
<listitem><para>
Builds a Microsoft Visual C++ precompiled header.
-Calling this builder method
+Calling this builder
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
+This builder 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 &b-PCH; builder is generally used in
+conjunction with the &cv-link-PCH; construction variable to force object files to use
the precompiled header:
</para>
diff --git a/doc/generated/builders.mod b/doc/generated/builders.mod
index 4835118..3542b99 100644
--- a/doc/generated/builders.mod
+++ b/doc/generated/builders.mod
@@ -37,6 +37,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY b-MOFiles "<function xmlns='http://www.scons.org/dbxsd/v1.0'>MOFiles</function>">
<!ENTITY b-MSVSProject "<function xmlns='http://www.scons.org/dbxsd/v1.0'>MSVSProject</function>">
<!ENTITY b-MSVSSolution "<function xmlns='http://www.scons.org/dbxsd/v1.0'>MSVSSolution</function>">
+<!ENTITY b-Ninja "<function xmlns='http://www.scons.org/dbxsd/v1.0'>Ninja</function>">
<!ENTITY b-Object "<function xmlns='http://www.scons.org/dbxsd/v1.0'>Object</function>">
<!ENTITY b-Package "<function xmlns='http://www.scons.org/dbxsd/v1.0'>Package</function>">
<!ENTITY b-PCH "<function xmlns='http://www.scons.org/dbxsd/v1.0'>PCH</function>">
@@ -94,6 +95,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY b-env-MOFiles "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.MOFiles</function>">
<!ENTITY b-env-MSVSProject "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.MSVSProject</function>">
<!ENTITY b-env-MSVSSolution "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.MSVSSolution</function>">
+<!ENTITY b-env-Ninja "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.Ninja</function>">
<!ENTITY b-env-Object "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.Object</function>">
<!ENTITY b-env-Package "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.Package</function>">
<!ENTITY b-env-PCH "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.PCH</function>">
@@ -157,6 +159,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY b-link-MOFiles "<link linkend='b-MOFiles' xmlns='http://www.scons.org/dbxsd/v1.0'><function>MOFiles</function></link>">
<!ENTITY b-link-MSVSProject "<link linkend='b-MSVSProject' xmlns='http://www.scons.org/dbxsd/v1.0'><function>MSVSProject</function></link>">
<!ENTITY b-link-MSVSSolution "<link linkend='b-MSVSSolution' xmlns='http://www.scons.org/dbxsd/v1.0'><function>MSVSSolution</function></link>">
+<!ENTITY b-link-Ninja "<link linkend='b-Ninja' xmlns='http://www.scons.org/dbxsd/v1.0'><function>Ninja</function></link>">
<!ENTITY b-link-Object "<link linkend='b-Object' xmlns='http://www.scons.org/dbxsd/v1.0'><function>Object</function></link>">
<!ENTITY b-link-Package "<link linkend='b-Package' xmlns='http://www.scons.org/dbxsd/v1.0'><function>Package</function></link>">
<!ENTITY b-link-PCH "<link linkend='b-PCH' xmlns='http://www.scons.org/dbxsd/v1.0'><function>PCH</function></link>">
@@ -214,6 +217,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY b-link-env-MOFiles "<link linkend='b-MOFiles' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.MOFiles</function></link>">
<!ENTITY b-link-env-MSVSProject "<link linkend='b-MSVSProject' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.MSVSProject</function></link>">
<!ENTITY b-link-env-MSVSSolution "<link linkend='b-MSVSSolution' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.MSVSSolution</function></link>">
+<!ENTITY b-link-env-Ninja "<link linkend='b-Ninja' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.Ninja</function></link>">
<!ENTITY b-link-env-Object "<link linkend='b-Object' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.Object</function></link>">
<!ENTITY b-link-env-Package "<link linkend='b-Package' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.Package</function></link>">
<!ENTITY b-link-env-PCH "<link linkend='b-PCH' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.PCH</function></link>">
diff --git a/doc/generated/functions.gen b/doc/generated/functions.gen
index 61b1fed..c9ffc86 100644
--- a/doc/generated/functions.gen
+++ b/doc/generated/functions.gen
@@ -425,37 +425,153 @@ Multiple targets can be passed in to a single call to
<varlistentry id="f-Append">
<term><replaceable>env</replaceable>.<methodname>Append</methodname>(<parameter>key=val, [...]</parameter>)</term>
<listitem><para>
-Appends the specified keyword arguments
-to the end of construction variables in the environment.
-If the Environment does not have
-the specified construction variable,
-it is simply added to the environment.
-If the values of the construction variable
-and the keyword argument are the same type,
-then the two values will be simply added together.
-Otherwise, the construction variable
-and the value of the keyword argument
-are both coerced to lists,
-and the lists are added together.
-(See also the &Prepend; method).
+Intelligently append values to &consvars; in the &consenv;
+named by <varname>env</varname>.
+The &consvars; and values to add to them are passed as
+<parameter>key=val</parameter> pairs (Python keyword arguments).
+&f-env-Append; is designed to allow adding values
+without normally having to know the data type of an existing &consvar;.
+Regular Python syntax can also be used to manipulate the &consvar;,
+but for that you must know the type of the &consvar;:
+for example, different Python syntax is needed to combine
+a list of values with a single string value, or vice versa.
+Some pre-defined &consvars; do have type expectations
+based on how &SCons; will use them,
+for example &cv-link-CPPDEFINES; is normally a string or a list of strings,
+but can be a string,
+a list of strings,
+a list of tuples,
+or a dictionary, while &cv-link-LIBEMITTER;
+would expect a callable or list of callables,
+and &cv-link-BUILDERS; would expect a mapping type.
+Consult the documentation for the various &consvars; for more details.
+</para>
+
+<para>
+The following descriptions apply to both the append
+and prepend functions, the only difference being
+the insertion point of the added values.
+</para>
+<para>
+If <varname>env</varname>. does not have a &consvar;
+indicated by <parameter>key</parameter>,
+<parameter>val</parameter>
+is added to the environment under that key as-is.
+</para>
+
+<para>
+<parameter>val</parameter> can be almost any type,
+and &SCons; will combine it with an existing value into an appropriate type,
+but there are a few special cases to be aware of.
+When two strings are combined,
+the result is normally a new string,
+with the caller responsible for supplying any needed separation.
+The exception to this is the &consvar; &cv-link-CPPDEFINES;,
+in which each item will be postprocessed by adding a prefix
+and/or suffix,
+so the contents are treated as a list of strings, that is,
+adding a string will result in a separate string entry,
+not a combined string. For &cv-CPPDEFINES; as well as
+for &cv-link-LIBS;, and the various <varname>*PATH</varname>
+variables, &SCons; will supply the compiler-specific
+syntax (e.g. adding a <literal>-D</literal> or <literal>/D</literal>
+prefix for &cv-CPPDEFINES;), so this syntax should be omitted when
+adding values to these variables.
+Example (gcc syntax shown in the expansion of &CPPDEFINES;):
</para>
+<example_commands>
+env = Environment(CXXFLAGS="-std=c11", CPPDEFINES="RELEASE")
+print("CXXFLAGS={}, CPPDEFINES={}".format(env['CXXFLAGS'], env['CPPDEFINES']))
+# notice including a leading space in CXXFLAGS value
+env.Append(CXXFLAGS=" -O", CPPDEFINES="EXTRA")
+print("CXXFLAGS={}, CPPDEFINES={}".format(env['CXXFLAGS'], env['CPPDEFINES']))
+print("CPPDEFINES will expand to {}".format(env.subst("$_CPPDEFFLAGS")))
+</example_commands>
+
+<screen>
+$ scons -Q
+CXXFLAGS=-std=c11, CPPDEFINES=RELEASE
+CXXFLAGS=-std=c11 -O, CPPDEFINES=['RELEASE', 'EXTRA']
+CPPDEFINES will expand to -DRELEASE -DEXTRA
+scons: `.' is up to date.
+</screen>
+
<para>
-Example:
+Because &cv-link-CPPDEFINES; is intended to
+describe C/C++ pre-processor macro definitions,
+it accepts additional syntax.
+Preprocessor macros can be valued, or un-valued, as in
+<computeroutput>-DBAR=1</computeroutput> or
+<computeroutput>-DFOO</computeroutput>.
+The macro can be be supplied as a complete string including the value,
+or as a tuple (or list) of macro, value, or as a dictionary.
+Example (again gcc syntax in the expanded defines):
</para>
<example_commands>
-env.Append(CCFLAGS = ' -g', FOO = ['foo.yyy'])
+env = Environment(CPPDEFINES="FOO")
+print("CPPDEFINES={}".format(env['CPPDEFINES']))
+env.Append(CPPDEFINES="BAR=1")
+print("CPPDEFINES={}".format(env['CPPDEFINES']))
+env.Append(CPPDEFINES=("OTHER", 2))
+print("CPPDEFINES={}".format(env['CPPDEFINES']))
+env.Append(CPPDEFINES={"EXTRA": "arg"})
+print("CPPDEFINES={}".format(env['CPPDEFINES']))
+print("CPPDEFINES will expand to {}".format(env.subst("$_CPPDEFFLAGS")))
</example_commands>
+
+<screen>
+$ scons -Q
+CPPDEFINES=FOO
+CPPDEFINES=['FOO', 'BAR=1']
+CPPDEFINES=['FOO', 'BAR=1', ('OTHER', 2)]
+CPPDEFINES=['FOO', 'BAR=1', ('OTHER', 2), {'EXTRA': 'arg'}]
+CPPDEFINES will expand to -DFOO -DBAR=1 -DOTHER=2 -DEXTRA=arg
+scons: `.' is up to date.
+</screen>
+
+<para>
+Adding a string <parameter>val</parameter>
+to a dictonary &consvar; will enter
+<parameter>val</parameter> as the key in the dict,
+and <literal>None</literal> as its value.
+Using a tuple type to supply a key + value only works
+for the special case of &cv-link-CPPDEFINES;
+described above.
+</para>
+
+<para>
+Although most combinations of types work without
+needing to know the details, some combinations
+do not make sense and a Python exception will be raised.
+</para>
+
+<para>
+When using &f-env-Append; to modify &consvars;
+which are path specifications (normally,
+those names which end in <varname>PATH</varname>),
+it is recommended to add the values as a list of strings,
+even if there is only a single string to add.
+The same goes for adding library names to &cv-LIBS;.
+</para>
+
+<example_commands>
+env.Append(CPPPATH=["#/include"])
+</example_commands>
+
+<para>
+See also &f-link-env-AppendUnique;,
+&f-link-env-Prepend; and &f-link-env-PrependUnique;.
+</para>
+
</listitem>
</varlistentry>
<varlistentry id="f-AppendENVPath">
- <term><replaceable>env</replaceable>.<methodname>AppendENVPath</methodname>(<parameter>name, newpath, [envname, sep, delete_existing]</parameter>)</term>
+ <term><replaceable>env</replaceable>.<methodname>AppendENVPath</methodname>(<parameter>name, newpath, [envname, sep, delete_existing=False]</parameter>)</term>
<listitem><para>
-This appends new path elements to the given path in the
-specified external environment
-(<literal>ENV</literal>
-by default).
+Append new path elements to the given path in the
+specified external environment (&cv-link-ENV; by default).
This will only add
any particular path once (leaving the last one it encounters and
ignoring the rest, to preserve path order),
@@ -472,7 +588,7 @@ string, in which case a list will be returned instead of a string.
<para>
If
<parameter>delete_existing</parameter>
-is 0, then adding a path that already exists
+is <constant>False</constant>, then adding a path that already exists
will not move it to the end; it will stay where it is in the list.
</para>
@@ -485,29 +601,28 @@ print('before:', env['ENV']['INCLUDE'])
include_path = '/foo/bar:/foo'
env.AppendENVPath('INCLUDE', include_path)
print('after:', env['ENV']['INCLUDE'])
+</example_commands>
-yields:
+<para>Yields:</para>
+<screen>
before: /foo:/biz
after: /biz:/foo/bar:/foo
-</example_commands>
+</screen>
</listitem>
</varlistentry>
<varlistentry id="f-AppendUnique">
- <term><replaceable>env</replaceable>.<methodname>AppendUnique</methodname>(<parameter>key=val, [...], delete_existing=0</parameter>)</term>
+ <term><replaceable>env</replaceable>.<methodname>AppendUnique</methodname>(<parameter>key=val, [...], delete_existing=False</parameter>)</term>
<listitem><para>
-Appends the specified keyword arguments
-to the end of construction variables in the environment.
-If the Environment does not have
-the specified construction variable,
-it is simply added to the environment.
-If the construction variable being appended to is a list,
-then any value(s) that already exist in the
-construction variable will
-<emphasis>not</emphasis>
-be added again to the list.
-However, if delete_existing is 1,
-existing matching values are removed first, so
-existing values in the arg list move to the end of the list.
+Append values to &consvars; in the current &consenv;,
+maintaining uniqueness.
+Works like &f-link-env-Append; (see for details),
+except that values already present in the &consvar;
+will not be added again.
+If <parameter>delete_existing</parameter>
+is <constant>True</constant>,
+the existing matching value is first removed,
+and the requested value is added,
+having the effect of moving such values to the end.
</para>
<para>
@@ -515,8 +630,14 @@ Example:
</para>
<example_commands>
-env.AppendUnique(CCFLAGS = '-g', FOO = ['foo.yyy'])
+env.AppendUnique(CCFLAGS='-g', FOO=['foo.yyy'])
</example_commands>
+
+<para>
+See also &f-link-env-Append;,
+&f-link-env-Prepend;
+and &f-link-env-PrependUnique;.
+</para>
</listitem>
</varlistentry>
<varlistentry id="f-Builder">
@@ -540,7 +661,7 @@ including the
argument,
at the time it is called
using the construction variables in the
-<parameter>env</parameter>
+<varname>env</varname>
construction environment through which
&f-env-Builder; was called.
The
@@ -737,7 +858,7 @@ Example:
<example_commands>
env2 = env.Clone()
-env3 = env.Clone(CCFLAGS = '-g')
+env3 = env.Clone(CCFLAGS='-g')
</example_commands>
<para>
@@ -746,8 +867,10 @@ the &f-link-Environment; constructor:
</para>
<example_commands>
-def MyTool(env): env['FOO'] = 'bar'
-env4 = env.Clone(tools = ['msvc', MyTool])
+def MyTool(env):
+ env['FOO'] = 'bar'
+
+env4 = env.Clone(tools=['msvc', MyTool])
</example_commands>
<para>
@@ -949,24 +1072,24 @@ timestamp, such as can happen when restoring files from backup archives.
</listitem>
</varlistentry>
<varlistentry>
-<term><literal>"MD5"</literal></term>
+<term><literal>"content"</literal></term>
<listitem>
<para>
Specifies that a target shall be considered out of date and rebuilt
if the dependency's content has changed since the last time
the target was built,
-as determined be performing an MD5 checksum
+as determined be performing an checksum
on the dependency's contents
and comparing it to the checksum recorded the
last time the target was built.
-<literal>content</literal>
+<literal>MD5</literal>
can be used as a synonym for
-<literal>MD5</literal>.
+<literal>content</literal>, but it is deprecated.
</para>
</listitem>
</varlistentry>
<varlistentry>
-<term><literal>"MD5-timestamp"</literal></term>
+<term><literal>"content-timestamp"</literal></term>
<listitem>
<para>
Specifies that a target shall be considered out of date and rebuilt
@@ -979,7 +1102,7 @@ assumed to be up-to-date and
rebuilt.
This provides behavior very similar
to the
-<literal>MD5</literal>
+<literal>content</literal>
behavior of always checksumming file contents,
with an optimization of not checking
the contents of files whose timestamps haven't changed.
@@ -992,6 +1115,9 @@ that runs a build,
updates a file,
and runs the build again,
all within a single second.
+<literal>MD5-timestamp</literal>
+can be used as a synonym for
+<literal>content-timestamp</literal>, but it is deprecated.
</para>
</listitem>
</varlistentry>
@@ -1006,7 +1132,7 @@ Examples:
# Use exact timestamp matches by default.
Decider('timestamp-match')
-# Use MD5 content signatures for any targets built
+# Use hash content signatures for any targets built
# with the attached construction environment.
env.Decider('content')
</example_commands>
@@ -1262,9 +1388,9 @@ Find an executable from one or more choices:
Returns the first value from <parameter>progs</parameter>
that was found, or <constant>None</constant>.
Executable is searched by checking the paths specified
-by <parameter>env</parameter><literal>['ENV']['PATH']</literal>.
+by <varname>env</varname><literal>['ENV']['PATH']</literal>.
On Windows systems, additionally applies the filename suffixes found in
-<parameter>env</parameter><literal>['ENV']['PATHEXT']</literal>
+<varname>env</varname><literal>['ENV']['PATHEXT']</literal>
but will not include any such extension in the return value.
&f-env-Detect; is a wrapper around &f-link-env-WhereIs;.
</para>
@@ -1384,7 +1510,7 @@ While this SConstruct:
</para>
<example_commands>
-env=Environment()
+env = Environment()
print(env.Dump())
</example_commands>
@@ -1677,16 +1803,16 @@ Example:
</para>
<example_commands>
-Install( '/bin', [ 'executable_a', 'executable_b' ] )
+Install('/bin', ['executable_a', 'executable_b'])
# will return the file node list
-# [ '/bin/executable_a', '/bin/executable_b' ]
+# ['/bin/executable_a', '/bin/executable_b']
FindInstalledFiles()
-Install( '/lib', [ 'some_library' ] )
+Install('/lib', ['some_library'])
# will return the file node list
-# [ '/bin/executable_a', '/bin/executable_b', '/lib/some_library' ]
+# ['/bin/executable_a', '/bin/executable_b', '/lib/some_library']
FindInstalledFiles()
</example_commands>
</listitem>
@@ -1774,15 +1900,15 @@ Example:
</para>
<example_commands>
-Program( 'src/main_a.c' )
-Program( 'src/main_b.c' )
-Program( 'main_c.c' )
+Program('src/main_a.c')
+Program('src/main_b.c')
+Program('main_c.c')
# returns ['main_c.c', 'src/main_a.c', 'SConstruct', 'src/main_b.c']
FindSourceFiles()
# returns ['src/main_b.c', 'src/main_a.c' ]
-FindSourceFiles( 'src' )
+FindSourceFiles('src')
</example_commands>
<para>
@@ -2445,8 +2571,8 @@ Examples:
<example_commands>
env.Ignore('foo', 'foo.c')
env.Ignore('bar', ['bar1.h', 'bar2.h'])
-env.Ignore('.','foobar.obj')
-env.Ignore('bar','bar/foobar.obj')
+env.Ignore('.', 'foobar.obj')
+env.Ignore('bar', 'bar/foobar.obj')
</example_commands>
</listitem>
</varlistentry>
@@ -2864,7 +2990,7 @@ Example:
</para>
<example_commands>
-env = Environment(platform = Platform('win32'))
+env = Environment(platform=Platform('win32'))
</example_commands>
<para>
@@ -2916,19 +3042,10 @@ Multiple targets can be passed in to a single call to
<varlistentry id="f-Prepend">
<term><replaceable>env</replaceable>.<methodname>Prepend</methodname>(<parameter>key=val, [...]</parameter>)</term>
<listitem><para>
-Appends the specified keyword arguments
-to the beginning of construction variables in the environment.
-If the Environment does not have
-the specified construction variable,
-it is simply added to the environment.
-If the values of the construction variable
-and the keyword argument are the same type,
-then the two values will be simply added together.
-Otherwise, the construction variable
-and the value of the keyword argument
-are both coerced to lists,
-and the lists are added together.
-(See also the Append method, above.)
+Prepend values to &consvars; in the current &consenv;,
+Works like &f-link-env-Append; (see for details),
+except that values are added to the front,
+rather than the end, of any existing value of the &consvar;
</para>
<para>
@@ -2936,25 +3053,29 @@ Example:
</para>
<example_commands>
-env.Prepend(CCFLAGS = '-g ', FOO = ['foo.yyy'])
+env.Prepend(CCFLAGS='-g ', FOO=['foo.yyy'])
</example_commands>
+
+<para>
+See also &f-link-env-Append;,
+&f-link-env-AppendUnique;
+and &f-link-env-PrependUnique;.
+</para>
</listitem>
</varlistentry>
<varlistentry id="f-PrependENVPath">
<term><replaceable>env</replaceable>.<methodname>PrependENVPath</methodname>(<parameter>name, newpath, [envname, sep, delete_existing]</parameter>)</term>
<listitem><para>
-This appends new path elements to the given path in the
-specified external environment
-(&cv-ENV;
-by default).
+Prepend new path elements to the given path in the
+specified external environment (&cv-link-ENV; by default).
This will only add
any particular path once (leaving the first one it encounters and
ignoring the rest, to preserve path order),
and to help assure this,
will normalize all paths (using
-<literal>os.path.normpath</literal>
+<systemitem>os.path.normpath</systemitem>
and
-<literal>os.path.normcase</literal>).
+<systemitem>os.path.normcase</systemitem>).
This can also handle the
case where the given old path variable is a list instead of a
string, in which case a list will be returned instead of a string.
@@ -2963,7 +3084,8 @@ string, in which case a list will be returned instead of a string.
<para>
If
<parameter>delete_existing</parameter>
-is 0, then adding a path that already exists
+is <constant>False</constant>,
+then adding a path that already exists
will not move it to the beginning;
it will stay where it is in the list.
</para>
@@ -2979,32 +3101,29 @@ env.PrependENVPath('INCLUDE', include_path)
print('after:', env['ENV']['INCLUDE'])
</example_commands>
-<para>
-The above example will print:
-</para>
+<para>Yields:</para>
-<example_commands>
+<screen>
before: /biz:/foo
after: /foo/bar:/foo:/biz
-</example_commands>
+</screen>
</listitem>
</varlistentry>
<varlistentry id="f-PrependUnique">
- <term><replaceable>env</replaceable>.<methodname>PrependUnique</methodname>(<parameter>key=val, delete_existing=0, [...]</parameter>)</term>
+ <term><replaceable>env</replaceable>.<methodname>PrependUnique</methodname>(<parameter>key=val, delete_existing=False, [...]</parameter>)</term>
<listitem><para>
-Appends the specified keyword arguments
-to the beginning of construction variables in the environment.
-If the Environment does not have
-the specified construction variable,
-it is simply added to the environment.
-If the construction variable being appended to is a list,
-then any value(s) that already exist in the
-construction variable will
-<emphasis>not</emphasis>
-be added again to the list.
-However, if delete_existing is 1,
-existing matching values are removed first, so
-existing values in the arg list move to the front of the list.
+Prepend values to &consvars; in the current &consenv;,
+maintaining uniqueness.
+Works like &f-link-env-Append; (see for details),
+except that values are added to the front,
+rather than the end, of any existing value of the the &consvar;,
+and values already present in the &consvar;
+will not be added again.
+If <parameter>delete_existing</parameter>
+is <constant>True</constant>,
+the existing matching value is first removed,
+and the requested value is inserted,
+having the effect of moving such values to the front.
</para>
<para>
@@ -3012,8 +3131,14 @@ Example:
</para>
<example_commands>
-env.PrependUnique(CCFLAGS = '-g', FOO = ['foo.yyy'])
+env.PrependUnique(CCFLAGS='-g', FOO=['foo.yyy'])
</example_commands>
+
+<para>
+See also &f-link-env-Append;,
+&f-link-env-AppendUnique;
+and &f-link-env-Prepend;.
+</para>
</listitem>
</varlistentry>
<varlistentry id="f-Progress">
@@ -3200,7 +3325,7 @@ Example:
</para>
<example_commands>
-env.Replace(CCFLAGS = '-g', FOO = 'foo.xxx')
+env.Replace(CCFLAGS='-g', FOO='foo.xxx')
</example_commands>
</listitem>
</varlistentry>
@@ -3738,9 +3863,9 @@ The following statements are equivalent:
</para>
<example_commands>
-env.SetDefault(FOO = 'foo')
-
-if 'FOO' not in env: env['FOO'] = 'foo'
+env.SetDefault(FOO='foo')
+if 'FOO' not in env:
+ env['FOO'] = 'foo'
</example_commands>
</listitem>
</varlistentry>
@@ -4070,12 +4195,13 @@ Example:
print(env.subst("The C compiler is: $CC"))
def compile(target, source, env):
- sourceDir = env.subst("${SOURCE.srcdir}",
- target=target,
- source=source)
+ sourceDir = env.subst(
+ "${SOURCE.srcdir}",
+ target=target,
+ source=source
+ )
-source_nodes = env.subst('$EXPAND_TO_NODELIST',
- conv=lambda x: x)
+source_nodes = env.subst('$EXPAND_TO_NODELIST', conv=lambda x: x)
</example_commands>
</listitem>
</varlistentry>
@@ -4368,11 +4494,11 @@ searches the paths in the
<parameter>path</parameter> keyword argument,
or if <constant>None</constant> (the default)
the paths listed in the &consenv;
-(<parameter>env</parameter><literal>['ENV']['PATH']</literal>).
+(<varname>env</varname><literal>['ENV']['PATH']</literal>).
The external environment's path list
(<literal>os.environ['PATH']</literal>)
is used as a fallback if the key
-<parameter>env</parameter><literal>['ENV']['PATH']</literal>
+<varname>env</varname><literal>['ENV']['PATH']</literal>
does not exist.
</para>
<para>
@@ -4381,11 +4507,11 @@ programs with any of the file extensions listed in the
<parameter>pathext</parameter> keyword argument,
or if <constant>None</constant> (the default)
the pathname extensions listed in the &consenv;
-(<parameter>env</parameter><literal>['ENV']['PATHEXT']</literal>).
+(<varname>env</varname><literal>['ENV']['PATHEXT']</literal>).
The external environment's pathname extensions list
(<literal>os.environ['PATHEXT']</literal>)
is used as a fallback if the key
-<parameter>env</parameter><literal>['ENV']['PATHEXT']</literal>
+<varname>env</varname><literal>['ENV']['PATHEXT']</literal>
does not exist.
</para>
<para>
diff --git a/doc/generated/tools.gen b/doc/generated/tools.gen
index 625e7d7..44118c2 100644
--- a/doc/generated/tools.gen
+++ b/doc/generated/tools.gen
@@ -744,7 +744,7 @@ library archiver.
<listitem><para>
Sets construction variables for the Microsoft linker.
</para>
-<para>Sets: &cv-link-LDMODULE;, &cv-link-LDMODULECOM;, &cv-link-LDMODULEFLAGS;, &cv-link-LDMODULEPREFIX;, &cv-link-LDMODULESUFFIX;, &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-LINKFLAGS;, &cv-link-REGSVR;, &cv-link-REGSVRCOM;, &cv-link-REGSVRFLAGS;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;, &cv-link-WIN32DEFPREFIX;, &cv-link-WIN32DEFSUFFIX;, &cv-link-WIN32EXPPREFIX;, &cv-link-WIN32EXPSUFFIX;, &cv-link-WINDOWSDEFPREFIX;, &cv-link-WINDOWSDEFSUFFIX;, &cv-link-WINDOWSEXPPREFIX;, &cv-link-WINDOWSEXPSUFFIX;, &cv-link-WINDOWSPROGMANIFESTPREFIX;, &cv-link-WINDOWSPROGMANIFESTSUFFIX;, &cv-link-WINDOWSSHLIBMANIFESTPREFIX;, &cv-link-WINDOWSSHLIBMANIFESTSUFFIX;, &cv-link-WINDOWS_INSERT_DEF;.</para><para>Uses: &cv-link-LDMODULECOMSTR;, &cv-link-LINKCOMSTR;, &cv-link-REGSVRCOMSTR;, &cv-link-SHLINKCOMSTR;.</para></listitem>
+<para>Sets: &cv-link-LDMODULE;, &cv-link-LDMODULECOM;, &cv-link-LDMODULEFLAGS;, &cv-link-LDMODULEPREFIX;, &cv-link-LDMODULESUFFIX;, &cv-link-LIBDIRPREFIX;, &cv-link-LIBDIRSUFFIX;, &cv-link-LIBLINKPREFIX;, &cv-link-LIBLINKSUFFIX;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-LINKFLAGS;, &cv-link-REGSVR;, &cv-link-REGSVRCOM;, &cv-link-REGSVRFLAGS;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;, &cv-link-SHLINKFLAGS;, &cv-link-WINDOWSDEFPREFIX;, &cv-link-WINDOWSDEFSUFFIX;, &cv-link-WINDOWSEXPPREFIX;, &cv-link-WINDOWSEXPSUFFIX;, &cv-link-WINDOWSPROGMANIFESTPREFIX;, &cv-link-WINDOWSPROGMANIFESTSUFFIX;, &cv-link-WINDOWSSHLIBMANIFESTPREFIX;, &cv-link-WINDOWSSHLIBMANIFESTSUFFIX;, &cv-link-WINDOWS_INSERT_DEF;.</para><para>Uses: &cv-link-LDMODULECOMSTR;, &cv-link-LINKCOMSTR;, &cv-link-REGSVRCOMSTR;, &cv-link-SHLINKCOMSTR;.</para></listitem>
</varlistentry>
<varlistentry id="t-mssdk">
<term>mssdk</term>
@@ -796,10 +796,17 @@ Sets construction variables for the
</para>
<para>Sets: &cv-link-AS;, &cv-link-ASCOM;, &cv-link-ASFLAGS;, &cv-link-ASPPCOM;, &cv-link-ASPPFLAGS;.</para><para>Uses: &cv-link-ASCOMSTR;, &cv-link-ASPPCOMSTR;.</para></listitem>
</varlistentry>
+ <varlistentry id="t-ninja">
+ <term>ninja</term>
+ <listitem><para>
+ Sets up &b-link-Ninja; builder which generates a ninja build file, and then optionally runs ninja.
+ </para>
+ <para>Sets: &cv-link-DISABLE_AUTO_NINJA;, &cv-link-NINJA_ALIAS_NAME;, &cv-link-NINJA_BUILDDIR;, &cv-link-NINJA_COMPDB_EXPAND;, &cv-link-NINJA_ENV_VAR_CACHE;, &cv-link-NINJA_FILE_NAME;, &cv-link-NINJA_GENERATED_SOURCE_SUFFIXES;, &cv-link-NINJA_MSVC_DEPS_PREFIX;, &cv-link-NINJA_POOL;, &cv-link-NINJA_REGENERATE_DEPS;, &cv-link-NINJA_SYNTAX;, &cv-link-_NINJA_REGENERATE_DEPS_FUNC;, &cv-link-__NINJA_NO;.</para><para>Uses: &cv-link-AR;, &cv-link-ARCOM;, &cv-link-ARFLAGS;, &cv-link-CC;, &cv-link-CCCOM;, &cv-link-CXX;, &cv-link-CXXCOM;, &cv-link-ESCAPE;, &cv-link-LINK;, &cv-link-LINKCOM;, &cv-link-PLATFORM;, &cv-link-RANLIB;, &cv-link-RANLIBCOM;, &cv-link-SHCXXCOM;, &cv-link-SHLINK;, &cv-link-SHLINKCOM;.</para></listitem>
+ </varlistentry>
<varlistentry id="t-packaging">
<term>packaging</term>
<listitem><para>
-Sets construction variables for the &b-Package; Builder.
+Sets construction variables for the &b-link-Package; Builder.
If this tool is enabled, the <option>--package-type</option>
command-line option is also enabled.
</para>
diff --git a/doc/generated/tools.mod b/doc/generated/tools.mod
index 78aa9ef..35eea5e 100644
--- a/doc/generated/tools.mod
+++ b/doc/generated/tools.mod
@@ -79,6 +79,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY t-mwcc "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>mwcc</literal>">
<!ENTITY t-mwld "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>mwld</literal>">
<!ENTITY t-nasm "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>nasm</literal>">
+<!ENTITY t-ninja "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>ninja</literal>">
<!ENTITY t-packaging "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>packaging</literal>">
<!ENTITY t-pdf "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>pdf</literal>">
<!ENTITY t-pdflatex "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>pdflatex</literal>">
@@ -184,6 +185,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY t-link-mwcc "<link linkend='t-mwcc' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>mwcc</literal></link>">
<!ENTITY t-link-mwld "<link linkend='t-mwld' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>mwld</literal></link>">
<!ENTITY t-link-nasm "<link linkend='t-nasm' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>nasm</literal></link>">
+<!ENTITY t-link-ninja "<link linkend='t-ninja' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>ninja</literal></link>">
<!ENTITY t-link-packaging "<link linkend='t-packaging' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>packaging</literal></link>">
<!ENTITY t-link-pdf "<link linkend='t-pdf' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>pdf</literal></link>">
<!ENTITY t-link-pdflatex "<link linkend='t-pdflatex' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>pdflatex</literal></link>">
diff --git a/doc/generated/variables.gen b/doc/generated/variables.gen
index 84ef3b1..5b1edbe 100644
--- a/doc/generated/variables.gen
+++ b/doc/generated/variables.gen
@@ -22,6 +22,16 @@ if &cv-link-LDMODULEVERSION; is set. Othervise it evaluates to an empty string.
</para>
</listitem>
</varlistentry>
+ <varlistentry id="cv-__NINJA_NO">
+ <term>
+ <envar>__NINJA_NO</envar>
+ </term>
+ <listitem><para>
+ Internal flag. Used to tell SCons whether or not to try to import pypi's ninja python package.
+ This is set to True when being called by Ninja?
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry id="cv-__SHLIBVERSIONFLAGS">
<term>
<envar>__SHLIBVERSIONFLAGS</envar>
@@ -152,6 +162,7 @@ and the <literal>BuildArch:</literal> field
in the RPM <filename>.spec</filename> file,
as well as forming part of the name of a generated RPM package file.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-ARCOM">
@@ -527,6 +538,7 @@ the <filename>.wxs</filename> for MSI).
If set, the function will be called
after the SCons template for the file has been written.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-CHANGED_SOURCES">
@@ -565,6 +577,7 @@ This is included as the
section of the RPM
<filename>.spec</filename> file.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-COMPILATIONDB_COMSTR">
@@ -662,14 +675,13 @@ file.
<envar>_CPPDEFFLAGS</envar>
</term>
<listitem><para>
-An automatically-generated construction variable
+An automatically-generated &consvar;
containing the C preprocessor command-line options
to define values.
The value of &cv-_CPPDEFFLAGS; is created
by respectively prepending and appending
-&cv-CPPDEFPREFIX; and &cv-CPPDEFSUFFIX;
-to the beginning and end
-of each definition in &cv-CPPDEFINES;.
+&cv-link-CPPDEFPREFIX; and &cv-link-CPPDEFSUFFIX;
+to each definition in &cv-link-CPPDEFINES;.
</para>
</listitem>
</varlistentry>
@@ -678,10 +690,10 @@ of each definition in &cv-CPPDEFINES;.
<envar>CPPDEFINES</envar>
</term>
<listitem><para>
-A platform independent specification of C preprocessor definitions.
+A platform independent specification of C preprocessor macro definitions.
The definitions will be added to command lines
through the automatically-generated
-&cv-_CPPDEFFLAGS; construction variable (see above),
+&cv-link-_CPPDEFFLAGS; &consvar; (see above),
which is constructed according to
the type of value of &cv-CPPDEFINES;:
</para>
@@ -689,10 +701,9 @@ the type of value of &cv-CPPDEFINES;:
<para>
If &cv-CPPDEFINES; is a string,
the values of the
-&cv-CPPDEFPREFIX; and &cv-CPPDEFSUFFIX;
-construction variables
-will be respectively prepended and appended to the beginning and end
-of each definition in &cv-CPPDEFINES;.
+&cv-link-CPPDEFPREFIX; and &cv-link-CPPDEFSUFFIX; &consvars;
+will be respectively prepended and appended to
+each definition in &cv-CPPDEFINES;.
</para>
<example_commands>
@@ -704,10 +715,9 @@ env = Environment(CPPDEFINES='xyz')
<para>
If &cv-CPPDEFINES; is a list,
the values of the
-&cv-CPPDEFPREFIX; and &cv-CPPDEFSUFFIX;
-construction variables
-will be respectively prepended and appended to the beginning and end
-of each element in the list.
+&cv-link-CPPDEFPREFIX; and &cv-link-CPPDEFSUFFIX; &consvars;
+will be 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:
@@ -722,10 +732,9 @@ env = Environment(CPPDEFINES=[('B', 2), 'A'])
<para>
If &cv-CPPDEFINES; is a dictionary,
the values of the
-&cv-CPPDEFPREFIX; and &cv-CPPDEFSUFFIX;
-construction variables
-will be respectively prepended and appended to the beginning and end
-of each item from the dictionary.
+&cv-link-CPPDEFPREFIX; and &cv-link-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;
@@ -751,11 +760,11 @@ env = Environment(CPPDEFINES={'B':2, 'A':None})
<envar>CPPDEFPREFIX</envar>
</term>
<listitem><para>
-The prefix used to specify preprocessor definitions
+The prefix used to specify preprocessor macro definitions
on the C compiler command line.
-This will be prepended to the beginning of each definition
-in the &cv-CPPDEFINES; construction variable
-when the &cv-_CPPDEFFLAGS; variable is automatically generated.
+This will be prepended to each definition
+in the &cv-link-CPPDEFINES; &consvar;
+when the &cv-link-_CPPDEFFLAGS; variable is automatically generated.
</para>
</listitem>
</varlistentry>
@@ -764,11 +773,11 @@ when the &cv-_CPPDEFFLAGS; variable is automatically generated.
<envar>CPPDEFSUFFIX</envar>
</term>
<listitem><para>
-The suffix used to specify preprocessor definitions
+The suffix used to specify preprocessor macro definitions
on the C compiler command line.
-This will be appended to the end of each definition
-in the &cv-CPPDEFINES; construction variable
-when the &cv-_CPPDEFFLAGS; variable is automatically generated.
+This will be appended to each definition
+in the &cv-link-CPPDEFINES; &consvar;
+when the &cv-link-_CPPDEFFLAGS; variable is automatically generated.
</para>
</listitem>
</varlistentry>
@@ -808,13 +817,13 @@ for the variable that expands to those options.
<envar>_CPPINCFLAGS</envar>
</term>
<listitem><para>
-An automatically-generated construction variable
+An automatically-generated &consvar;
containing the C preprocessor command-line options
for specifying directories to be searched for include files.
The value of &cv-_CPPINCFLAGS; is created
-by respectively prepending and appending &cv-INCPREFIX; and &cv-INCSUFFIX;
-to the beginning and end
-of each directory in &cv-CPPPATH;.
+by respectively prepending and appending
+&cv-link-INCPREFIX; and &cv-link-INCSUFFIX;
+to each directory in &cv-link-CPPPATH;.
</para>
</listitem>
</varlistentry>
@@ -825,13 +834,24 @@ of each directory in &cv-CPPPATH;.
<listitem><para>
The list of directories that the C preprocessor will search for include
directories. The C/C++ implicit dependency scanner will search these
-directories for include files. Don't explicitly put include directory
-arguments in CCFLAGS or CXXFLAGS because the result will be non-portable
-and the directories will not be searched by the dependency scanner. Note:
-directory names in CPPPATH will be looked-up relative to the SConscript
-directory when they are used in a command. To force
-&scons;
-to look-up a directory relative to the root of the source tree use #:
+directories for include files.
+In general it's not advised to put include directory directives
+directly into &cv-link-CCFLAGS; or &cv-link-CXXFLAGS;
+as the result will be non-portable
+and the directories will not be searched by the dependency scanner.
+&cv-CPPPATH; should be a list of path strings,
+or a single string, not a pathname list joined by
+Python's <systemitem>os.sep</systemitem>.
+</para>
+
+<para>
+Note:
+directory names in &cv-link-CPPPATH;
+will be looked-up relative to the directory of the SConscript file
+when they are used in a command.
+To force &scons;
+to look-up a directory relative to the root of the source tree use
+the <literal>#</literal> prefix:
</para>
<example_commands>
@@ -840,7 +860,7 @@ env = Environment(CPPPATH='#/include')
<para>
The directory look-up can also be forced using the
-&Dir;()
+&f-link-Dir;
function:
</para>
@@ -852,17 +872,14 @@ env = Environment(CPPPATH=include)
<para>
The directory list will be added to command lines
through the automatically-generated
-&cv-_CPPINCFLAGS;
-construction variable,
+&cv-link-_CPPINCFLAGS; &consvar;,
which is constructed by
-respectively prepending and appending the value of the
-&cv-INCPREFIX; and &cv-INCSUFFIX;
-construction variables
-to the beginning and end
-of each directory in &cv-CPPPATH;.
+respectively prepending and appending the values of the
+&cv-link-INCPREFIX; and &cv-link-INCSUFFIX; &consvars;
+to each directory in &cv-link-CPPPATH;.
Any command lines you define that need
-the CPPPATH directory list should
-include &cv-_CPPINCFLAGS;:
+the &cv-CPPPATH; directory list should
+include &cv-link-_CPPINCFLAGS;:
</para>
<example_commands>
@@ -1052,6 +1069,7 @@ A long description of the project being packaged.
This is included in the relevant section
of the file that controls the packaging build.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-DESCRIPTION_lang">
@@ -1066,6 +1084,7 @@ This is used to populate a
section of an RPM
<filename>.spec</filename> file.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-DFILESUFFIX">
@@ -1142,6 +1161,17 @@ into a list of Dir instances relative to the target being built.
</para>
</listitem>
</varlistentry>
+ <varlistentry id="cv-DISABLE_AUTO_NINJA">
+ <term>
+ <envar>DISABLE_AUTO_NINJA</envar>
+ </term>
+ <listitem><para>
+ Boolean (True|False). Default: False
+ When True, SCons will not run ninja automatically after creating the ninja.build file.
+
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry id="cv-DLIB">
<term>
<envar>DLIB</envar>
@@ -3268,9 +3298,9 @@ env = Environment(IMPLICIT_COMMAND_DEPENDENCIES=False)
<listitem><para>
The prefix used to specify an include directory on the C compiler command
line.
-This will be prepended to the beginning of each directory
-in the &cv-CPPPATH; and &cv-FORTRANPATH; construction variables
-when the &cv-_CPPINCFLAGS; and &cv-_FORTRANINCFLAGS;
+This will be prepended to each directory
+in the &cv-link-CPPPATH; and &cv-link-FORTRANPATH; &consvars;
+when the &cv-link-_CPPINCFLAGS; and &cv-link-_FORTRANINCFLAGS;
variables are automatically generated.
</para>
</listitem>
@@ -3282,9 +3312,9 @@ variables are automatically generated.
<listitem><para>
The suffix used to specify an include directory on the C compiler command
line.
-This will be appended to the end of each directory
-in the &cv-CPPPATH; and &cv-FORTRANPATH; construction variables
-when the &cv-_CPPINCFLAGS; and &cv-_FORTRANINCFLAGS;
+This will be appended to each directory
+in the &cv-link-CPPPATH; and &cv-link-FORTRANPATH; &consvars;
+when the &cv-link-_CPPINCFLAGS; and &cv-link-_FORTRANINCFLAGS;
variables are automatically generated.
</para>
</listitem>
@@ -3924,9 +3954,9 @@ An automatically-generated construction variable
containing the linker command-line options
for specifying directories to be searched for library.
The value of &cv-_LIBDIRFLAGS; is created
-by respectively prepending and appending &cv-LIBDIRPREFIX; and &cv-LIBDIRSUFFIX;
-to the beginning and end
-of each directory in &cv-LIBPATH;.
+by respectively prepending and appending &cv-link-LIBDIRPREFIX;
+and &cv-link-LIBDIRSUFFIX;
+to each directory in &cv-link-LIBPATH;.
</para>
</listitem>
</varlistentry>
@@ -3936,9 +3966,9 @@ of each directory in &cv-LIBPATH;.
</term>
<listitem><para>
The prefix used to specify a library directory on the linker command line.
-This will be prepended to the beginning of each directory
-in the &cv-LIBPATH; construction variable
-when the &cv-_LIBDIRFLAGS; variable is automatically generated.
+This will be prepended to each directory
+in the &cv-link-LIBPATH; construction variable
+when the &cv-link-_LIBDIRFLAGS; variable is automatically generated.
</para>
</listitem>
</varlistentry>
@@ -3948,9 +3978,9 @@ when the &cv-_LIBDIRFLAGS; variable is automatically generated.
</term>
<listitem><para>
The suffix used to specify a library directory on the linker command line.
-This will be appended to the end of each directory
-in the &cv-LIBPATH; construction variable
-when the &cv-_LIBDIRFLAGS; variable is automatically generated.
+This will be appended to each directory
+in the &cv-link-LIBPATH; construction variable
+when the &cv-link-_LIBDIRFLAGS; variable is automatically generated.
</para>
</listitem>
</varlistentry>
@@ -3974,10 +4004,10 @@ general information on specifying emitters.
An automatically-generated construction variable
containing the linker command-line options
for specifying libraries to be linked with the resulting target.
-The value of &cv-_LIBFLAGS; is created
-by respectively prepending and appending &cv-LIBLINKPREFIX; and &cv-LIBLINKSUFFIX;
-to the beginning and end
-of each filename in &cv-LIBS;.
+The value of &cv-link-_LIBFLAGS; is created
+by respectively prepending and appending &cv-link-LIBLINKPREFIX;
+and &cv-link-LIBLINKSUFFIX;
+to each filename in &cv-link-LIBS;.
</para>
</listitem>
</varlistentry>
@@ -3987,9 +4017,9 @@ of each filename in &cv-LIBS;.
</term>
<listitem><para>
The prefix used to specify a library to link on the linker command line.
-This will be prepended to the beginning of each library
-in the &cv-LIBS; construction variable
-when the &cv-_LIBFLAGS; variable is automatically generated.
+This will be prepended to each library
+in the &cv-link-LIBS; construction variable
+when the &cv-link-_LIBFLAGS; variable is automatically generated.
</para>
</listitem>
</varlistentry>
@@ -3999,9 +4029,9 @@ when the &cv-_LIBFLAGS; variable is automatically generated.
</term>
<listitem><para>
The suffix used to specify a library to link on the linker command line.
-This will be appended to the end of each library
-in the &cv-LIBS; construction variable
-when the &cv-_LIBFLAGS; variable is automatically generated.
+This will be appended to each library
+in the &cv-link-LIBS; construction variable
+when the &cv-link-_LIBFLAGS; variable is automatically generated.
</para>
</listitem>
</varlistentry>
@@ -4010,16 +4040,33 @@ when the &cv-_LIBFLAGS; variable is automatically generated.
<envar>LIBPATH</envar>
</term>
<listitem><para>
-The list of directories that will be searched for libraries.
+The list of directories that will be searched for libraries
+specified by the &cv-link-LIBS; &consvar;.
+&cv-LIBPATH; should be a list of path strings,
+or a single string, not a pathname list joined by
+Python's <systemitem>os.sep</systemitem>.
+<!-- XXX OLD
The implicit dependency scanner will search these
directories for include files. Don't explicitly put include directory
-arguments in &cv-LINKFLAGS; or &cv-SHLINKFLAGS;
+arguments into &cv-LINKFLAGS; or &cv-SHLINKFLAGS;
because the result will be non-portable
-and the directories will not be searched by the dependency scanner. Note:
-directory names in LIBPATH will be looked-up relative to the SConscript
-directory when they are used in a command. To force
-&scons;
-to look-up a directory relative to the root of the source tree use #:
+and the directories will not be searched by the dependency scanner.
+-->
+<!-- XXX NEW -->
+Do not put library search directives directly
+into &cv-LINKFLAGS; or &cv-SHLINKFLAGS;
+as the result will be non-portable.
+<!-- end NEW -->
+</para>
+
+<para>
+Note:
+directory names in &cv-LIBPATH; will be looked-up relative to the
+directory of the SConscript file
+when they are used in a command.
+To force &scons;
+to look-up a directory relative to the root of the source tree use
+the <literal>#</literal> prefix:
</para>
<example_commands>
@@ -4028,8 +4075,7 @@ env = Environment(LIBPATH='#/libs')
<para>
The directory look-up can also be forced using the
-&Dir;()
-function:
+&f-link-Dir; function:
</para>
<example_commands>
@@ -4040,16 +4086,15 @@ env = Environment(LIBPATH=libs)
<para>
The directory list will be added to command lines
through the automatically-generated
-&cv-_LIBDIRFLAGS;
+&cv-link-_LIBDIRFLAGS;
construction variable,
which is constructed by
respectively prepending and appending the values of the
-&cv-LIBDIRPREFIX; and &cv-LIBDIRSUFFIX;
+&cv-link-LIBDIRPREFIX; and &cv-link-LIBDIRSUFFIX;
construction variables
-to the beginning and end
-of each directory in &cv-LIBPATH;.
+to each directory in &cv-LIBPATH;.
Any command lines you define that need
-the LIBPATH directory list should
+the &cv-LIBPATH; directory list should
include &cv-_LIBDIRFLAGS;:
</para>
@@ -4081,7 +4126,7 @@ A list of all legal prefixes for library file names.
When searching for library dependencies,
SCons will look for files with these prefixes,
the base library name,
-and suffixes in the &cv-LIBSUFFIXES; list.
+and suffixes from the &cv-link-LIBSUFFIXES; list.
</para>
</listitem>
</varlistentry>
@@ -4091,24 +4136,32 @@ and suffixes in the &cv-LIBSUFFIXES; list.
</term>
<listitem><para>
A list of one or more libraries
-that will be linked with
-any executable programs
-created by this environment.
+that will be added to the link line
+for linking with any executable program, shared library, or loadable module
+created by the &consenv; or override.
</para>
<para>
+String-valued library names should include
+only the library base names,
+without prefixes such as <filename>lib</filename>
+or suffixes such as <filename>.so</filename> or <filename>.dll</filename>.
The library list will be added to command lines
through the automatically-generated
-&cv-_LIBFLAGS;
-construction variable,
+&cv-_LIBFLAGS; &consvar;
which is constructed by
respectively prepending and appending the values of the
-&cv-LIBLINKPREFIX; and &cv-LIBLINKSUFFIX;
-construction variables
-to the beginning and end
-of each filename in &cv-LIBS;.
+&cv-LIBLINKPREFIX; and &cv-LIBLINKSUFFIX; &consvars;
+to each library name in &cv-LIBS;.
+Library name strings should not include a
+path component, instead the compiler will be
+directed to look for libraries in the paths
+specified by &cv-link-LIBPATH;.
+</para>
+
+<para>
Any command lines you define that need
-the LIBS library list should
+the &cv-LIBS; library list should
include &cv-_LIBFLAGS;:
</para>
@@ -4118,12 +4171,12 @@ env = Environment(LINKCOM="my_linker $_LIBDIRFLAGS $_LIBFLAGS -o $TARGET $SOURCE
<para>
If you add a
-File
+<classname>File</classname>
object to the
&cv-LIBS;
list, the name of that file will be added to
&cv-_LIBFLAGS;,
-and thus the link line, as is, without
+and thus to the link line, as-is, without
&cv-LIBLINKPREFIX;
or
&cv-LIBLINKSUFFIX;.
@@ -4161,7 +4214,7 @@ to reflect the names of the libraries they create.
<listitem><para>
A list of all legal suffixes for library file names.
When searching for library dependencies,
-SCons will look for files with prefixes, in the &cv-LIBPREFIXES; list,
+SCons will look for files with prefixes from the &cv-link-LIBPREFIXES; list,
the base library name,
and these suffixes.
</para>
@@ -4174,9 +4227,12 @@ and these suffixes.
<listitem><para>
The abbreviated name, preferably the SPDX code, of the license under which
this project is released (GPL-3.0, LGPL-2.1, BSD-2-Clause etc.).
-See http://www.opensource.org/licenses/alphabetical
+See
+<ulink url="http://www.opensource.org/licenses/alphabetical">
+http://www.opensource.org/licenses/alphabetical</ulink>
for a list of license names and SPDX codes.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-LINESEPARATOR">
@@ -5097,8 +5153,141 @@ on this system.
<listitem><para>
Specfies the name of the project to package.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
+ <varlistentry id="cv-NINJA_ALIAS_NAME">
+ <term>
+ <envar>NINJA_ALIAS_NAME</envar>
+ </term>
+ <listitem><para>
+ Name of the Alias() which is will cause SCons to create the <filename>ninja.build</filename> file, and
+ then (optionally) run ninja.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_BUILDDIR">
+ <term>
+ <envar>NINJA_BUILDDIR</envar>
+ </term>
+ <listitem><para>
+ This propagates directly into the generated Ninja.build file.
+ From Ninja's docs:
+ <blockquote>
+ <para>
+ builddir
+ A directory for some Ninja output files. ... (You can also store other build output in this
+ directory.)
+ </para>
+ </blockquote>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_COMPDB_EXPAND">
+ <term>
+ <envar>NINJA_COMPDB_EXPAND</envar>
+ </term>
+ <listitem><para>
+ Boolean value (True|False) to instruct ninja to expand the command line arguments normally put into
+ response files.
+ This prevents lines in the compilation database like <quote>gcc @rsp_file</quote> and instead yields
+ <quote>gcc -c -o myfile.o myfile.c -Ia -DXYZ</quote>
+ </para>
+ <para>
+ Ninja's compdb tool added the <quote>-x</quote> flag in Ninja V1.9.0
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_ENV_VAR_CACHE">
+ <term>
+ <envar>NINJA_ENV_VAR_CACHE</envar>
+ </term>
+ <listitem><para>
+ A string that sets the environment for any environment variables that
+ differ between the OS environment and the SCons command ENV.
+
+ It will be compatible with the default shell of the operating system.
+
+ If not explicitly specified, SCons will generate this dynamically from the Environment()'s 'ENV'
+ <quote>env['ENV']</quote>
+ where those values differ from the existing shell..
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_FILE_NAME">
+ <term>
+ <envar>NINJA_FILE_NAME</envar>
+ </term>
+ <listitem><para>
+ The filename for the generated Ninja build file defaults to <filename>ninja.build</filename>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_GENERATED_SOURCE_SUFFIXES">
+ <term>
+ <envar>NINJA_GENERATED_SOURCE_SUFFIXES</envar>
+ </term>
+ <listitem><para>
+ The list of source file suffixes which are generated by SCons build steps.
+ All source files which match these suffixes will be added to the _generated_sources alias in the output
+ ninja.build file.
+ Then all other source files will be made to depend on this in the Ninja.build file, forcing the
+ generated sources to be built first.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_MSVC_DEPS_PREFIX">
+ <term>
+ <envar>NINJA_MSVC_DEPS_PREFIX</envar>
+ </term>
+ <listitem><para>
+ This propagates directly into the generated Ninja.build file.
+ From Ninja's docs
+ <quote>defines the string which should be stripped from msvc’s /showIncludes output</quote>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_POOL">
+ <term>
+ <envar>NINJA_POOL</envar>
+ </term>
+ <listitem><para>
+ Set the <quote>ninja_pool</quote> for this or all targets in scope for this env var.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_REGENERATE_DEPS">
+ <term>
+ <envar>NINJA_REGENERATE_DEPS</envar>
+ </term>
+ <listitem><para>
+ A generator function used to create a ninja depsfile which includes all the files which would require
+ SCons to be invoked if they change.
+ Or a list of said files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-_NINJA_REGENERATE_DEPS_FUNC">
+ <term>
+ <envar>_NINJA_REGENERATE_DEPS_FUNC</envar>
+ </term>
+ <listitem><para>
+ Internal value used to specify the function to call with argument env to generate the list of files
+ which if changed would require the ninja file to be regenerated.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="cv-NINJA_SYNTAX">
+ <term>
+ <envar>NINJA_SYNTAX</envar>
+ </term>
+ <listitem><para>
+ Theres also NINJA_SYNTAX which is the path to a custom ninja_syntax.py file which is used in generation.
+ The tool currently assumes you have ninja installed through pip, and grabs the syntax file from that
+ installation if none specified.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry id="cv-no_import_lib">
<term>
<envar>no_import_lib</envar>
@@ -5139,8 +5328,9 @@ The suffix used for (static) object file names.
</term>
<listitem><para>
Specifies the directory where all files in resulting archive will be
-placed if applicable. The default value is "$NAME-$VERSION".
+placed if applicable. The default value is <quote>&cv-NAME;-&cv-VERSION;</quote>.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-PACKAGETYPE">
@@ -5157,6 +5347,7 @@ for the builder for the currently supported types.
&cv-PACKAGETYPE; may be overridden with the <option>--package-type</option>
command line option.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-PACKAGEVERSION">
@@ -5169,6 +5360,7 @@ This is currently only used by the rpm packager
and should reflect changes in the packaging,
not the underlying project code itself.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-PCH">
@@ -5276,15 +5468,6 @@ see the entry for that variable for specific examples.
</para>
</listitem>
</varlistentry>
- <varlistentry id="cv-PDFCOM">
- <term>
- <envar>PDFCOM</envar>
- </term>
- <listitem><para>
-A deprecated synonym for &cv-link-DVIPDFCOM;.
-</para>
-</listitem>
- </varlistentry>
<varlistentry id="cv-PDFLATEX">
<term>
<envar>PDFLATEX</envar>
@@ -6046,7 +6229,7 @@ If this is not set, then &cv-link-RCCOM; (the command line) is displayed.
<envar>RCFLAGS</envar>
</term>
<listitem><para>
-The flags passed to the resource compiler by the RES builder.
+The flags passed to the resource compiler by the &b-link-RES; builder.
</para>
</listitem>
</varlistentry>
@@ -7276,6 +7459,7 @@ This is used to fill in the
<literal>Source:</literal>
field in the controlling information for Ipkg and RPM packages.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-SOURCES">
@@ -7393,6 +7577,7 @@ and as the
<literal>Description:</literal>
field in MSI packages.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-SWIG">
@@ -7931,6 +8116,7 @@ and the
<literal>Manufacturer:</literal>
field in the controlling information for MSI packages.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-VERSION">
@@ -7940,6 +8126,7 @@ field in the controlling information for MSI packages.
<listitem><para>
The version of the project, specified as a string.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-VSWHERE">
@@ -7992,51 +8179,6 @@ and also before &f-link-env-Tool; is called to ininitialize any of those tools:
</listitem>
</varlistentry>
- <varlistentry id="cv-WIN32_INSERT_DEF">
- <term>
- <envar>WIN32_INSERT_DEF</envar>
- </term>
- <listitem><para>
-A deprecated synonym for &cv-link-WINDOWS_INSERT_DEF;.
-</para>
-</listitem>
- </varlistentry>
- <varlistentry id="cv-WIN32DEFPREFIX">
- <term>
- <envar>WIN32DEFPREFIX</envar>
- </term>
- <listitem><para>
-A deprecated synonym for &cv-link-WINDOWSDEFPREFIX;.
-</para>
-</listitem>
- </varlistentry>
- <varlistentry id="cv-WIN32DEFSUFFIX">
- <term>
- <envar>WIN32DEFSUFFIX</envar>
- </term>
- <listitem><para>
-A deprecated synonym for &cv-link-WINDOWSDEFSUFFIX;.
-</para>
-</listitem>
- </varlistentry>
- <varlistentry id="cv-WIN32EXPPREFIX">
- <term>
- <envar>WIN32EXPPREFIX</envar>
- </term>
- <listitem><para>
-A deprecated synonym for &cv-link-WINDOWSEXPSUFFIX;.
-</para>
-</listitem>
- </varlistentry>
- <varlistentry id="cv-WIN32EXPSUFFIX">
- <term>
- <envar>WIN32EXPSUFFIX</envar>
- </term>
- <listitem><para>
-A deprecated synonym for &cv-link-WINDOWSEXPSUFFIX;.
-</para>
-</listitem>
- </varlistentry>
<varlistentry id="cv-WINDOWS_EMBED_MANIFEST">
<term>
<envar>WINDOWS_EMBED_MANIFEST</envar>
@@ -8164,6 +8306,7 @@ This is used to fill in the
<literal>Depends:</literal>
field in the controlling information for Ipkg packages.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-X_IPK_DESCRIPTION">
@@ -8175,7 +8318,7 @@ This is used to fill in the
<literal>Description:</literal>
field in the controlling information for Ipkg packages.
The default value is
-<literal>$SUMMARY\n$DESCRIPTION</literal>
+<quote>&cv-SUMMARY;\n&cv-DESCRIPTION;</quote>
</para>
</listitem>
</varlistentry>
@@ -8221,6 +8364,7 @@ This is used to fill in the
<literal>Language:</literal>
attribute in the controlling information for MSI packages.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-X_MSI_LICENSE_TEXT">
@@ -8232,6 +8376,7 @@ The text of the software license in RTF format.
Carriage return characters will be
replaced with the RTF equivalent \\par.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-X_MSI_UPGRADE_CODE">
@@ -8253,6 +8398,7 @@ This is used to fill in the
field in the RPM
<filename>.spec</filename> file.
</para>
+<para>See the &b-link-Package; builder.</para>
</listitem>
</varlistentry>
<varlistentry id="cv-X_RPM_BUILD">
@@ -8315,7 +8461,7 @@ field in the RPM
This value is used as the default attributes
for the files in the RPM package.
The default value is
-<literal>(-,root,root)</literal>.
+<quote>(-,root,root)</quote>.
</para>
</listitem>
</varlistentry>
diff --git a/doc/generated/variables.mod b/doc/generated/variables.mod
index 10b62e7..a5fe961 100644
--- a/doc/generated/variables.mod
+++ b/doc/generated/variables.mod
@@ -9,6 +9,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
-->
<!ENTITY cv-__LDMODULEVERSIONFLAGS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$__LDMODULEVERSIONFLAGS</envar>">
+<!ENTITY cv-__NINJA_NO "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$__NINJA_NO</envar>">
<!ENTITY cv-__SHLIBVERSIONFLAGS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$__SHLIBVERSIONFLAGS</envar>">
<!ENTITY cv-APPLELINK_COMPATIBILITY_VERSION "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$APPLELINK_COMPATIBILITY_VERSION</envar>">
<!ENTITY cv-_APPLELINK_COMPATIBILITY_VERSION "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$_APPLELINK_COMPATIBILITY_VERSION</envar>">
@@ -82,6 +83,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-DINCSUFFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DINCSUFFIX</envar>">
<!ENTITY cv-Dir "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$Dir</envar>">
<!ENTITY cv-Dirs "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$Dirs</envar>">
+<!ENTITY cv-DISABLE_AUTO_NINJA "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DISABLE_AUTO_NINJA</envar>">
<!ENTITY cv-DLIB "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DLIB</envar>">
<!ENTITY cv-DLIBCOM "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DLIBCOM</envar>">
<!ENTITY cv-DLIBDIRPREFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DLIBDIRPREFIX</envar>">
@@ -348,6 +350,17 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-MWCW_VERSION "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$MWCW_VERSION</envar>">
<!ENTITY cv-MWCW_VERSIONS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$MWCW_VERSIONS</envar>">
<!ENTITY cv-NAME "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NAME</envar>">
+<!ENTITY cv-NINJA_ALIAS_NAME "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_ALIAS_NAME</envar>">
+<!ENTITY cv-NINJA_BUILDDIR "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_BUILDDIR</envar>">
+<!ENTITY cv-NINJA_COMPDB_EXPAND "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_COMPDB_EXPAND</envar>">
+<!ENTITY cv-NINJA_ENV_VAR_CACHE "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_ENV_VAR_CACHE</envar>">
+<!ENTITY cv-NINJA_FILE_NAME "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_FILE_NAME</envar>">
+<!ENTITY cv-NINJA_GENERATED_SOURCE_SUFFIXES "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_GENERATED_SOURCE_SUFFIXES</envar>">
+<!ENTITY cv-NINJA_MSVC_DEPS_PREFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_MSVC_DEPS_PREFIX</envar>">
+<!ENTITY cv-NINJA_POOL "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_POOL</envar>">
+<!ENTITY cv-NINJA_REGENERATE_DEPS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_REGENERATE_DEPS</envar>">
+<!ENTITY cv-_NINJA_REGENERATE_DEPS_FUNC "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$_NINJA_REGENERATE_DEPS_FUNC</envar>">
+<!ENTITY cv-NINJA_SYNTAX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$NINJA_SYNTAX</envar>">
<!ENTITY cv-no_import_lib "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$no_import_lib</envar>">
<!ENTITY cv-OBJPREFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$OBJPREFIX</envar>">
<!ENTITY cv-OBJSUFFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$OBJSUFFIX</envar>">
@@ -360,7 +373,6 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-PCHPDBFLAGS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$PCHPDBFLAGS</envar>">
<!ENTITY cv-PCHSTOP "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$PCHSTOP</envar>">
<!ENTITY cv-PDB "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$PDB</envar>">
-<!ENTITY cv-PDFCOM "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$PDFCOM</envar>">
<!ENTITY cv-PDFLATEX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$PDFLATEX</envar>">
<!ENTITY cv-PDFLATEXCOM "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$PDFLATEXCOM</envar>">
<!ENTITY cv-PDFLATEXCOMSTR "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$PDFLATEXCOMSTR</envar>">
@@ -566,11 +578,6 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-VENDOR "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$VENDOR</envar>">
<!ENTITY cv-VERSION "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$VERSION</envar>">
<!ENTITY cv-VSWHERE "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$VSWHERE</envar>">
-<!ENTITY cv-WIN32_INSERT_DEF "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WIN32_INSERT_DEF</envar>">
-<!ENTITY cv-WIN32DEFPREFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WIN32DEFPREFIX</envar>">
-<!ENTITY cv-WIN32DEFSUFFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WIN32DEFSUFFIX</envar>">
-<!ENTITY cv-WIN32EXPPREFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WIN32EXPPREFIX</envar>">
-<!ENTITY cv-WIN32EXPSUFFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WIN32EXPSUFFIX</envar>">
<!ENTITY cv-WINDOWS_EMBED_MANIFEST "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WINDOWS_EMBED_MANIFEST</envar>">
<!ENTITY cv-WINDOWS_INSERT_DEF "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WINDOWS_INSERT_DEF</envar>">
<!ENTITY cv-WINDOWS_INSERT_MANIFEST "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$WINDOWS_INSERT_MANIFEST</envar>">
@@ -653,6 +660,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
-->
<!ENTITY cv-link-__LDMODULEVERSIONFLAGS "<link linkend='cv-__LDMODULEVERSIONFLAGS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$__LDMODULEVERSIONFLAGS</envar></link>">
+<!ENTITY cv-link-__NINJA_NO "<link linkend='cv-__NINJA_NO' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$__NINJA_NO</envar></link>">
<!ENTITY cv-link-__SHLIBVERSIONFLAGS "<link linkend='cv-__SHLIBVERSIONFLAGS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$__SHLIBVERSIONFLAGS</envar></link>">
<!ENTITY cv-link-APPLELINK_COMPATIBILITY_VERSION "<link linkend='cv-APPLELINK_COMPATIBILITY_VERSION' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$APPLELINK_COMPATIBILITY_VERSION</envar></link>">
<!ENTITY cv-link-_APPLELINK_COMPATIBILITY_VERSION "<link linkend='cv-_APPLELINK_COMPATIBILITY_VERSION' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$_APPLELINK_COMPATIBILITY_VERSION</envar></link>">
@@ -726,6 +734,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-link-DINCSUFFIX "<link linkend='cv-DINCSUFFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DINCSUFFIX</envar></link>">
<!ENTITY cv-link-Dir "<link linkend='cv-Dir' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$Dir</envar></link>">
<!ENTITY cv-link-Dirs "<link linkend='cv-Dirs' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$Dirs</envar></link>">
+<!ENTITY cv-link-DISABLE_AUTO_NINJA "<link linkend='cv-DISABLE_AUTO_NINJA' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DISABLE_AUTO_NINJA</envar></link>">
<!ENTITY cv-link-DLIB "<link linkend='cv-DLIB' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DLIB</envar></link>">
<!ENTITY cv-link-DLIBCOM "<link linkend='cv-DLIBCOM' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DLIBCOM</envar></link>">
<!ENTITY cv-link-DLIBDIRPREFIX "<link linkend='cv-DLIBDIRPREFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DLIBDIRPREFIX</envar></link>">
@@ -992,6 +1001,17 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-link-MWCW_VERSION "<link linkend='cv-MWCW_VERSION' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$MWCW_VERSION</envar></link>">
<!ENTITY cv-link-MWCW_VERSIONS "<link linkend='cv-MWCW_VERSIONS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$MWCW_VERSIONS</envar></link>">
<!ENTITY cv-link-NAME "<link linkend='cv-NAME' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NAME</envar></link>">
+<!ENTITY cv-link-NINJA_ALIAS_NAME "<link linkend='cv-NINJA_ALIAS_NAME' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_ALIAS_NAME</envar></link>">
+<!ENTITY cv-link-NINJA_BUILDDIR "<link linkend='cv-NINJA_BUILDDIR' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_BUILDDIR</envar></link>">
+<!ENTITY cv-link-NINJA_COMPDB_EXPAND "<link linkend='cv-NINJA_COMPDB_EXPAND' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_COMPDB_EXPAND</envar></link>">
+<!ENTITY cv-link-NINJA_ENV_VAR_CACHE "<link linkend='cv-NINJA_ENV_VAR_CACHE' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_ENV_VAR_CACHE</envar></link>">
+<!ENTITY cv-link-NINJA_FILE_NAME "<link linkend='cv-NINJA_FILE_NAME' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_FILE_NAME</envar></link>">
+<!ENTITY cv-link-NINJA_GENERATED_SOURCE_SUFFIXES "<link linkend='cv-NINJA_GENERATED_SOURCE_SUFFIXES' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_GENERATED_SOURCE_SUFFIXES</envar></link>">
+<!ENTITY cv-link-NINJA_MSVC_DEPS_PREFIX "<link linkend='cv-NINJA_MSVC_DEPS_PREFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_MSVC_DEPS_PREFIX</envar></link>">
+<!ENTITY cv-link-NINJA_POOL "<link linkend='cv-NINJA_POOL' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_POOL</envar></link>">
+<!ENTITY cv-link-NINJA_REGENERATE_DEPS "<link linkend='cv-NINJA_REGENERATE_DEPS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_REGENERATE_DEPS</envar></link>">
+<!ENTITY cv-link-_NINJA_REGENERATE_DEPS_FUNC "<link linkend='cv-_NINJA_REGENERATE_DEPS_FUNC' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$_NINJA_REGENERATE_DEPS_FUNC</envar></link>">
+<!ENTITY cv-link-NINJA_SYNTAX "<link linkend='cv-NINJA_SYNTAX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$NINJA_SYNTAX</envar></link>">
<!ENTITY cv-link-no_import_lib "<link linkend='cv-no_import_lib' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$no_import_lib</envar></link>">
<!ENTITY cv-link-OBJPREFIX "<link linkend='cv-OBJPREFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$OBJPREFIX</envar></link>">
<!ENTITY cv-link-OBJSUFFIX "<link linkend='cv-OBJSUFFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$OBJSUFFIX</envar></link>">
@@ -1004,7 +1024,6 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-link-PCHPDBFLAGS "<link linkend='cv-PCHPDBFLAGS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$PCHPDBFLAGS</envar></link>">
<!ENTITY cv-link-PCHSTOP "<link linkend='cv-PCHSTOP' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$PCHSTOP</envar></link>">
<!ENTITY cv-link-PDB "<link linkend='cv-PDB' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$PDB</envar></link>">
-<!ENTITY cv-link-PDFCOM "<link linkend='cv-PDFCOM' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$PDFCOM</envar></link>">
<!ENTITY cv-link-PDFLATEX "<link linkend='cv-PDFLATEX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$PDFLATEX</envar></link>">
<!ENTITY cv-link-PDFLATEXCOM "<link linkend='cv-PDFLATEXCOM' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$PDFLATEXCOM</envar></link>">
<!ENTITY cv-link-PDFLATEXCOMSTR "<link linkend='cv-PDFLATEXCOMSTR' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$PDFLATEXCOMSTR</envar></link>">
@@ -1210,11 +1229,6 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-link-VENDOR "<link linkend='cv-VENDOR' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$VENDOR</envar></link>">
<!ENTITY cv-link-VERSION "<link linkend='cv-VERSION' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$VERSION</envar></link>">
<!ENTITY cv-link-VSWHERE "<link linkend='cv-VSWHERE' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$VSWHERE</envar></link>">
-<!ENTITY cv-link-WIN32_INSERT_DEF "<link linkend='cv-WIN32_INSERT_DEF' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WIN32_INSERT_DEF</envar></link>">
-<!ENTITY cv-link-WIN32DEFPREFIX "<link linkend='cv-WIN32DEFPREFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WIN32DEFPREFIX</envar></link>">
-<!ENTITY cv-link-WIN32DEFSUFFIX "<link linkend='cv-WIN32DEFSUFFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WIN32DEFSUFFIX</envar></link>">
-<!ENTITY cv-link-WIN32EXPPREFIX "<link linkend='cv-WIN32EXPPREFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WIN32EXPPREFIX</envar></link>">
-<!ENTITY cv-link-WIN32EXPSUFFIX "<link linkend='cv-WIN32EXPSUFFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WIN32EXPSUFFIX</envar></link>">
<!ENTITY cv-link-WINDOWS_EMBED_MANIFEST "<link linkend='cv-WINDOWS_EMBED_MANIFEST' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WINDOWS_EMBED_MANIFEST</envar></link>">
<!ENTITY cv-link-WINDOWS_INSERT_DEF "<link linkend='cv-WINDOWS_INSERT_DEF' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WINDOWS_INSERT_DEF</envar></link>">
<!ENTITY cv-link-WINDOWS_INSERT_MANIFEST "<link linkend='cv-WINDOWS_INSERT_MANIFEST' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$WINDOWS_INSERT_MANIFEST</envar></link>">