StationObscurum/Assets/com.rlabrecque.steamworks.net/Editor/RedistCopy.cs

77 lines
2.7 KiB
C#
Raw Normal View History

2023-11-13 03:08:23 +01:00
// This file is provided under The MIT License as part of Steamworks.NET.
// Copyright (c) 2013-2022 Riley Labrecque
// Please see the included LICENSE.txt for additional information.
#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX)
#define DISABLESTEAMWORKS
#endif
#if !DISABLESTEAMWORKS
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using System.IO;
using Steamworks;
public class RedistCopy {
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) {
// We only want to do this on Steam supported platforms.
if ((target != BuildTarget.StandaloneWindows) && (target != BuildTarget.StandaloneWindows64) && (target != BuildTarget.StandaloneLinux64)) {
return;
}
CopyDebugInfo(target, pathToBuiltProject);
DeleteOldSteamApiDlls(target, pathToBuiltProject);
}
static void CopyDebugInfo(BuildTarget target, string pathToBuiltProject) {
string baseDir = Path.Combine(Path.GetDirectoryName(pathToBuiltProject), Path.GetFileNameWithoutExtension(pathToBuiltProject) + "_Data");
string pluginsDir = Path.Combine(baseDir, "Plugins");
// Create if it doesn't exist yet
Directory.CreateDirectory(pluginsDir);
string[] DebugInfo = {
"Steamworks.NET created by Riley Labrecque",
"http://steamworks.github.io",
"",
"Steamworks.NET Version: " + Steamworks.Version.SteamworksNETVersion,
"Steamworks SDK Version: " + Steamworks.Version.SteamworksSDKVersion,
"Steam API DLL Version: " + Steamworks.Version.SteamAPIDLLVersion,
"Steam API DLL Size: " + Steamworks.Version.SteamAPIDLLSize,
"Steam API64 DLL Size: " + Steamworks.Version.SteamAPI64DLLSize,
""
};
File.WriteAllLines(Path.Combine(pluginsDir, "Steamworks.NET.txt"), DebugInfo);
}
static void DeleteOldSteamApiDlls(BuildTarget target, string pathToBuiltProject) {
string strDllPath = Path.Combine(pathToBuiltProject, "steam_api.dll");
if (File.Exists(strDllPath)) {
try {
File.Delete(strDllPath);
}
catch (System.Exception e) {
Debug.LogWarning($"[Steamworks.NET] Attempted to delete an old copy of 'steam_api.dll' in the following location: '{strDllPath}', but could not due to the following exception:");
Debug.LogException(e);
}
}
string strDll64Path = Path.Combine(pathToBuiltProject, "steam_api64.dll");
if (File.Exists(strDll64Path)) {
try {
File.Delete(strDll64Path);
}
catch (System.Exception e) {
Debug.LogWarning($"[Steamworks.NET] Attempted to delete an old copy of 'steam_api64.dll' in the following location: '{strDll64Path}', but could not due to the following exception:");
Debug.LogException(e);
}
}
}
}
#endif // !DISABLESTEAMWORKS