77 lines
2.7 KiB
C#
77 lines
2.7 KiB
C#
// 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
|