mirror of
https://github.com/Facepunch/Facepunch.Steamworks.git
synced 2025-01-12 22:58:01 +03:00
Try to dynamically determine the OS
This commit is contained in:
parent
10e228f765
commit
e68dc15454
@ -1,45 +1,44 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace Steamworks
|
namespace Steamworks
|
||||||
{
|
{
|
||||||
public static class Config
|
public static class Config
|
||||||
{
|
{
|
||||||
public static OsType Os { get; set; }
|
static OsType _os;
|
||||||
|
public static OsType Os
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if ( _os == OsType.None )
|
||||||
|
{
|
||||||
|
string windir = Environment.GetEnvironmentVariable( "windir" );
|
||||||
|
if ( !string.IsNullOrEmpty( windir ) && windir.Contains( @"\" ) && Directory.Exists( windir ) )
|
||||||
|
{
|
||||||
|
_os = OsType.Windows;
|
||||||
|
}
|
||||||
|
else if ( File.Exists( @"/System/Library/CoreServices/SystemVersion.plist" ) )
|
||||||
|
{
|
||||||
|
_os = OsType.MacOs;
|
||||||
|
}
|
||||||
|
else if ( File.Exists( @"/proc/sys/kernel/ostype" ) )
|
||||||
|
{
|
||||||
|
_os = OsType.Linux;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new System.Exception( "Couldn't determine operating system" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _os;
|
||||||
|
}
|
||||||
|
|
||||||
|
set => _os = value;
|
||||||
|
}
|
||||||
|
|
||||||
public static bool PackSmall => Os != OsType.Windows;
|
public static bool PackSmall => Os != OsType.Windows;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Should be called before creating any interfaces, to configure Steam for Unity.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="platform">Please pass in Application.platform.ToString()</param>
|
|
||||||
public static void ForUnity( string platform )
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// Windows Config
|
|
||||||
//
|
|
||||||
if ( platform == "WindowsEditor" || platform == "WindowsPlayer" )
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// 32bit windows unity uses a stdcall
|
|
||||||
//
|
|
||||||
if (IntPtr.Size == 4) UseThisCall = false;
|
|
||||||
|
|
||||||
Os = OsType.Windows;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( platform == "OSXEditor" || platform == "OSXPlayer" || platform == "OSXDashboardPlayer" )
|
|
||||||
{
|
|
||||||
Os = OsType.macOS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( platform == "LinuxPlayer" || platform == "LinuxEditor" )
|
|
||||||
{
|
|
||||||
Os = OsType.Linux;
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.WriteLine( "Steamworks Unity: " + platform );
|
|
||||||
Console.WriteLine( "Steamworks Os: " + Os );
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Some platforms allow/need CallingConvention.ThisCall. If you're crashing with argument null
|
/// Some platforms allow/need CallingConvention.ThisCall. If you're crashing with argument null
|
||||||
/// errors on certain platforms, try flipping this to true.
|
/// errors on certain platforms, try flipping this to true.
|
||||||
@ -54,8 +53,9 @@ namespace Steamworks
|
|||||||
|
|
||||||
public enum OsType
|
public enum OsType
|
||||||
{
|
{
|
||||||
|
None,
|
||||||
Windows,
|
Windows,
|
||||||
Linux,
|
Linux,
|
||||||
macOS,
|
MacOs,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user