Update linker interceptor

This commit is contained in:
Andrea Fioraldi 2023-07-24 16:34:25 +02:00
parent 2d5fcb7b66
commit e5cd808701

View File

@ -11,6 +11,7 @@ args = sys.argv[1:]
out_args = [] out_args = []
shareds = [] shareds = []
search = []
prev_o = False prev_o = False
for i in range(len(args)): for i in range(len(args)):
if prev_o: if prev_o:
@ -19,16 +20,20 @@ for i in range(len(args)):
elif args[i] in FILTER: elif args[i] in FILTER:
continue continue
elif args[i].endswith('.so') and not args[i].startswith('-'): elif args[i].endswith('.so') and not args[i].startswith('-'):
shareds.append(args[i]) name = os.path.basename(args[i])[3:-3] # remove prefix and suffix
shareds.append(name)
continue continue
elif args[i] == '-o': elif args[i] == '-o':
prev_o = True prev_o = True
continue continue
elif args[i].startswith('-L') or args[i].startswith('-l'): elif args[i].startswith('-l'):
shareds.append(args[i]) shareds.append(args[i][2:])
continue
elif args[i].startswith('-L'):
search.append(args[i][2:])
out_args.append(args[i]) out_args.append(args[i])
with open(OUT, 'w') as f: with open(OUT, 'w') as f:
json.dump({'cmd': out_args, 'so': shareds}, f, indent=2) json.dump({'cmd': out_args, 'libs': shareds, 'search': search}, f, indent=2)
subprocess.run([CXX] + args) subprocess.run([CXX] + args)