diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 9f3f1169..bd83a26e 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -267,10 +267,26 @@ jobs: flutter config --enable-windows-desktop flutter build windows --dart-define-from-file=env.json --release --verbose - # NOTE: monero/wownero DLLs land in Release dir automatically via - # CMake's install(FILES ... RENAME ...) rules in windows/CMakeLists.txt - # — the staging step above puts them at the source paths CMake reads. - # No post-build copy needed. + # ---- Reconcile monero/wownero DLL naming for Dart FFI ---------------- + # windows/CMakeLists.txt's install(FILES ... RENAME ...) rules produce + # _libwallet2_api_c.dll, but package:monero's Dart FFI loader + # (mrcyjanek's package) opens lib_wallet2_api_c.dll — different + # filename layout, runtime error "Failed to load dynamic library". + # Create the lib-prefixed copies so both name conventions resolve. + - name: Mirror monero/wownero DLLs under lib-prefixed names + run: | + set -x -e + DST="build/windows/x64/runner/Release" + for coin in monero wownero; do + src="$DST/${coin}_libwallet2_api_c.dll" + dst="$DST/lib${coin}_wallet2_api_c.dll" + if [[ -f "$src" ]]; then + cp -v "$src" "$dst" + else + echo "WARN: $src not in Release dir — CMake install may have skipped it" + ls "$DST" | head -20 + fi + done # ---- Bundle MSVC runtime DLLs with the .exe -------------------------- # Standalone Windows builds need msvcp140.dll + vcruntime140.dll +