mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-07-24 14:49:48 -06: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:
@ -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();
|
||||
|
Reference in New Issue
Block a user