def inherit_generators (toolset, properties, base, generators_to_ignore = []): assert isinstance(toolset, basestring) assert is_iterable_typed(properties, basestring) assert isinstance(base, basestring) assert is_iterable_typed(generators_to_ignore, basestring) if not properties: properties = [replace_grist (toolset, '<toolset>')] base_generators = generators.generators_for_toolset(base) for g in base_generators: id = g.id() if not id in generators_to_ignore: # Some generator names have multiple periods in their name, so # $(id:B=$(toolset)) doesn't generate the right new_id name. # e.g. if id = gcc.compile.c++, $(id:B=darwin) = darwin.c++, # which is not what we want. Manually parse the base and suffix # (if there's a better way to do this, I'd love to see it.) # See also register in module generators. (base, suffix) = split_action_id(id) new_id = toolset + '.' + suffix generators.register(g.clone(new_id, properties))
def inherit_generators(toolset, properties, base, generators_to_ignore=[]): assert isinstance(toolset, basestring) assert is_iterable_typed(properties, basestring) assert isinstance(base, basestring) assert is_iterable_typed(generators_to_ignore, basestring) if not properties: properties = [replace_grist(toolset, '<toolset>')] base_generators = generators.generators_for_toolset(base) for g in base_generators: id = g.id() if not id in generators_to_ignore: # Some generator names have multiple periods in their name, so # $(id:B=$(toolset)) doesn't generate the right new_id name. # e.g. if id = gcc.compile.c++, $(id:B=darwin) = darwin.c++, # which is not what we want. Manually parse the base and suffix # (if there's a better way to do this, I'd love to see it.) # See also register in module generators. (base, suffix) = split_action_id(id) new_id = toolset + '.' + suffix generators.register(g.clone(new_id, properties))