mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
scripts/nsis.py: Run dependency check for each DLL file only once
Each DLL should only be checked once for dependencies, but several hundred (781 in my test) unneeded checks were done. Now the script is significantly faster (16 s in my build). Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20250111215244.1680931-1-sw@weilnetz.de> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250116160306.1709518-38-alex.bennee@linaro.org>
This commit is contained in:
parent
a4340e7c52
commit
b9eab5efc1
1 changed files with 5 additions and 5 deletions
|
@ -37,10 +37,10 @@ def find_deps(exe_or_dll, search_path, analyzed_deps):
|
|||
|
||||
analyzed_deps.add(dep)
|
||||
# locate the dll dependencies recursively
|
||||
rdeps = find_deps(dll, search_path, analyzed_deps)
|
||||
analyzed_deps, rdeps = find_deps(dll, search_path, analyzed_deps)
|
||||
deps.extend(rdeps)
|
||||
|
||||
return deps
|
||||
return analyzed_deps, deps
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="QEMU NSIS build helper.")
|
||||
|
@ -92,18 +92,18 @@ def main():
|
|||
dlldir = os.path.join(destdir + prefix, "dll")
|
||||
os.mkdir(dlldir)
|
||||
|
||||
analyzed_deps = set()
|
||||
for exe in glob.glob(os.path.join(destdir + prefix, "*.exe")):
|
||||
signcode(exe)
|
||||
|
||||
# find all dll dependencies
|
||||
deps = set(find_deps(exe, search_path, set()))
|
||||
analyzed_deps, deps = find_deps(exe, search_path, analyzed_deps)
|
||||
deps = set(deps)
|
||||
deps.remove(exe)
|
||||
|
||||
# copy all dlls to the DLLDIR
|
||||
for dep in deps:
|
||||
dllfile = os.path.join(dlldir, os.path.basename(dep))
|
||||
if (os.path.exists(dllfile)):
|
||||
continue
|
||||
print("Copying '%s' to '%s'" % (dep, dllfile))
|
||||
shutil.copy(dep, dllfile)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue