@@ -27,109 +27,66 @@ This file is processed by the bin/SConsDoc.py module.
2727<cvar name =" IMPLICIT_COMMAND_DEPENDENCIES" >
2828<summary >
2929<para >
30- Controls whether or not &SCons; will
31- add implicit dependencies for the commands
32- executed to build targets.
30+ Controls how &SCons; adds implicit dependencies from action strings
31+ (the commands executed to build targets).
32+ These implicit dependencies allow &SCons; to trigger target rebuilds
33+ when the compilers, tools, or scripts that affect build outcomes change
34+ (for example, when a new version of a compiler is installed).
35+ By default, &SCons; adds an implicit dependency on the executable
36+ represented by the first argument of the command line.
37+ This executable is first checked as a path;
38+ if not found, it is searched for in the execution environment's search path
39+ (<literal >env['ENV']['PATH']</literal >).
3340</para >
3441
3542<para >
36- By default, &SCons; will add to each target
37- an implicit dependency on the command
38- represented by the first argument of any
39- command line it executes (which is typically
40- the command itself). By setting such
41- a dependency, &SCons; can determine that
42- a target should be rebuilt if the command changes,
43- such as when a compiler is upgraded to a new version.
44- The specific file for the dependency is
45- found by searching the
46- <varname >PATH</varname >
47- variable in the
48- <varname >ENV</varname > dictionary
49- in the &consenv; used to execute the command.
50- The default is the same as
51- setting the &consvar;
43+ If &cv-IMPLICIT_COMMAND_DEPENDENCIES; is set to a falsy value
44+ (<literal >"none"</literal >, <literal >"false"</literal >,
45+ <literal >"no"</literal >, <literal >"off"</literal >,
46+ <literal >"0"</literal > or integer <literal >0</literal >),
47+ no implicit dependencies from action strings are added.
48+ If set to an integer value greater than <literal >1</literal >,
49+ or to <literal >"all"</literal >,
50+ additional command-line arguments are checked.
51+ A numeric value <emphasis >N</emphasis >
52+ checks the first <emphasis >N</emphasis > arguments,
53+ while <literal >"all"</literal > checks every argument.
54+ A checked argument beyond the first is added as a dependency
55+ if it is an absolute path or it refers to
56+ an existing file in the filesystem;
57+ unlike the first argument, these additional arguments are not searched
58+ using the execution environment's search path.
59+ All other values of &cv-IMPLICIT_COMMAND_DEPENDENCIES;
60+ are treated the same as the default.
61+ The value of
5262&cv-IMPLICIT_COMMAND_DEPENDENCIES;
53- to a True-like value (<quote >true</quote >,
54- <quote >yes</quote >,
55- or <quote >1</quote > - but not a number
56- greater than one, as that has a different meaning).
63+ is subject to substitution before it is used,
64+ so it can contain a &consvar; reference.
5765</para >
5866
5967<para >
60- Action strings can be segmented by the
61- use of an AND operator, <literal >&& </literal >.
62- In a segmented string, each segment is a separate
63- < quote >command line</ quote >, these are run
64- sequentially until one fails, or the entire
65- sequence has been executed. If an
66- action string is segmented, then the selected
67- behavior of &cv-IMPLICIT_COMMAND_DEPENDENCIES ;
68- is applied to each segment.
68+ Action strings may be segmented with a logical AND operator
69+ ( <literal >&& </literal >),
70+ indicating each segment is executed sequentially,
71+ but only if the previous segment succeeded.
72+ If &cv-IMPLICIT_COMMAND_DEPENDENCIES; is set to
73+ < literal >"all"</ literal > or an integer greater than < literal >1</ literal >,
74+ each segment is treated as a separate command line
75+ for computing dependencies ;
76+ otherwise, only the first segment is checked .
6977</para >
70-
71- <para >
72- If &cv-IMPLICIT_COMMAND_DEPENDENCIES;
73- is set to a False-like value
74- (<quote >none</quote >,
75- <quote >false</quote >,
76- <quote >no</quote >,
77- <quote >0</quote >,
78- etc.),
79- then the implicit dependency will
80- not be added to the targets
81- built with that &consenv; .
82- </para >
83-
84- <para >
85- If &cv-IMPLICIT_COMMAND_DEPENDENCIES;
86- is set to <quote >2</quote > or higher,
87- then that number of arguments in the command line
88- will be scanned for relative or absolute paths.
89- If any are present, they will be added as
90- implicit dependencies to the targets built
91- with that &consenv; .
92- The first argument in the command line will be
93- searched for using the <varname >PATH</varname >
94- variable in the <varname >ENV</varname > dictionary
95- in the &consenv; used to execute the command.
96- The other arguments will only be found if they
97- are absolute paths or valid paths relative
98- to the working directory.
99- </para >
100-
101- <para >
102- If &cv-IMPLICIT_COMMAND_DEPENDENCIES;
103- is set to <quote >all</quote >,
104- then all arguments in the command line will be
105- scanned for relative or absolute paths.
106- If any are present, they will be added as
107- implicit dependencies to the targets built
108- with that &consenv; .
109- The first argument in the command line will be
110- searched for using the <varname >PATH</varname >
111- variable in the <varname >ENV</varname > dictionary
112- in the &consenv; used to execute the command.
113- The other arguments will only be found if they
114- are absolute paths or valid paths relative
115- to the working directory.
116- </para >
117-
118- <example_commands >
119- env = Environment(IMPLICIT_COMMAND_DEPENDENCIES=False)
120- </example_commands >
12178</summary >
12279</cvar >
12380
12481<cvar name =" PRINT_CMD_LINE_FUNC" >
12582<summary >
12683<para >
127- A Python function used to print the command lines as they are executed
128- (assuming command printing is not disabled by the
129- <option >-q</option >
84+ A & Python; function used to print the command lines as they are executed
85+ (unless command printing is disabled by the
86+ <link linkend = " opt-question " >< option >-q</option >/< option >--question</ option ></ link >
13087or
131- <option >-s</option >
132- options or their equivalents ).
88+ <link linkend = " opt-silent " >< option >-s</option >/< option >--silent</ option ></ link >
89+ options).
13390The function must accept four arguments:
13491<varname >s</varname >,
13592<varname >target</varname >,
0 commit comments