Build kitty-tool as a universal binary for freeze builds on macOS

This commit is contained in:
Kovid Goyal 2022-08-16 23:55:10 +05:30
parent e9e7b97c48
commit e356af2dc4
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -907,12 +907,30 @@ def build_kitty_tool(args: Options, launcher_dir: str) -> None:
ld_flags.append('-s') ld_flags.append('-s')
ld_flags.append('-w') ld_flags.append('-w')
cmd += ['-ldflags', ' '.join(ld_flags)] cmd += ['-ldflags', ' '.join(ld_flags)]
cmd += ['-o', os.path.join(launcher_dir, 'kitty-tool'), os.path.abspath('tools/cmd')] dest = os.path.join(launcher_dir, 'kitty-tool')
if args.verbose: src = os.path.abspath('tools/cmd')
print(shlex.join(cmd))
cp = subprocess.run(cmd) def run_one(dest: str, **env: str) -> None:
if cp.returncode != 0: c = cmd + ['-o', dest, src]
raise SystemExit(cp.returncode) if args.verbose:
print(shlex.join(c))
e = os.environ.copy()
e.update(env)
cp = subprocess.run(c, env=e)
if cp.returncode != 0:
raise SystemExit(cp.returncode)
if args.build_universal_binary:
outs = []
for arch in ('amd64', 'arm64'):
d = dest + f'-{arch}'
run_one(d, GOOS='darwin', GOARCH=arch)
outs.append(d)
subprocess.check_call(['lipo', '-create', '-output', dest] + outs)
for x in outs:
os.remove(x)
else:
run_one(dest)
def build_launcher(args: Options, launcher_dir: str = '.', bundle_type: str = 'source') -> None: def build_launcher(args: Options, launcher_dir: str = '.', bundle_type: str = 'source') -> None: