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()
48 for platform in platforms:
49 test.write('SConstruct', """
50 env = Environment(platform = '%s')
51 import SCons.Platform.%s
52 x = SCons.Platform.%s.generate
53 """ % (platform, platform, platform))
57 # Can't import '386asm' everywhere due to Windows registry dependency.
102 # Can't import 'linkloc' everywhere due to Windows registry dependency.
140 # Intel no compiler warning..
141 intel_no_compiler_fmt = """
142 scons: warning: Failed to find Intel compiler for version='None', abi='%s'
143 File "SConstruct", line 1, in ?
146 intel_no_compiler_32_warning = intel_no_compiler_fmt % 'ia32'
147 intel_no_compiler_64_warning = intel_no_compiler_fmt % 'x86_64'
149 # Intel no top dir warning.
150 intel_no_top_dir_fmt = """
151 scons: warning: Can't find Intel compiler top dir for version='None', abi='%s'
152 File "SConstruct", line 1, in ?
155 intel_no_top_dir_32_warning = intel_no_top_dir_fmt % 'ia32'
156 intel_no_top_dir_64_warning = intel_no_top_dir_fmt % 'x86_64'
158 # Intel no license directory warning
159 intel_license_warning = """
160 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.
161 File "SConstruct", line 1, in ?
165 intel_license_warning,
166 intel_no_compiler_32_warning,
167 intel_no_compiler_32_warning + intel_license_warning,
168 intel_no_compiler_64_warning,
169 intel_no_compiler_64_warning + intel_license_warning,
170 intel_no_top_dir_32_warning,
171 intel_no_top_dir_32_warning + intel_license_warning,
172 intel_no_top_dir_64_warning,
173 intel_no_top_dir_64_warning + intel_license_warning,
176 moc = test.where_is('moc')
180 scons: warning: Could not detect qt, using moc executable as a hint (QTDIR=%s)
181 File "SConstruct", line 1, in ?
182 """ % os.path.dirname(os.path.dirname(moc))
185 scons: warning: Could not detect qt, using empty QTDIR
186 File "SConstruct", line 1, in ?
190 'icl' : intel_warnings,
191 'intelc' : intel_warnings,
195 # An SConstruct for importing Tool names that have illegal characters
196 # for Python variable names.
197 indirect_import = """\
198 env = Environment(tools = ['%s'])
199 SCons = __import__('SCons.Tool.%s', globals(), locals(), [])
200 m = getattr(SCons.Tool, '%s')
204 # An SConstruct for importing Tool names "normally."
206 env = Environment(tools = ['%s'])
208 x = SCons.Tool.%s.generate
213 if tool[0] in '0123456789' or '+' in tool:
214 test.write('SConstruct', indirect_import % (tool, tool, tool))
216 test.write('SConstruct', direct_import % (tool, tool, tool))
217 test.run(stderr=None)
218 stderr = test.stderr()
219 if not stderr in [''] + error_output.get(tool, []):
220 print "Failed importing '%s', stderr:" % tool
222 failures.append(tool)
224 test.fail_test(len(failures))