mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 12:07:31 +00:00 
			
		
		
		
	 933c8fe781
			
		
	
	
		933c8fe781
		
	
	
	
	
		
			
			`make installer` with a DLL directory was broken. Signed-off-by: Stefan Weil <sw@weilnetz.de> Message-Id: <20201117190640.390359-1-sw@weilnetz.de> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| #
 | |
| # Copyright (C) 2020 Red Hat, Inc.
 | |
| #
 | |
| # SPDX-License-Identifier: GPL-2.0-or-later
 | |
| 
 | |
| import argparse
 | |
| import glob
 | |
| import os
 | |
| import shutil
 | |
| import subprocess
 | |
| import tempfile
 | |
| 
 | |
| 
 | |
| def signcode(path):
 | |
|     cmd = os.environ.get("SIGNCODE")
 | |
|     if not cmd:
 | |
|         return
 | |
|     subprocess.run([cmd, path])
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(description="QEMU NSIS build helper.")
 | |
|     parser.add_argument("outfile")
 | |
|     parser.add_argument("prefix")
 | |
|     parser.add_argument("srcdir")
 | |
|     parser.add_argument("cpu")
 | |
|     parser.add_argument("nsisargs", nargs="*")
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     destdir = tempfile.mkdtemp()
 | |
|     try:
 | |
|         subprocess.run(["make", "install", "DESTDIR=" + destdir + os.path.sep])
 | |
|         with open(
 | |
|             os.path.join(destdir + args.prefix, "system-emulations.nsh"), "w"
 | |
|         ) as nsh:
 | |
|             for exe in glob.glob(
 | |
|                 os.path.join(destdir + args.prefix, "qemu-system-*.exe")
 | |
|             ):
 | |
|                 exe = os.path.basename(exe)
 | |
|                 arch = exe[12:-4]
 | |
|                 nsh.write(
 | |
|                     """
 | |
|                 Section "{0}" Section_{0}
 | |
|                 SetOutPath "$INSTDIR"
 | |
|                 File "${{BINDIR}}\\{1}"
 | |
|                 SectionEnd
 | |
|                 """.format(
 | |
|                         arch, exe
 | |
|                     )
 | |
|                 )
 | |
| 
 | |
|         for exe in glob.glob(os.path.join(destdir + args.prefix, "*.exe")):
 | |
|             signcode(exe)
 | |
| 
 | |
|         makensis = [
 | |
|             "makensis",
 | |
|             "-V2",
 | |
|             "-NOCD",
 | |
|             "-DSRCDIR=" + args.srcdir,
 | |
|             "-DBINDIR=" + destdir + args.prefix,
 | |
|         ]
 | |
|         dlldir = "w32"
 | |
|         if args.cpu == "x86_64":
 | |
|             dlldir = "w64"
 | |
|             makensis += ["-DW64"]
 | |
|         if os.path.exists(os.path.join(args.srcdir, "dll")):
 | |
|             makensis += ["-DDLLDIR={0}/dll/{1}".format(args.srcdir, dlldir)]
 | |
| 
 | |
|         makensis += ["-DOUTFILE=" + args.outfile] + args.nsisargs
 | |
|         subprocess.run(makensis)
 | |
|         signcode(args.outfile)
 | |
|     finally:
 | |
|         shutil.rmtree(destdir)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 |