diff options
author | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2023-06-30 15:08:11 +0200 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2023-08-15 15:54:37 -0700 |
commit | 006e69265e2460407af4fa416a0f2ee5fe85f7fc (patch) | |
tree | db9a37f1d0e5428657fdddfe24644280170fb159 /lib | |
parent | eaec3062a1f317e2216e15942e3011c56bdf9d0b (diff) | |
download | spack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.tar.gz spack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.tar.bz2 spack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.tar.xz spack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.zip |
Optimize grounding of "can_inherit_flags"
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/solver/concretize.lp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index f1126f9fb0..307a8719a8 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -1148,12 +1148,15 @@ error(100, "Compiler {1}@{2} requested for {0} cannot be found. Set install_miss % propagate flags when compiler match can_inherit_flags(PackageNode, DependencyNode, FlagType) + :- same_compiler(PackageNode, DependencyNode), + not attr("node_flag_set", DependencyNode, FlagType, _), + flag_type(FlagType). + +same_compiler(PackageNode, DependencyNode) :- depends_on(PackageNode, DependencyNode), node_compiler(PackageNode, CompilerID), node_compiler(DependencyNode, CompilerID), - not attr("node_flag_set", DependencyNode, FlagType, _), - compiler_id(CompilerID), - flag_type(FlagType). + compiler_id(CompilerID). node_flag_inherited(DependencyNode, FlagType, Flag) :- attr("node_flag_set", PackageNode, FlagType, Flag), |