Package SCons :: Package Scanner :: Module RC
[hide private]
[frames] | no frames]

Source Code for Module SCons.Scanner.RC

 1  """SCons.Scanner.RC 
 2   
 3  This module implements the dependency scanner for RC (Interface 
 4  Definition Language) files. 
 5   
 6  """ 
 7   
 8  # 
 9  # Copyright (c) 2001 - 2019 The SCons Foundation 
10  # 
11  # Permission is hereby granted, free of charge, to any person obtaining 
12  # a copy of this software and associated documentation files (the 
13  # "Software"), to deal in the Software without restriction, including 
14  # without limitation the rights to use, copy, modify, merge, publish, 
15  # distribute, sublicense, and/or sell copies of the Software, and to 
16  # permit persons to whom the Software is furnished to do so, subject to 
17  # the following conditions: 
18  # 
19  # The above copyright notice and this permission notice shall be included 
20  # in all copies or substantial portions of the Software. 
21  # 
22  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 
23  # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
24  # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
25  # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
26  # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
27  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
28  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
29  # 
30   
31  __revision__ = "src/engine/SCons/Scanner/RC.py 3a41ed6b288cee8d085373ad7fa02894e1903864 2019-01-23 17:30:35 bdeegan" 
32   
33  import re 
34   
35  import SCons.Node.FS 
36  import SCons.Scanner 
37   
38   
39 -def no_tlb(nodes):
40 """ 41 Filter out .tlb files as they are binary and shouldn't be scanned 42 """ 43 # print("Nodes:%s"%[str(n) for n in nodes]) 44 return [n for n in nodes if str(n)[-4:] != '.tlb']
45 46
47 -def RCScan():
48 """Return a prototype Scanner instance for scanning RC source files""" 49 50 res_re= r'^(?:\s*#\s*(?:include)|' \ 51 '.*?\s+(?:ICON|BITMAP|CURSOR|HTML|FONT|MESSAGETABLE|TYPELIB|REGISTRY|D3DFX)' \ 52 '\s*.*?)' \ 53 '\s*(<|"| )([^>"\s]+)(?:[>"\s])*$' 54 resScanner = SCons.Scanner.ClassicCPP("ResourceScanner", 55 "$RCSUFFIXES", 56 "CPPPATH", 57 res_re, 58 recursive=no_tlb) 59 60 return resScanner
61 62 # Local Variables: 63 # tab-width:4 64 # indent-tabs-mode:nil 65 # End: 66 # vim: set expandtab tabstop=4 shiftwidth=4: 67