cd: bundle all runtime dylibs on Windows/macOS; version from workspace
Windows: tooling/package/bundle-dylibs-windows.sh collects the MSYS2 runtime DLLs (libstdc++, libgcc, OpenColorIO, ...) with ntldd -R, iterated to a fixpoint over freshly copied DLLs; a packager resources glob places them next to the executables in the NSIS installer. macOS: tooling/package/bundle-dylibs-macos.sh copies every non-system dylib otool reports into Contents/Frameworks, rewrites the install names to @executable_path/../Frameworks to a fixpoint, and ad-hoc re-signs every modified Mach-O (rewriting invalidates the seal). The CD package version no longer comes from the git tag: the root Cargo.toml gains [workspace.package] version = "0.5.0", the oak package inherits it (version.workspace = true — which cargo-packager also picks up), and the Linux container packaging parses that field.
This commit is contained in:
+14
-2
@@ -40,6 +40,11 @@ exclude = ["gpui", "crates/oakengine.bk"]
|
||||
default-members = [".", "crates/oak-cli", "crates/oak-worker"]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
# Single source of truth for the release version: the root `oak` package
|
||||
# inherits it, and with it cargo-packager and the CD packaging scripts.
|
||||
version = "0.5.0"
|
||||
|
||||
[profile.release]
|
||||
# FFI discipline: every module crate exports an `extern "C"` ABI whose
|
||||
# entry points must never unwind/abort across the boundary; panics are
|
||||
@@ -51,7 +56,7 @@ panic = "unwind"
|
||||
|
||||
[package]
|
||||
name = "oak"
|
||||
version = "0.5.0"
|
||||
version.workspace = true
|
||||
edition = "2021"
|
||||
description = "Oak Video Editor"
|
||||
license = "GPL-3.0-or-later"
|
||||
@@ -156,7 +161,14 @@ category = "Video"
|
||||
icons = ["icons/icon.png"]
|
||||
# The UI string tables (language packs); users can drop extra
|
||||
# <lang>.yaml files into the installed i18n directory.
|
||||
resources = ["assets/i18n"]
|
||||
# The Windows DLL staging dir is filled by
|
||||
# tooling/package/bundle-dylibs-windows.sh before `cargo packager` runs
|
||||
# (NSIS/WiX place resources next to the executable, which is exactly
|
||||
# where Windows resolves DLLs from). Empty locally = no bundled DLLs.
|
||||
resources = [
|
||||
"assets/i18n",
|
||||
{ src = "target/pkg/win-dlls/*.dll", target = "." },
|
||||
]
|
||||
binaries = [
|
||||
{ path = "oak-editor", main = true },
|
||||
{ path = "oak-cli", main = false },
|
||||
|
||||
Reference in New Issue
Block a user