Desktop builds with their own profile: thin LTO and 16 codegen units, compiled on all cores

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-07 22:49:28 +01:00
1 parent 4175ca7f97
commit 8c33051913
2 files changed
+14 -6

No files matched your search

+6 -6
View File
@@ -149,8 +149,8 @@ def build_linux(ver):
# libasound is only linked by name: its own glibc references are the user's system's business
env["RUSTFLAGS"] = (env.get("RUSTFLAGS", "") + " -C link-arg=-Wl,--allow-shlib-undefined").strip()
log(f"Linux build (glibc {GLIBC})")
run([cargo(), "zigbuild", "--release", "--target", f"x86_64-unknown-linux-gnu.{GLIBC}"], env=env)
binary = ROOT / "target" / "x86_64-unknown-linux-gnu" / "release" / "dungeoncraft"
run([cargo(), "zigbuild", "--profile", "desktop", "--target", f"x86_64-unknown-linux-gnu.{GLIBC}"], env=env)
binary = ROOT / "target" / "x86_64-unknown-linux-gnu" / "desktop" / "dungeoncraft"
appdir = ROOT / "target" / "AppDir"
shutil.rmtree(appdir, ignore_errors=True)
@@ -175,9 +175,9 @@ def build_windows(ver):
need_target("x86_64-pc-windows-gnu")
env = zig_env()
log("Windows build")
run([cargo(), "zigbuild", "--release", "--target", "x86_64-pc-windows-gnu"], env=env)
run([cargo(), "zigbuild", "--profile", "desktop", "--target", "x86_64-pc-windows-gnu"], env=env)
out = DIST / f"DungeonCraft-{ver}-windows-x64.exe"
shutil.copy2(ROOT / "target" / "x86_64-pc-windows-gnu" / "release" / "dungeoncraft.exe", out)
shutil.copy2(ROOT / "target" / "x86_64-pc-windows-gnu" / "desktop" / "dungeoncraft.exe", out)
return out
@@ -193,13 +193,13 @@ def build_macos(ver):
env["MACOSX_DEPLOYMENT_TARGET"] = "11.0"
for t in arches:
log(f"macOS build {t}")
run([cargo(), "build", "--release", "--target", t], env=env)
run([cargo(), "build", "--profile", "desktop", "--target", t], env=env)
app = ROOT / "target" / "DungeonCraft.app"
shutil.rmtree(app, ignore_errors=True)
(app / "Contents" / "MacOS").mkdir(parents=True)
(app / "Contents" / "Resources").mkdir(parents=True)
run(["lipo", "-create", "-output", app / "Contents" / "MacOS" / "DungeonCraft"] + [ROOT / "target" / t / "release" / "dungeoncraft" for t in arches])
run(["lipo", "-create", "-output", app / "Contents" / "MacOS" / "DungeonCraft"] + [ROOT / "target" / t / "desktop" / "dungeoncraft" for t in arches])
short = ver.lstrip("v").replace("-", ".")
(app / "Contents" / "Info.plist").write_text(INFO_PLIST.format(short=short, version=ver), encoding="utf-8")