mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
projects.py: Add support for --skip-excluded to command requires-pkg
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
8ef3c06234
commit
9d2e192256
1 changed files with 27 additions and 14 deletions
|
|
@ -153,16 +153,11 @@ class Build(object):
|
|||
|
||||
print(',' + delim + ' >')
|
||||
|
||||
# -- check exclude
|
||||
exclude = get_modules_from_project_txt([ module ], 'build', 'exclude',
|
||||
scope = 1, add_self=False, names_only=True)
|
||||
cascade = os_cascade() + [ 'all' ]
|
||||
for p1 in exclude:
|
||||
for p2 in cascade:
|
||||
if p1 == p2:
|
||||
print('| Configured to skip build on platform >' + p1 + '<')
|
||||
print('`' + delim + ' <')
|
||||
return
|
||||
patt = is_excluded_from_build(module)
|
||||
if patt is not None:
|
||||
print('| Configured to skip build on platform >' + patt + '<')
|
||||
print('`' + delim + ' <')
|
||||
return
|
||||
|
||||
os.chdir(path)
|
||||
p = subprocess.Popen(make_cmd, shell=False, stdout=subprocess.PIPE, stderr=None, close_fds=True)
|
||||
|
|
@ -480,7 +475,7 @@ def pkg_relations(rel_type, args_):
|
|||
default=False, help='Always treat VERSION macro as VERSION-REVISION')
|
||||
parser.add_argument('--dont-expand-version-macros', action='store_true',
|
||||
default=False, help='Don\'t expand VERSION and REVISION macros')
|
||||
args=parser.parse_args(args_)
|
||||
args = parser.parse_args(args_)
|
||||
version_pattern=re.compile("[0-9-.]*")
|
||||
if args.subsections is None:
|
||||
subsecs = os_cascade()
|
||||
|
|
@ -533,6 +528,17 @@ def get_libname(names):
|
|||
vals.remove('none')
|
||||
return ' '.join(reversed(vals))
|
||||
|
||||
def is_excluded_from_build(module):
|
||||
debug("checking if module " + module + " is excluded from build")
|
||||
exclude = get_modules_from_project_txt([ module ], 'build', 'exclude',
|
||||
scope = 1, add_self=False, names_only=True)
|
||||
cascade = os_cascade() + [ 'all' ]
|
||||
for p1 in exclude:
|
||||
for p2 in cascade:
|
||||
if p1 == p2:
|
||||
return p1
|
||||
return None
|
||||
|
||||
# -L needs to contain more paths than libs linked with -l would require
|
||||
def get_ldpathflags(names, exclude = []):
|
||||
deps = get_modules_from_project_txt(names, 'pkg.requires.jw', 'build',
|
||||
|
|
@ -598,11 +604,18 @@ def cmd_requires_pkg(args_):
|
|||
parser = argparse.ArgumentParser(description='requires-pkg')
|
||||
parser.add_argument('module', nargs='*', help='Modules')
|
||||
parser.add_argument('--flavours', help='Dependency flavours', default='build')
|
||||
args=parser.parse_args(args_)
|
||||
parser.add_argument('--skip-excluded', action='store_true', default=False,
|
||||
help='Output empty prerequisite list if module is excluded')
|
||||
args = parser.parse_args(args_)
|
||||
modules = args.module
|
||||
flavours = args.flavours.split()
|
||||
debug("flavours = " + args.flavours)
|
||||
deps = get_modules_from_project_txt(args.module, 'pkg.requires.jw', flavours,
|
||||
deps = get_modules_from_project_txt(modules, 'pkg.requires.jw', flavours,
|
||||
scope = 2, add_self=True, names_only=True)
|
||||
if args.skip_excluded:
|
||||
for d in deps:
|
||||
if is_excluded_from_build(d) is not None:
|
||||
deps.remove(d)
|
||||
subsecs = os_cascade()
|
||||
debug("subsecs = ", subsecs)
|
||||
requires = []
|
||||
|
|
@ -700,7 +713,7 @@ def cmd_prereq(args_):
|
|||
parser = argparse.ArgumentParser(description='path')
|
||||
parser.add_argument('flavour', help='Flavour')
|
||||
parser.add_argument('module', nargs='*', help='Modules')
|
||||
args=parser.parse_args(args_)
|
||||
args = parser.parse_args(args_)
|
||||
deps = get_modules_from_project_txt(args.module, 'pkg.requires.jw',
|
||||
args.flavour, scope = 2, add_self=False, names_only=True)
|
||||
print(' '.join(deps))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue