concretizer: make some rules into facts

This commit is contained in:
Todd Gamblin 2020-01-02 22:12:19 -08:00
parent 810542d4fe
commit cb8ca505ef

View File

@ -327,23 +327,19 @@ def pkg_rules(self, pkg):
# variants # variants
for name, variant in sorted(pkg.variants.items()): for name, variant in sorted(pkg.variants.items()):
self.rule(fn.variant(pkg.name, name), self.fact(fn.variant(pkg.name, name))
fn.node(pkg.name))
single_value = not variant.multi single_value = not variant.multi
single = fn.variant_single_value(pkg.name, name) single = fn.variant_single_value(pkg.name, name)
if single_value: if single_value:
self.rule(single, fn.node(pkg.name)) self.fact(single)
self.rule( self.fact(
fn.variant_default_value(pkg.name, name, variant.default), fn.variant_default_value(pkg.name, name, variant.default))
fn.node(pkg.name))
else: else:
self.rule(self._not(single), fn.node(pkg.name)) self.rule(self._not(single), fn.node(pkg.name))
defaults = variant.default.split(',') defaults = variant.default.split(',')
for val in sorted(defaults): for val in sorted(defaults):
self.rule( self.fact(fn.variant_default_value(pkg.name, name, val))
fn.variant_default_value(pkg.name, name, val),
fn.node(pkg.name))
values = variant.values values = variant.values
if values is None: if values is None: