Check that compiler flags can propagate
This commit is contained in:
parent
a9be08f560
commit
0d9b416bc5
@ -1708,7 +1708,7 @@ class Head:
|
||||
node_compiler_version = fn.attr("node_compiler_version_set")
|
||||
node_flag = fn.attr("node_flag_set")
|
||||
node_flag_source = fn.attr("node_flag_source")
|
||||
node_flag_propagate = fn.attr("node_flag_propagate")
|
||||
node_flag_possible_prop = fn.attr("node_flag_possible_prop")
|
||||
variant_propagate = fn.attr("variant_propagate")
|
||||
|
||||
class Body:
|
||||
@ -1722,7 +1722,7 @@ class Body:
|
||||
node_compiler_version = fn.attr("node_compiler_version")
|
||||
node_flag = fn.attr("node_flag")
|
||||
node_flag_source = fn.attr("node_flag_source")
|
||||
node_flag_propagate = fn.attr("node_flag_propagate")
|
||||
node_flag_possible_prop = fn.attr("node_flag_possible_prop")
|
||||
variant_propagate = fn.attr("variant_propagate")
|
||||
|
||||
f = Body if body else Head
|
||||
@ -1805,7 +1805,7 @@ class Body:
|
||||
clauses.append(f.node_flag(spec.name, flag_type, flag))
|
||||
clauses.append(f.node_flag_source(spec.name, flag_type, spec.name))
|
||||
if not spec.concrete and flag.propagate is True:
|
||||
clauses.append(f.node_flag_propagate(spec.name, flag_type, flag, spec.name))
|
||||
clauses.append(f.node_flag_possible_prop(spec.name, flag_type, flag, spec.name))
|
||||
|
||||
# dependencies
|
||||
if spec.concrete:
|
||||
|
@ -1189,38 +1189,25 @@ error(100, "Compiler {1}@{2} requested for {0} cannot be found. Set install_miss
|
||||
% Compiler flags
|
||||
%-----------------------------------------------------------------------------
|
||||
|
||||
% 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),
|
||||
compiler_id(CompilerID).
|
||||
|
||||
node_flag_inherited(DependencyNode, FlagType, Flag)
|
||||
:- attr("node_flag_set", PackageNode, FlagType, Flag),
|
||||
can_inherit_flags(PackageNode, DependencyNode, FlagType),
|
||||
attr("node_flag_propagate", PackageNode, FlagType).
|
||||
|
||||
% Ensure propagation
|
||||
:- node_flag_inherited(PackageNode, FlagType, Flag),
|
||||
can_inherit_flags(PackageNode, DependencyNode, FlagType),
|
||||
attr("node_flag_propagate", PackageNode, FlagType).
|
||||
=======
|
||||
% propagate flags when compiler match
|
||||
attr("node_flag_propagate", Package, FlagType, Flag, Source) :-
|
||||
attr("node_flag_possible_prop", Package, FlagType, Flag, Source),
|
||||
not attr("node_flag_set", Package, FlagType, _).
|
||||
|
||||
attr("node_flag_possible_prop", Package, FlagType, Flag, Source) :-
|
||||
node_compiler(Source, CompilerID),
|
||||
node_compiler(Package, CompilerID),
|
||||
depends_on(Parent, Package),
|
||||
attr("node_flag_propagate", Parent, _, _, Source),
|
||||
attr("node_flag_possible_prop", Parent, _, _, Source),
|
||||
attr("node_flag", Source, FlagType, Flag),
|
||||
not attr("node_flag_set", Package, FlagType, _),
|
||||
compiler_id(CompilerID),
|
||||
flag_type(FlagType).
|
||||
>>>>>>> b44c47bc83 (Simplify node_flag_propagate and propagate past 1st level dependencies)
|
||||
|
||||
error(100, "{0} and {1} cannot both propagate compiler flags '{2}' to {3}", Source1, Source2, Package, FlagType) :-
|
||||
depends_on(Source1, Package),
|
||||
|
Loading…
Reference in New Issue
Block a user