summaryrefslogtreecommitdiff
path: root/src/engine/SCons/Scanner/__init__.xml
blob: f16de90e9eae19a78edccc75175a190931af533d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!--
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation

This file is processed by the bin/SConsDoc.py module.
See its __doc__ string for a discussion of the format.
-->

<scons_function name="FindPathDirs">
<arguments signature="global">
(variable)
</arguments>
<summary>
Returns a function
(actually a callable Python object)
intended to be used as the
<varname>path_function</varname>
of a Scanner object.
The returned object will look up the specified
<varname>variable</varname>
in a construction environment
and treat the construction variable's value as a list of
directory paths that should be searched
(like
&cv-link-CPPPATH;,
&cv-link-LIBPATH;,
etc.).

Note that use of
&f-FindPathDirs;
is generally preferable to
writing your own
<varname>path_function</varname>
for the following reasons:
1) The returned list will contain all appropriate directories
found in source trees
(when
&f-link-VariantDir;
is used)
or in code repositories
(when
&f-Repository;
or the
<option>-Y</option>
option are used).
2) scons will identify expansions of
<varname>variable</varname>
that evaluate to the same list of directories as,
in fact, the same list,
and avoid re-scanning the directories for files,
when possible.

Example:

<example>
def my_scan(node, env, path, arg):
    # Code to scan file contents goes here...
    return include_files

scanner = Scanner(name = 'myscanner',
                  function = my_scan,
                  path_function = FindPathDirs('MYPATH'))
</example>
</summary>
</scons_function>