mirror of
https://git.743378673.xyz/MeloNX/MeloNX.git
synced 2025-06-28 03:16:23 +02:00
Fix Fedora support (#3815)
For some reasons, my fresh installation of Fedora 36 (KDE) doesn't have a symlink for libX11.so. This commit fixes this by trying to import the library with its major version or fallback to the normal way.
This commit is contained in:
parent
2c9ab5e45f
commit
5d73a9f5fc
3 changed files with 31 additions and 3 deletions
|
@ -29,7 +29,11 @@ namespace Ryujinx
|
|||
|
||||
public static string ConfigurationPath { get; set; }
|
||||
|
||||
[DllImport("libX11")]
|
||||
public static string CommandLineProfile { get; set; }
|
||||
|
||||
private const string X11LibraryName = "libX11";
|
||||
|
||||
[DllImport(X11LibraryName)]
|
||||
private extern static int XInitThreads();
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
|
@ -37,6 +41,30 @@ namespace Ryujinx
|
|||
|
||||
private const uint MB_ICONWARNING = 0x30;
|
||||
|
||||
static Program()
|
||||
{
|
||||
if (OperatingSystem.IsLinux())
|
||||
{
|
||||
NativeLibrary.SetDllImportResolver(typeof(Program).Assembly, (name, assembly, path) =>
|
||||
{
|
||||
if (name != X11LibraryName)
|
||||
{
|
||||
return IntPtr.Zero;
|
||||
}
|
||||
|
||||
if (!NativeLibrary.TryLoad("libX11.so.6", assembly, path, out IntPtr result))
|
||||
{
|
||||
if (!NativeLibrary.TryLoad("libX11.so", assembly, path, out result))
|
||||
{
|
||||
return IntPtr.Zero;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Version = ReleaseInformations.GetVersion();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue