@FeatureNewKwargs('compiler.has_header', '0.50.0', ['required'])
@permittedKwargs(header_permitted_kwargs)
def has_header_method(self, args, kwargs):
    if (len(args) != 1):
        raise InterpreterException('has_header method takes exactly one argument.')
    check_stringlist(args)
    hname = args[0]
    prefix = kwargs.get('prefix', '')
    if (not isinstance(prefix, str)):
        raise InterpreterException('Prefix argument of has_header must be a string.')
    (disabled, required, feature) = extract_required_kwarg(kwargs, self.subproject, default=False)
    if disabled:
        mlog.log('Has header', mlog.bold(hname, True), 'skipped: feature', mlog.bold(feature), 'disabled')
        return False
    extra_args = functools.partial(self.determine_args, kwargs)
    (deps, msg) = self.determine_dependencies(kwargs)
    (haz, cached) = self.compiler.has_header(hname, prefix, self.environment, extra_args=extra_args, dependencies=deps)
    cached = (mlog.blue('(cached)') if cached else '')
    if (required and (not haz)):
        raise InterpreterException('{} header {!r} not found'.format(self.compiler.get_display_language(), hname))
    elif haz:
        h = mlog.green('YES')
    else:
        h = mlog.red('NO')
    mlog.log('Has header', mlog.bold(hname, True), msg, h, cached)
    return haz
@FeatureNewKwargs('compiler.has_header', '0.50.0', ['required'])
@permittedKwargs(header_permitted_kwargs)
def has_header_method(self, args, kwargs):
    if (len(args) != 1):
        raise InterpreterException('has_header method takes exactly one argument.')
    check_stringlist(args)
    hname = args[0]
    prefix = kwargs.get('prefix', )
    if (not isinstance(prefix, str)):
        raise InterpreterException('Prefix argument of has_header must be a string.')
    (disabled, required, feature) = extract_required_kwarg(kwargs, self.subproject, default=False)
    if disabled:
        mlog.log('Has header', mlog.bold(hname, True), 'skipped: feature', mlog.bold(feature), 'disabled')
        return False
    extra_args = functools.partial(self.determine_args, kwargs)
    (deps, msg) = self.determine_dependencies(kwargs)
    (haz, cached) = self.compiler.has_header(hname, prefix, self.environment, extra_args=extra_args, dependencies=deps)
    cached = (mlog.blue('(cached)') if cached else )
    if (required and (not haz)):
        raise InterpreterException('{} header {!r} not found'.format(self.compiler.get_display_language(), hname))
    elif haz:
        h = mlog.green('YES')
    else:
        h = mlog.red('NO')
    mlog.log('Has header', mlog.bold(hname, True), msg, h, cached)
    return haz