From 95894168f319ca53484ea58c84c92e3321521b95 Mon Sep 17 00:00:00 2001 From: jess Date: Thu, 23 Apr 2026 06:47:35 -0700 Subject: [PATCH] wings --- .gitignore | 5 +++ README.md | 18 +++++++++-- build.bat | 3 ++ shell/windows/LayersShell/LayersShell.csproj | 32 ++++++++++++++++++-- 4 files changed, 53 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 6d429fd..64221ed 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,8 @@ # Generated at build time from plugin.json.in by each platform's build script. /plugin.json + +# WinUI 3 shell generated artefacts. +/shell/windows/LayersShell/Assets/app.ico +/shell/windows/LayersShell/bin/ +/shell/windows/LayersShell/obj/ diff --git a/README.md b/README.md index d258469..db039fb 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ pacman -S --needed \ mingw-w64-clang-aarch64-toolchain \ mingw-w64-clang-aarch64-cmake \ mingw-w64-clang-aarch64-ninja \ + mingw-w64-clang-aarch64-librsvg \ git # x86_64 (Intel / AMD) @@ -57,6 +58,7 @@ pacman -S --needed \ mingw-w64-ucrt-x86_64-toolchain \ mingw-w64-ucrt-x86_64-cmake \ mingw-w64-ucrt-x86_64-ninja \ + mingw-w64-ucrt-x86_64-librsvg \ git ``` @@ -127,8 +129,20 @@ Runtime requirement on the target machine: **.NET 8 Desktop Runtime**. `winget i Microsoft.DotNet.DesktopRuntime.8` — the installer's ~100 MB and common on modern Windows boxes. -Optional: `winget install GNOME.librsvg` gives you `rsvg-convert` for regenerating icons -from `resources/Layers.svg`. Not required to build. +For a polished build you'll also want ImageMagick — it composes the Windows `.ico` +from the SVG, called from an MSBuild `` inside `LayersShell.csproj` so it runs +as part of `dotnet publish`. `rsvg-convert` was already pulled in via the MSYS2 +`…-librsvg` package. + +```powershell +winget install ImageMagick.ImageMagick +``` + +Neither tool is strictly required — the Target's `ContinueOnError="true"` and the +ApplicationIcon `Condition="Exists(...)"` let the build skip icon baking and fall +through to the default .NET exe icon if either is missing. If you don't want MSYS2 +and need a standalone `rsvg-convert` (x86_64 only), grab a release from + and drop it on PATH. ### Linux — Debian / Ubuntu / Pop!_OS (apt) diff --git a/build.bat b/build.bat index e437d1e..34e6346 100644 --- a/build.bat +++ b/build.bat @@ -47,6 +47,9 @@ if %ERRORLEVEL% equ 0 ( ) ) +rem The Windows exe icon is generated by an MSBuild Target inside LayersShell.csproj +rem (matches Acord's build.rs pattern). No action needed here. + rem nng 1.x triggers clang 16+ hard errors on type-incompatibilities; downgrade to warnings. set "NNG_RELAX=-Wno-error=incompatible-pointer-types -Wno-error=incompatible-function-pointer-types -Wno-incompatible-pointer-types -Wno-incompatible-function-pointer-types" if defined CFLAGS ( diff --git a/shell/windows/LayersShell/LayersShell.csproj b/shell/windows/LayersShell/LayersShell.csproj index c0df962..71ff6df 100644 --- a/shell/windows/LayersShell/LayersShell.csproj +++ b/shell/windows/LayersShell/LayersShell.csproj @@ -14,13 +14,39 @@ latest true Layers - Assets/app.ico + + Assets\app.ico + + $(MSBuildProjectDirectory)\..\..\..\resources\Layers.svg + $(MSBuildProjectDirectory)\Assets\app.ico + $(IntermediateOutputPath)icon_tmp + on https://www.nuget.org/packages/Microsoft.WindowsAppSDK. --> + + + + + + + + + + + + + +