Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building Electron version on macOS? (SQLite.Interop.dll.dylib issues) #1117

Open
i0ntempest opened this issue Feb 2, 2025 · 8 comments
Open
Labels
done Completed and included in next release

Comments

@i0ntempest
Copy link

I'm glad that we now have Electron frontend, which means VRCX is one big step closer to cross-platform.
Now, I was able to build VRCX-Electron.csproject and rpm run start-electron, but after starting the app will complain about missing SQLite.Interop.dll.dylib. After a bit searching I found some old threads saying that this dll is particularly problematic on arm64 macOS.
Is there a way to get it working on arm64 macOS? I no longer have access to x86_64 Macs, maybe someone can try there too?

@Myrkie
Copy link
Contributor

Myrkie commented Feb 2, 2025

As said here this is still the case #969 (comment) the issue of cef may be solved but that doesn't solve the issues of our other libraries such as with sqlite, unfortunately they do not offer binaries for mac, they only offer minimal tools to modify existing sqlite databases and only for the x86 platform as seen here on their downloads page. there is also still the issue of none of active contributors or maintainers own the hardware.

Image

@Natsumi-sama
Copy link
Member

Natsumi-sama commented Feb 3, 2025

I can look into including x64 System.Data.SQLite and SQLite.Interop for macOS x64 then ran with Rosetta, no idea if it'll work though and it will still need to be built from source, or you could try fetching and replacing those DLLs yourself.
Maybe we can look at using Microsoft.Data.Sqlite instead.

@i0ntempest
Copy link
Author

I can look into including x64 System.Data.SQLite and SQLite.Interop for macOS x64 then ran with Rosetta, no idea if it'll work though and it will still need to be built from source, or you could try fetching and replacing those DLLs yourself. Maybe we can look at using Microsoft.Data.Sqlite instead.

If that works that would be great. Electron ran under Rosetta is gonna be very slow because of how nodejs works but that seems to be the only way for now until we have all libraries in arm64.
I did try putting an interop DLL in place but the program complained about missing entry points. The DLL files were from https://github.com/rhubarb-geek-nz/SQLite.Interop/releases iirc.

@Natsumi-sama
Copy link
Member

You need to replace both DLLs.

@Robotex
Copy link

Robotex commented Feb 3, 2025

You'll also probably encounter issues with the function isDotNetInstalled, I had to workaround past it locally when I built the app

@i0ntempest
Copy link
Author

You'll also probably encounter issues with the function isDotNetInstalled, I had to workaround past it locally when I built the app

yup I got the warning too, works in terminal but not when starting the app.

@Robotex
Copy link

Robotex commented Feb 4, 2025

Also you cannot mix x86_64 with arm64, you'll have either to run VRCX under Rosetta or build the sqlite library from source

@Natsumi-sama
Copy link
Member

I've added MacOS SQLite DLLs and removed the .NET install check when running under MacOS.

@Natsumi-sama Natsumi-sama added the done Completed and included in next release label Feb 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
done Completed and included in next release
Projects
None yet
Development

No branches or pull requests

4 participants