diff --git a/scripts/projects.py b/scripts/projects.py index c297827c..9870d86e 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -153,6 +153,17 @@ def get_libname(names): vals.remove('none') return ' '.join(reversed(vals)) +# -L needs to contain more paths than libs linked with -l would require +def get_ldpathflags(names): + deps = get_modules_from_project_txt(names, 'pkg.required', 'run', + scope = 2, add_self=True, names_only=True) + r = '' + for m in deps: + libname = get_libname([m]) + if len(libname): + r = r + ' -L' + proj_dir(m) + '/lib' + print(r[1:]) + def get_ldflags(names): #print(names) deps = get_modules_from_project_txt(names, 'pkg.required', 'build', @@ -162,8 +173,12 @@ def get_ldflags(names): for m in reversed(deps): libname = get_libname([m]) if len(libname): - r = r + ' -L' + proj_dir(m) + '/lib -l' + libname + #r = r + ' -L' + proj_dir(m) + '/lib -l' + libname + r = r + ' -l' + libname if len(r): + ldpathflags = get_ldpathflags(names) + if ldpathflags: + r = ldpathflags + ' ' + r return r[1::] return ''