cmds.projects.CmdBuild: Support --dep-flavours
CmdBuild supports 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 allow it to support more targets, e.g. "check" and "test", this commit adds a --dep-flavours option. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
b7431e5bc6
commit
41ca202142
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 -t ../../../.. --log-level info projects build --help
|
============= Running: jw-pkg.py -t ../../../.. --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