[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 37/37] scripts/nsis.py: Run dependency check for each DLL file onl
From: |
Alex Bennée |
Subject: |
[PULL 37/37] scripts/nsis.py: Run dependency check for each DLL file only once |
Date: |
Fri, 17 Jan 2025 13:42:56 +0000 |
From: Stefan Weil <sw@weilnetz.de>
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>
diff --git a/scripts/nsis.py b/scripts/nsis.py
index 03ed7608a2..af4e064819 100644
--- a/scripts/nsis.py
+++ b/scripts/nsis.py
@@ -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)
--
2.39.5
- [PULL 27/37] editorconfig: update for perl scripts, (continued)
- [PULL 27/37] editorconfig: update for perl scripts, Alex Bennée, 2025/01/17
- [PULL 06/37] semihosting/console: Avoid including 'cpu.h', Alex Bennée, 2025/01/17
- [PULL 09/37] system: squash usb_parse into a single function, Alex Bennée, 2025/01/17
- [PULL 22/37] accel/tcg: also suppress asynchronous IRQs for cpu_io_recompile, Alex Bennée, 2025/01/17
- [PULL 28/37] tests/qtest: fix some copy and paste errors in kdoc, Alex Bennée, 2025/01/17
- [PULL 33/37] docs/devel: add b4 for patch retrieval, Alex Bennée, 2025/01/17
- [PULL 35/37] docs/devel: add a codebase section, Alex Bennée, 2025/01/17
- [PULL 26/37] plugins: fix kdoc annotation, Alex Bennée, 2025/01/17
- [PULL 34/37] docs/devel: add information on how to setup build environments, Alex Bennée, 2025/01/17
- [PULL 19/37] contrib/plugins/hwprofile: fix 32-bit build, Alex Bennée, 2025/01/17
- [PULL 37/37] scripts/nsis.py: Run dependency check for each DLL file only once,
Alex Bennée <=
- [PULL 20/37] contrib/plugins/hotpages: fix 32-bit build, Alex Bennée, 2025/01/17
- [PULL 31/37] docs/sphinx: include kernel-doc script as a dependency, Alex Bennée, 2025/01/17
- [PULL 25/37] plugins: enable linking with clang/lld, Alex Bennée, 2025/01/17
- [PULL 32/37] docs/devel: add git-publish for patch submitting, Alex Bennée, 2025/01/17
- [PULL 24/37] docs/devel/style: add a section about bitfield, and disallow them for packed structures, Alex Bennée, 2025/01/17
- Re: [PULL 00/37] maintainer updates for gdb, plugins, documentation and windows builds, Stefan Hajnoczi, 2025/01/17