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__"
28 Verify that we can import and use the contents of Platform and Tool
34 test = TestSCons.TestSCons()
36 SConstruct_path = test.workpath('SConstruct')
50 for platform in platforms:
51 test.write('SConstruct', """
52 env = Environment(platform = '%s')
53 import SCons.Platform.%s
54 x = SCons.Platform.%s.generate
55 """ % (platform, platform, platform))
59 # Can't import '386asm' everywhere due to Windows registry dependency.
104 # Can't import 'linkloc' everywhere due to Windows registry dependency.
142 # Intel no compiler warning..
143 intel_no_compiler_fmt = """
144 scons: warning: Failed to find Intel compiler for version='None', abi='%(abi)s'
145 File "%(SConstruct_path)s", line 1, in ?
149 intel_no_compiler_32_warning = intel_no_compiler_fmt % locals()
152 intel_no_compiler_64_warning = intel_no_compiler_fmt % locals()
154 # Intel no top dir warning.
155 intel_no_top_dir_fmt = """
156 scons: warning: Can't find Intel compiler top dir for version='None', abi='%(abi)s'
157 File "%(SConstruct_path)s", line 1, in ?
161 intel_no_top_dir_32_warning = intel_no_top_dir_fmt % locals()
164 intel_no_top_dir_64_warning = intel_no_top_dir_fmt % locals()
166 # Intel no license directory warning
167 intel_license_warning = """
168 scons: warning: Intel license dir was not found. Tried using the INTEL_LICENSE_FILE environment variable (), the registry () and the default path (C:\Program Files\Common Files\Intel\Licenses). Using the default path as a last resort.
169 File "%(SConstruct_path)s", line 1, in ?
173 intel_license_warning,
174 intel_no_compiler_32_warning,
175 intel_no_compiler_32_warning + intel_license_warning,
176 intel_no_compiler_64_warning,
177 intel_no_compiler_64_warning + intel_license_warning,
178 intel_no_top_dir_32_warning,
179 intel_no_top_dir_32_warning + intel_license_warning,
180 intel_no_top_dir_64_warning,
181 intel_no_top_dir_64_warning + intel_license_warning,
184 moc = test.where_is('moc')
188 qtdir = os.path.dirname(os.path.dirname(moc))
191 scons: warning: Could not detect qt, using moc executable as a hint (QTDIR=%(qtdir)s)
192 File "%(SConstruct_path)s", line 1, in ?
198 scons: warning: Could not detect qt, using empty QTDIR
199 File "%(SConstruct_path)s", line 1, in ?
203 'icl' : intel_warnings,
204 'intelc' : intel_warnings,
208 # An SConstruct for importing Tool names that have illegal characters
209 # for Python variable names.
210 indirect_import = """\
211 env = Environment(tools = ['%s'])
212 SCons = __import__('SCons.Tool.%s', globals(), locals(), [])
213 m = getattr(SCons.Tool, '%s')
217 # An SConstruct for importing Tool names "normally."
219 env = Environment(tools = ['%s'])
221 x = SCons.Tool.%s.generate
226 if tool[0] in '0123456789' or '+' in tool:
227 test.write('SConstruct', indirect_import % (tool, tool, tool))
229 test.write('SConstruct', direct_import % (tool, tool, tool))
230 test.run(stderr=None)
231 stderr = test.stderr()
232 if not stderr in [''] + error_output.get(tool, []):
233 print "Failed importing '%s', stderr:" % tool
235 failures.append(tool)
237 test.fail_test(len(failures))