def check_autodetect_func(self): if self.attributes['func'](self.ctx, self.identifier): self.success(self.identifier) else: self.fail() self.ctx.undefine(inflector.define_key(self.identifier)) self.fatal_if_needed()
def fn(ctx, dependency_identifier): if ctx.env.MACOS_SDK_VERSION: if StrictVersion( ctx.env.MACOS_SDK_VERSION) >= StrictVersion(version): ctx.define(inflector.define_key(dependency_identifier), 1) return True return False
def __get_features_string__(ctx): import inflector stuff = [] for dependency_identifier in ctx.satisfied_deps: defkey = inflector.define_key(dependency_identifier) if ctx.is_defined(defkey) and ctx.get_define(defkey) == "1": stuff.append(dependency_identifier) stuff.sort() return " ".join(stuff)
def fn(ctx, dependency_identifier): for header in headers: defaults = {'header_name': header, 'features': 'c cprogram'} options = __merge_options__(dependency_identifier, defaults, kw_ext) if ctx.check(**options): undef_others(ctx, headers, header) ctx.define(inflector.define_key(dependency_identifier), 1) return True undef_others(ctx, headers, None) return False
def check(self): self.ctx.start_msg('Checking for {0}'.format(self.desc)) try: self.check_group_disabled() self.check_disabled() self.check_dependencies() except DependencyError: # No check was run, since the prerequisites of the dependency are # not satisfied. Make sure the define is 'undefined' so that we # get a `#define YYY 0` in `config.h`. self.ctx.undefine(inflector.define_key(self.identifier)) self.fatal_if_needed() return self.check_autodetect_func()
def fn(ctx, dependency_identifier, **kw): argsl = list(args) packages = args[::2] verchecks = args[1::2] sargs = [] pkgc_args = _pkgc_args dyn_libs = {} for i in range(0, len(packages)): if i < len(verchecks): sargs.append(packages[i] + ' ' + verchecks[i]) else: sargs.append(packages[i]) if _dyn_libs and _dyn_libs[i]: dyn_libs[packages[i]] = _dyn_libs[i] if ctx.dependency_satisfied('static-build') and not dyn_libs: pkgc_args += ["--static"] defaults = { 'path': ctx.env.PKG_CONFIG, 'package': " ".join(packages), 'args': sargs + pkgc_args } opts = __merge_options__(dependency_identifier, defaults, kw_ext, kw) # Warning! Megahack incoming: when parsing flags in `parse_flags` waf # uses append_unique. This appends the flags only if they aren't # already present in the list. This causes breakage if one checks for # multiple pkg-config packages in a single call as stuff like -lm is # added only at its first occurrence. original_append_unique = ConfigSet.append_unique ConfigSet.append_unique = ConfigSet.append_value result = ctx.check_cfg(**opts) ConfigSet.append_unique = original_append_unique defkey = inflector.define_key(dependency_identifier) if result: ctx.define(defkey, 1) for x in dyn_libs.keys(): ctx.env['LIB_' + x] += dyn_libs[x] else: ctx.add_optional_message(dependency_identifier, "'{0}' not found".format(" ".join(sargs))) ctx.undefine(defkey) return result
def fn(ctx, dependency_identifier, **kw): argsl = list(args) packages = args[::2] verchecks = args[1::2] sargs = [] pkgc_args = _pkgc_args dyn_libs = {} for i in range(0, len(packages)): if i < len(verchecks): sargs.append(packages[i] + ' ' + verchecks[i]) else: sargs.append(packages[i]) if _dyn_libs and _dyn_libs[i]: dyn_libs[packages[i]] = _dyn_libs[i] if ctx.dependency_satisfied('static-build') and not dyn_libs: pkgc_args += ["--static"] defaults = { 'path': ctx.env.PKG_CONFIG, 'package': " ".join(packages), 'args': sargs + pkgc_args } opts = __merge_options__(dependency_identifier, defaults, kw_ext, kw) # Warning! Megahack incoming: when parsing flags in `parse_flags` waf # uses append_unique. This appends the flags only if they aren't # already present in the list. This causes breakage if one checks for # multiple pkg-config packages in a single call as stuff like -lm is # added only at its first occurrence. original_append_unique = ConfigSet.append_unique ConfigSet.append_unique = ConfigSet.append_value result = ctx.check_cfg(**opts) ConfigSet.append_unique = original_append_unique defkey = inflector.define_key(dependency_identifier) if result: ctx.define(defkey, 1) for x in dyn_libs.keys(): ctx.env['LIB_'+x] += dyn_libs[x] else: ctx.add_optional_message(dependency_identifier, "'{0}' not found".format(" ".join(sargs))) ctx.undefine(defkey) return result
def check_stub(ctx, dependency_identifier): ctx.undefine(inflector.define_key(dependency_identifier)) return False
def check_true(ctx, dependency_identifier): ctx.define(inflector.define_key(dependency_identifier), 1) return True
def undef_others(ctx, headers, found): not_found_hs = set(headers) - {found} for not_found_h in not_found_hs: ctx.undefine(inflector.define_key(not_found_h))
def undef_others(ctx, headers, found): not_found_hs = set(headers) - set([found]) for not_found_h in not_found_hs: ctx.undefine(inflector.define_key(not_found_h))