cmds.projects.CmdBuild: Support --dep-flavours
CmdBuild caters for the needs of the targets all, clean and pkg-*. It uses builtin dependency flavours matching those targets to resolve build order. To make it more flexible in general and support more targets, e.g. check and test, add a --dep-flavours option. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
b53fdd2fea
commit
68cda8197e
2 changed files with 36 additions and 21 deletions
|
|
@ -53,6 +53,14 @@ class CmdBuild(Cmd): # export
|
||||||
'on the command line'
|
'on the command line'
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--dep-flavours',
|
||||||
|
default = 'auto',
|
||||||
|
help = (
|
||||||
|
'Dependency flavours to take into consideration for build, '
|
||||||
|
'comma or space separated'
|
||||||
|
)
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--env-reinit',
|
'--env-reinit',
|
||||||
action = 'store_true',
|
action = 'store_true',
|
||||||
|
|
@ -247,9 +255,12 @@ class CmdBuild(Cmd): # export
|
||||||
# -- build
|
# -- build
|
||||||
order: list[str] = []
|
order: list[str] = []
|
||||||
|
|
||||||
|
if args.dep_flavours != 'auto':
|
||||||
|
dep_flavours = re.split(r'[\s,]', args.dep_flavours)
|
||||||
|
else:
|
||||||
dep_flavours = ['build']
|
dep_flavours = ['build']
|
||||||
if re.match('pkg-.*', target) is not None:
|
if re.match('pkg-.*', target) is not None:
|
||||||
dep_flavours = ['build', 'run', 'release', 'devel']
|
dep_flavours.extend(['run', 'release', 'devel'])
|
||||||
|
|
||||||
if target != 'order' and not args.build_order:
|
if target != 'order' and not args.build_order:
|
||||||
log(NOTICE, 'Using prerequisite flavours ' + ' '.join(dep_flavours))
|
log(NOTICE, 'Using prerequisite flavours ' + ' '.join(dep_flavours))
|
||||||
|
|
|
||||||
|
|
@ -254,7 +254,8 @@ Available subcommands of projects:
|
||||||
tmpl-dir Print directory containing templates of a given module
|
tmpl-dir Print directory containing templates of a given module
|
||||||
============= Running: jw-pkg.py --log-level info projects build --help
|
============= Running: jw-pkg.py --log-level info projects build --help
|
||||||
usage: jw-pkg.py projects build [-h] [--exclude EXCLUDE] [-n] [-O] [-I]
|
usage: jw-pkg.py projects build [-h] [--exclude EXCLUDE] [-n] [-O] [-I]
|
||||||
[--env-reinit] [--env-keep ENV_KEEP]
|
[--dep-flavours DEP_FLAVOURS] [--env-reinit]
|
||||||
|
[--env-keep ENV_KEEP]
|
||||||
target modules [modules ...]
|
target modules [modules ...]
|
||||||
|
|
||||||
janware software project build tool
|
janware software project build tool
|
||||||
|
|
@ -273,6 +274,9 @@ options:
|
||||||
(default: False)
|
(default: False)
|
||||||
-I, --ignore-deps Don't build dependencies, i.e. build only modules
|
-I, --ignore-deps Don't build dependencies, i.e. build only modules
|
||||||
specified on the command line (default: False)
|
specified on the command line (default: False)
|
||||||
|
--dep-flavours DEP_FLAVOURS
|
||||||
|
Dependency flavours to take into consideration for
|
||||||
|
build, comma or space separated (default: auto)
|
||||||
--env-reinit Source /etc/profile before each build step. Discard
|
--env-reinit Source /etc/profile before each build step. Discard
|
||||||
environment unless --env-keep is specified (default:
|
environment unless --env-keep is specified (default:
|
||||||
False)
|
False)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue