5 # Permission is hereby granted, free of charge, to any person obtaining
6 # a copy of this software and associated documentation files (the
7 # "Software"), to deal in the Software without restriction, including
8 # without limitation the rights to use, copy, modify, merge, publish,
9 # distribute, sublicense, and/or sell copies of the Software, and to
10 # permit persons to whom the Software is furnished to do so, subject to
11 # the following conditions:
13 # The above copyright notice and this permission notice shall be included
14 # in all copies or substantial portions of the Software.
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
17 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
18 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
33 test = TestSCons.TestSCons()
35 test.subdir('sub1', 'sub2')
37 test.write('cat.py', """\
39 ofp = open(sys.argv[1], "w")
40 for ifp in map(open, sys.argv[2:]):
45 test.write('SConstruct', """\
46 env = Environment(OBJSUFFIX = '.ooo', PROGSUFFIX = '.xxx',
47 LIBPATH = ['sub1', 'sub2', '.'],
48 LIBS = ['iii', 'jjj', 'kkk', 'lll', 'mmm'],
49 LIBPREFIXES = ['a-', 'b-', 'c-'],
50 LIBSUFFIXES = ['.aaa', '.bbb', '.ccc'],
51 LINKCOM = '%(python)s cat.py $TARGET $SOURCES')
52 env.Program('foo', 'a.ooo',)
53 """ % {'python' : TestSCons.python})
55 test.write('a.ooo', "a.ooo\n")
57 test.write('a-iii.aaa', "a-iii.aaa\n")
58 test.write(['sub1', 'b-jjj.bbb'], "b-jjj.bbb\n")
59 test.write(['sub2', 'c-kkk.ccc'], "c-kkk.ccc\n")
60 test.write('a-lll.ccc', "a-lll.ccc\n")
62 test.run(arguments = "--debug=findlibs foo.xxx",
63 stdout = test.wrap_stdout("""\
64 findlibs: looking for 'a-iii.aaa' in 'sub1' ...
65 findlibs: looking for 'a-iii.aaa' in 'sub2' ...
66 findlibs: looking for 'a-iii.aaa' in '.' ...
67 findlibs: ... FOUND 'a-iii.aaa' in '.'
68 findlibs: looking for 'b-iii.aaa' in 'sub1' ...
69 findlibs: looking for 'b-iii.aaa' in 'sub2' ...
70 findlibs: looking for 'b-iii.aaa' in '.' ...
71 findlibs: looking for 'c-iii.aaa' in 'sub1' ...
72 findlibs: looking for 'c-iii.aaa' in 'sub2' ...
73 findlibs: looking for 'c-iii.aaa' in '.' ...
74 findlibs: looking for 'a-iii.bbb' in 'sub1' ...
75 findlibs: looking for 'a-iii.bbb' in 'sub2' ...
76 findlibs: looking for 'a-iii.bbb' in '.' ...
77 findlibs: looking for 'b-iii.bbb' in 'sub1' ...
78 findlibs: looking for 'b-iii.bbb' in 'sub2' ...
79 findlibs: looking for 'b-iii.bbb' in '.' ...
80 findlibs: looking for 'c-iii.bbb' in 'sub1' ...
81 findlibs: looking for 'c-iii.bbb' in 'sub2' ...
82 findlibs: looking for 'c-iii.bbb' in '.' ...
83 findlibs: looking for 'a-iii.ccc' in 'sub1' ...
84 findlibs: looking for 'a-iii.ccc' in 'sub2' ...
85 findlibs: looking for 'a-iii.ccc' in '.' ...
86 findlibs: looking for 'b-iii.ccc' in 'sub1' ...
87 findlibs: looking for 'b-iii.ccc' in 'sub2' ...
88 findlibs: looking for 'b-iii.ccc' in '.' ...
89 findlibs: looking for 'c-iii.ccc' in 'sub1' ...
90 findlibs: looking for 'c-iii.ccc' in 'sub2' ...
91 findlibs: looking for 'c-iii.ccc' in '.' ...
92 findlibs: looking for 'a-jjj.aaa' in 'sub1' ...
93 findlibs: looking for 'a-jjj.aaa' in 'sub2' ...
94 findlibs: looking for 'a-jjj.aaa' in '.' ...
95 findlibs: looking for 'b-jjj.aaa' in 'sub1' ...
96 findlibs: looking for 'b-jjj.aaa' in 'sub2' ...
97 findlibs: looking for 'b-jjj.aaa' in '.' ...
98 findlibs: looking for 'c-jjj.aaa' in 'sub1' ...
99 findlibs: looking for 'c-jjj.aaa' in 'sub2' ...
100 findlibs: looking for 'c-jjj.aaa' in '.' ...
101 findlibs: looking for 'a-jjj.bbb' in 'sub1' ...
102 findlibs: looking for 'a-jjj.bbb' in 'sub2' ...
103 findlibs: looking for 'a-jjj.bbb' in '.' ...
104 findlibs: looking for 'b-jjj.bbb' in 'sub1' ...
105 findlibs: ... FOUND 'b-jjj.bbb' in 'sub1'
106 findlibs: looking for 'c-jjj.bbb' in 'sub1' ...
107 findlibs: looking for 'c-jjj.bbb' in 'sub2' ...
108 findlibs: looking for 'c-jjj.bbb' in '.' ...
109 findlibs: looking for 'a-jjj.ccc' in 'sub1' ...
110 findlibs: looking for 'a-jjj.ccc' in 'sub2' ...
111 findlibs: looking for 'a-jjj.ccc' in '.' ...
112 findlibs: looking for 'b-jjj.ccc' in 'sub1' ...
113 findlibs: looking for 'b-jjj.ccc' in 'sub2' ...
114 findlibs: looking for 'b-jjj.ccc' in '.' ...
115 findlibs: looking for 'c-jjj.ccc' in 'sub1' ...
116 findlibs: looking for 'c-jjj.ccc' in 'sub2' ...
117 findlibs: looking for 'c-jjj.ccc' in '.' ...
118 findlibs: looking for 'a-kkk.aaa' in 'sub1' ...
119 findlibs: looking for 'a-kkk.aaa' in 'sub2' ...
120 findlibs: looking for 'a-kkk.aaa' in '.' ...
121 findlibs: looking for 'b-kkk.aaa' in 'sub1' ...
122 findlibs: looking for 'b-kkk.aaa' in 'sub2' ...
123 findlibs: looking for 'b-kkk.aaa' in '.' ...
124 findlibs: looking for 'c-kkk.aaa' in 'sub1' ...
125 findlibs: looking for 'c-kkk.aaa' in 'sub2' ...
126 findlibs: looking for 'c-kkk.aaa' in '.' ...
127 findlibs: looking for 'a-kkk.bbb' in 'sub1' ...
128 findlibs: looking for 'a-kkk.bbb' in 'sub2' ...
129 findlibs: looking for 'a-kkk.bbb' in '.' ...
130 findlibs: looking for 'b-kkk.bbb' in 'sub1' ...
131 findlibs: looking for 'b-kkk.bbb' in 'sub2' ...
132 findlibs: looking for 'b-kkk.bbb' in '.' ...
133 findlibs: looking for 'c-kkk.bbb' in 'sub1' ...
134 findlibs: looking for 'c-kkk.bbb' in 'sub2' ...
135 findlibs: looking for 'c-kkk.bbb' in '.' ...
136 findlibs: looking for 'a-kkk.ccc' in 'sub1' ...
137 findlibs: looking for 'a-kkk.ccc' in 'sub2' ...
138 findlibs: looking for 'a-kkk.ccc' in '.' ...
139 findlibs: looking for 'b-kkk.ccc' in 'sub1' ...
140 findlibs: looking for 'b-kkk.ccc' in 'sub2' ...
141 findlibs: looking for 'b-kkk.ccc' in '.' ...
142 findlibs: looking for 'c-kkk.ccc' in 'sub1' ...
143 findlibs: looking for 'c-kkk.ccc' in 'sub2' ...
144 findlibs: ... FOUND 'c-kkk.ccc' in 'sub2'
145 findlibs: looking for 'a-lll.aaa' in 'sub1' ...
146 findlibs: looking for 'a-lll.aaa' in 'sub2' ...
147 findlibs: looking for 'a-lll.aaa' in '.' ...
148 findlibs: looking for 'b-lll.aaa' in 'sub1' ...
149 findlibs: looking for 'b-lll.aaa' in 'sub2' ...
150 findlibs: looking for 'b-lll.aaa' in '.' ...
151 findlibs: looking for 'c-lll.aaa' in 'sub1' ...
152 findlibs: looking for 'c-lll.aaa' in 'sub2' ...
153 findlibs: looking for 'c-lll.aaa' in '.' ...
154 findlibs: looking for 'a-lll.bbb' in 'sub1' ...
155 findlibs: looking for 'a-lll.bbb' in 'sub2' ...
156 findlibs: looking for 'a-lll.bbb' in '.' ...
157 findlibs: looking for 'b-lll.bbb' in 'sub1' ...
158 findlibs: looking for 'b-lll.bbb' in 'sub2' ...
159 findlibs: looking for 'b-lll.bbb' in '.' ...
160 findlibs: looking for 'c-lll.bbb' in 'sub1' ...
161 findlibs: looking for 'c-lll.bbb' in 'sub2' ...
162 findlibs: looking for 'c-lll.bbb' in '.' ...
163 findlibs: looking for 'a-lll.ccc' in 'sub1' ...
164 findlibs: looking for 'a-lll.ccc' in 'sub2' ...
165 findlibs: looking for 'a-lll.ccc' in '.' ...
166 findlibs: ... FOUND 'a-lll.ccc' in '.'
167 findlibs: looking for 'b-lll.ccc' in 'sub1' ...
168 findlibs: looking for 'b-lll.ccc' in 'sub2' ...
169 findlibs: looking for 'b-lll.ccc' in '.' ...
170 findlibs: looking for 'c-lll.ccc' in 'sub1' ...
171 findlibs: looking for 'c-lll.ccc' in 'sub2' ...
172 findlibs: looking for 'c-lll.ccc' in '.' ...
173 findlibs: looking for 'a-mmm.aaa' in 'sub1' ...
174 findlibs: looking for 'a-mmm.aaa' in 'sub2' ...
175 findlibs: looking for 'a-mmm.aaa' in '.' ...
176 findlibs: looking for 'b-mmm.aaa' in 'sub1' ...
177 findlibs: looking for 'b-mmm.aaa' in 'sub2' ...
178 findlibs: looking for 'b-mmm.aaa' in '.' ...
179 findlibs: looking for 'c-mmm.aaa' in 'sub1' ...
180 findlibs: looking for 'c-mmm.aaa' in 'sub2' ...
181 findlibs: looking for 'c-mmm.aaa' in '.' ...
182 findlibs: looking for 'a-mmm.bbb' in 'sub1' ...
183 findlibs: looking for 'a-mmm.bbb' in 'sub2' ...
184 findlibs: looking for 'a-mmm.bbb' in '.' ...
185 findlibs: looking for 'b-mmm.bbb' in 'sub1' ...
186 findlibs: looking for 'b-mmm.bbb' in 'sub2' ...
187 findlibs: looking for 'b-mmm.bbb' in '.' ...
188 findlibs: looking for 'c-mmm.bbb' in 'sub1' ...
189 findlibs: looking for 'c-mmm.bbb' in 'sub2' ...
190 findlibs: looking for 'c-mmm.bbb' in '.' ...
191 findlibs: looking for 'a-mmm.ccc' in 'sub1' ...
192 findlibs: looking for 'a-mmm.ccc' in 'sub2' ...
193 findlibs: looking for 'a-mmm.ccc' in '.' ...
194 findlibs: looking for 'b-mmm.ccc' in 'sub1' ...
195 findlibs: looking for 'b-mmm.ccc' in 'sub2' ...
196 findlibs: looking for 'b-mmm.ccc' in '.' ...
197 findlibs: looking for 'c-mmm.ccc' in 'sub1' ...
198 findlibs: looking for 'c-mmm.ccc' in 'sub2' ...
199 findlibs: looking for 'c-mmm.ccc' in '.' ...
200 %(python)s cat.py foo.xxx a.ooo
201 """ % {'python' : TestSCons.python}))
203 test.must_match('foo.xxx', "a.ooo\n")