diff --git a/scripts/projects.py b/scripts/projects.py index 423c8d52..5771b37d 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -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')