diff --git a/Cargo.lock b/Cargo.lock index ed1428ef..0e4b61c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3704,7 +3704,7 @@ dependencies = [ [[package]] name = "solidcraft" -version = "0.12.0" +version = "0.13.0" dependencies = [ "block2 0.6.2", "eframe", @@ -3733,7 +3733,7 @@ dependencies = [ [[package]] name = "solidcraft-cli" -version = "0.12.0" +version = "0.13.0" dependencies = [ "serde_json", "solidcraft-engine", @@ -3742,7 +3742,7 @@ dependencies = [ [[package]] name = "solidcraft-derive" -version = "0.12.0" +version = "0.13.0" dependencies = [ "proc-macro2", "quote", @@ -3751,7 +3751,7 @@ dependencies = [ [[package]] name = "solidcraft-doc" -version = "0.12.0" +version = "0.13.0" dependencies = [ "log", "serde", @@ -3768,7 +3768,7 @@ dependencies = [ [[package]] name = "solidcraft-engine" -version = "0.12.0" +version = "0.13.0" dependencies = [ "log", "serde", @@ -3784,7 +3784,7 @@ dependencies = [ [[package]] name = "solidcraft-geom" -version = "0.12.0" +version = "0.13.0" dependencies = [ "serde", "serde_json", @@ -3793,7 +3793,7 @@ dependencies = [ [[package]] name = "solidcraft-gpu" -version = "0.12.0" +version = "0.13.0" dependencies = [ "log", "naga", @@ -3806,7 +3806,7 @@ dependencies = [ [[package]] name = "solidcraft-io" -version = "0.12.0" +version = "0.13.0" dependencies = [ "quick-xml", "serde", @@ -3821,7 +3821,7 @@ dependencies = [ [[package]] name = "solidcraft-kernel" -version = "0.12.0" +version = "0.13.0" dependencies = [ "log", "rayon", @@ -3839,7 +3839,7 @@ dependencies = [ [[package]] name = "solidcraft-mcp" -version = "0.12.0" +version = "0.13.0" dependencies = [ "serde_json", "solidcraft-engine", @@ -3847,7 +3847,7 @@ dependencies = [ [[package]] name = "solidcraft-render" -version = "0.12.0" +version = "0.13.0" dependencies = [ "image", "moxcms", @@ -3860,7 +3860,7 @@ dependencies = [ [[package]] name = "solidcraft-sketch" -version = "0.12.0" +version = "0.13.0" dependencies = [ "serde", "serde_json", @@ -3871,7 +3871,7 @@ dependencies = [ [[package]] name = "solidcraft-ui-egui" -version = "0.12.0" +version = "0.13.0" dependencies = [ "egui", "egui-wgpu", @@ -3892,7 +3892,7 @@ dependencies = [ [[package]] name = "solidcraft-web" -version = "0.12.0" +version = "0.13.0" dependencies = [ "eframe", "egui", @@ -5381,7 +5381,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xtask" -version = "0.12.0" +version = "0.13.0" dependencies = [ "serde_json", "sha2", diff --git a/Cargo.toml b/Cargo.toml index c3af526a..a35256e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ members = ["crates/*", "apps/*", "xtask"] exclude = ["vendor"] [workspace.package] -version = "0.12.0" +version = "0.13.0" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95" diff --git a/apps/solidcraft/src/native_frame.rs b/apps/solidcraft/src/native_frame.rs index 9bac6d4e..d6fb5117 100644 --- a/apps/solidcraft/src/native_frame.rs +++ b/apps/solidcraft/src/native_frame.rs @@ -48,11 +48,13 @@ pub fn install(window: &impl HasWindowHandle) -> bool { // SAFETY: `hwnd` is the live window eframe just created on this thread; `frame_proc` has the // WNDPROC signature and stays valid for the life of the process. SetWindowLongPtrW returns // the previous procedure, which `frame_proc` calls for every other message. - let previous = unsafe { SetWindowLongPtrW(hwnd, GWLP_WNDPROC, frame_proc as *const () as isize) }; + let previous = unsafe { SetWindowLongPtrW(hwnd, GWLP_WNDPROC, frame_proc as *const () as isize as _) }; + // `as _`: on 32-bit Windows SetWindowLongPtrW is SetWindowLongW, which takes and + // returns i32. if previous == 0 { return false; } - PREVIOUS.store(previous, Ordering::SeqCst); + PREVIOUS.store(previous as _, Ordering::SeqCst); true } @@ -97,7 +99,7 @@ unsafe extern "system" fn frame_proc(hwnd: HWND, msg: u32, wparam: WPARAM, lpara // Hand the window back to winit's procedure for its last message. if prev.is_some() { // SAFETY: restores the procedure this window had before `install`. - unsafe { SetWindowLongPtrW(hwnd, GWLP_WNDPROC, PREVIOUS.load(Ordering::SeqCst)) }; + unsafe { SetWindowLongPtrW(hwnd, GWLP_WNDPROC, PREVIOUS.load(Ordering::SeqCst) as _) }; } call_previous() } diff --git a/packaging/macos/package.sh b/packaging/macos/package.sh index 06881f4e..08112bb9 100755 --- a/packaging/macos/package.sh +++ b/packaging/macos/package.sh @@ -73,7 +73,9 @@ copy_docs "$APP/Contents/Resources/Licenses" sed -e "s/@VERSION@/$VERSION/g" -e "s/@SHORT_VERSION@/$SHORT_VERSION/g" "$ROOT/assets/platforms/macos/Info.plist.in" >"$APP/Contents/Info.plist" plutil -lint "$APP/Contents/Info.plist" printf 'APPL????' >"$APP/Contents/PkgInfo" -# Ad-hoc signature over the whole bundle (Apple silicon refuses unsigned code). +# Ad-hoc signature over the whole bundle (Apple silicon refuses unsigned code). Nested code is +# signed first: the bundle signature refuses an unsigned helper in Contents/MacOS. +codesign --force --sign - --timestamp=none --identifier "$MACOS_BUNDLE_ID-cli" "$APP/Contents/MacOS/solidcraft-cli" codesign --force --sign - --timestamp=none "$APP" codesign --verify --strict --deep --verbose=2 "$APP" test -x "$APP/Contents/MacOS/solidcraft-cli" || { echo "solidcraft-cli is missing from $APP" >&2; exit 1; }