discord-rpc/examples/button-clicker/Assets/BuildHelper.cs
2017-12-01 14:41:20 -08:00

56 lines
No EOL
1.8 KiB
C#

using UnityEditor;
using System.Diagnostics;
using System.IO;
[InitializeOnLoad]
public class ScriptBatch
{
static ScriptBatch()
{
EnsureDLL();
}
public static bool FileExists(string filename)
{
return new FileInfo(filename).Exists;
}
public static void EnsureDLL()
{
UnityEngine.Debug.Log("Make sure Discord dll exists");
string dstDll32 = "Assets/Plugins/x86/discord-rpc.dll";
string dstDll64 = "Assets/Plugins/x86_64/discord-rpc.dll";
if (!FileExists(dstDll32) || !FileExists(dstDll64))
{
string srcDll32 = "../../builds/install/win64-dynamic/bin/discord-rpc.dll";
string srcDll64 = "../../builds/install/win64-dynamic/bin/discord-rpc.dll";
if (!FileExists(srcDll32) || !FileExists(srcDll64))
{
UnityEngine.Debug.Log("Try to run build script");
Process proc = new Process();
proc.StartInfo.FileName = "python";
proc.StartInfo.Arguments = "build.py";
proc.StartInfo.WorkingDirectory = "../..";
proc.Start();
proc.WaitForExit();
if (proc.ExitCode != 0)
{
UnityEngine.Debug.LogError("Build failed");
return;
}
}
// make sure the dirs exist
Directory.CreateDirectory("Assets/Plugins");
Directory.CreateDirectory("Assets/Plugins/x86");
Directory.CreateDirectory("Assets/Plugins/x86_64");
// Copy dlls
FileUtil.CopyFileOrDirectory("../../builds/install/win64-dynamic/bin/discord-rpc.dll", dstDll64);
FileUtil.CopyFileOrDirectory("../../builds/install/win32-dynamic/bin/discord-rpc.dll", dstDll32);
}
}
}