Bug 1304522 - Fix the "when" argument to check_header to actually make checks conditional. r=glandium

MozReview-Commit-ID: JlYUFsPRGAV

--HG--
extra : rebase_source : 8cd667969fefb043f9769f35ba1fd12fe209a2b4
This commit is contained in:
Chris Manchester 2016-09-21 22:02:43 -07:00
parent 69ec95883f
commit 732cc6b973
2 changed files with 15 additions and 6 deletions

View File

@ -18,13 +18,14 @@
# - `check_msg` is the message to be printed to accompany compiling the test
# program.
@template
def try_compile(includes=None, body='', language='C++', flags=None, check_msg=None):
def try_compile(includes=None, body='', language='C++', flags=None, check_msg=None,
when=None):
compiler = {
'C': c_compiler,
'C++': cxx_compiler,
}[language]
return compiler.try_compile(includes, body, flags, check_msg)
return compiler.try_compile(includes, body, flags, check_msg, when=when)
# Checks for the presence of the given header on the target system by compiling
@ -52,10 +53,8 @@ def check_header(header, language='C++', flags=None, includes=None, when=None):
includes = []
includes.append(header)
@depends_when(try_compile(includes=includes, language=language, flags=flags,
check_msg='for %s' % header), when=when)
def have_header(value):
return value
have_header = try_compile(includes=includes, language=language, flags=flags,
check_msg='for %s' % header, when=when)
header_var = 'HAVE_%s' % (header.upper()
.replace('-', '_')
.replace('/', '_')

View File

@ -180,6 +180,16 @@ class TestHeaderChecks(BaseCompileChecks):
checking for foo.h... yes
'''))
def test_check_header_conditional(self):
cmd = textwrap.dedent('''\
check_headers('foo.h', 'bar.h', when=never)
''')
config, out, status = self.do_compile_test(cmd)
self.assertEqual(status, 0)
self.assertEqual(out, '')
self.assertEqual(config, {'DEFINES':{}})
def test_check_header_include(self):
expected_test_content = textwrap.dedent('''\
#include <std.h>