diff --git a/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py b/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py index 28e8b21a..5217412a 100644 --- a/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py +++ b/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py @@ -25,10 +25,12 @@ class CmdRequiredOsPkg(Cmd): # export async def _run(self, args: Namespace) -> None: modules = args.module - flavours = args.flavours.split() - if 'build' in flavours and not 'run' in flavours: + flavours = set(args.flavours.split()) + if 'build' in flavours: # TODO: This adds too much. Only the run dependencies of the build dependencies would be needed. - flavours.append('run') + flavours.add('run') + if 'release' in flavours: + flavours |= set(['run', 'devel', 'build']) log(DEBUG, "flavours = " + args.flavours) deps = self.app.get_project_refs(modules, ['pkg.requires.jw'], flavours, scope = Scope.Subtree, add_self=True, names_only=True) @@ -38,12 +40,12 @@ class CmdRequiredOsPkg(Cmd): # export deps.remove(d) subsecs = self.app.os_cascade() log(DEBUG, "subsecs = ", subsecs) - requires = [] + requires: set[str] = set() for sec in subsecs: for flavour in flavours: vals = self.app.get_values(deps, ['pkg.requires.' + sec], [flavour]) if vals: - requires = requires + vals + requires |= set(vals) if args.quote: requires = [f'"{dep}"' for dep in requires] # TODO: add all not in build tree as -devel