projects.py: Add --exclude support to ldflags

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-03-14 15:38:56 +00:00
commit db9cd2755f

View file

@ -209,29 +209,33 @@ def get_libname(names):
return ' '.join(reversed(vals))
# -L needs to contain more paths than libs linked with -l would require
def get_ldpathflags(names):
def get_ldpathflags(names, exclude = []):
deps = get_modules_from_project_txt(names, 'pkg.required.jw', 'build',
scope = 2, add_self=True, names_only=True)
r = ''
for m in deps:
if m in exclude:
continue
libname = get_libname([m])
if len(libname):
r = r + ' -L' + proj_dir(m) + '/lib'
print(r[1:])
def get_ldflags(names):
def get_ldflags(names, exclude = []):
#print(names)
deps = get_modules_from_project_txt(names, 'pkg.required.jw', 'build',
scope = 1, add_self=False, names_only=True)
#print(deps)
r = ''
for m in reversed(deps):
if m in exclude:
continue
libname = get_libname([m])
if len(libname):
#r = r + ' -L' + proj_dir(m) + '/lib -l' + libname
r = r + ' -l' + libname
if len(r):
ldpathflags = get_ldpathflags(names)
ldpathflags = get_ldpathflags(names, exclude)
if ldpathflags:
r = ldpathflags + ' ' + r
return r[1::]
@ -309,8 +313,9 @@ def cmd_libname(args_):
def cmd_ldflags(args_):
parser = argparse.ArgumentParser(description='ldlibpath')
parser.add_argument('module', nargs='*', help='Modules')
parser.add_argument('--exclude', action='append', help='Exclude Modules', default=[])
args=parser.parse_args(args_)
print(get_ldflags(args.module))
print(get_ldflags(args.module, args.exclude))
def cmd_cflags(args_):
parser = argparse.ArgumentParser(description='cflags')