|
@@ -72,8 +72,15 @@ Task("Build")
|
|
Configuration = "Release",
|
|
Configuration = "Release",
|
|
Restore = true
|
|
Restore = true
|
|
};
|
|
};
|
|
- buildSettings.Properties["TargetFrameworks"] = new []{ "net35" };
|
|
|
|
- MSBuild("./BepInEx.sln", buildSettings);
|
|
|
|
|
|
+
|
|
|
|
+ //buildSettings.Properties["TargetFrameworks"] = new []{ "net35" };
|
|
|
|
+ MSBuild("./BepInEx.Unity/BepInEx.Unity.csproj", buildSettings);
|
|
|
|
+
|
|
|
|
+ //buildSettings.Properties["TargetFrameworks"] = new []{ "net452" };
|
|
|
|
+ MSBuild("./BepInEx.NetLauncher/BepInEx.NetLauncher.csproj", buildSettings);
|
|
|
|
+
|
|
|
|
+ //buildSettings.Properties["TargetFrameworks"] = new []{ "net472" };
|
|
|
|
+ MSBuild("./BepInEx.IL2CPP/BepInEx.IL2CPP.csproj", buildSettings);
|
|
})
|
|
})
|
|
.Finally(() =>
|
|
.Finally(() =>
|
|
{
|
|
{
|
|
@@ -85,9 +92,11 @@ Task("Build")
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
-const string DOORSTOP_VER = "2.12.1.0";
|
|
|
|
|
|
+const string DOORSTOP_VER_WIN = "3.0.2.2";
|
|
|
|
+const string DOORSTOP_VER_UNIX = "1.3.0.0";
|
|
|
|
+const string MONO_VER = "2020.11.08";
|
|
const string DOORSTOP_DLL = "winhttp.dll";
|
|
const string DOORSTOP_DLL = "winhttp.dll";
|
|
-Task("DownloadDoorstop")
|
|
|
|
|
|
+Task("DownloadDependencies")
|
|
.Does(() =>
|
|
.Does(() =>
|
|
{
|
|
{
|
|
Information("Downloading Doorstop");
|
|
Information("Downloading Doorstop");
|
|
@@ -95,27 +104,51 @@ Task("DownloadDoorstop")
|
|
var doorstopPath = Directory("./bin/doorstop");
|
|
var doorstopPath = Directory("./bin/doorstop");
|
|
var doorstopX64Path = doorstopPath + File("doorstop_x64.zip");
|
|
var doorstopX64Path = doorstopPath + File("doorstop_x64.zip");
|
|
var doorstopX86Path = doorstopPath + File("doorstop_x86.zip");
|
|
var doorstopX86Path = doorstopPath + File("doorstop_x86.zip");
|
|
|
|
+ var doorstopLinuxPath = doorstopPath + File("doorstop_linux.zip");
|
|
|
|
+ var doorstopMacPath = doorstopPath + File("doorstop_macos.zip");
|
|
CreateDirectory(doorstopPath);
|
|
CreateDirectory(doorstopPath);
|
|
|
|
|
|
- DownloadFile($"https://github.com/NeighTools/UnityDoorstop/releases/download/v{DOORSTOP_VER}/Doorstop_x64_{DOORSTOP_VER}.zip", doorstopX64Path);
|
|
|
|
- DownloadFile($"https://github.com/NeighTools/UnityDoorstop/releases/download/v{DOORSTOP_VER}/Doorstop_x86_{DOORSTOP_VER}.zip", doorstopX86Path);
|
|
|
|
|
|
+ DownloadFile($"https://github.com/NeighTools/UnityDoorstop/releases/download/v{DOORSTOP_VER_WIN}/Doorstop_x64_{DOORSTOP_VER_WIN}.zip", doorstopX64Path);
|
|
|
|
+ DownloadFile($"https://github.com/NeighTools/UnityDoorstop/releases/download/v{DOORSTOP_VER_WIN}/Doorstop_x86_{DOORSTOP_VER_WIN}.zip", doorstopX86Path);
|
|
|
|
+
|
|
|
|
+ DownloadFile($"https://github.com/NeighTools/UnityDoorstop.Unix/releases/download/v{DOORSTOP_VER_UNIX}/doorstop_v{DOORSTOP_VER_UNIX}_linux.zip", doorstopLinuxPath);
|
|
|
|
+ DownloadFile($"https://github.com/NeighTools/UnityDoorstop.Unix/releases/download/v{DOORSTOP_VER_UNIX}/doorstop_v{DOORSTOP_VER_UNIX}_macos.zip", doorstopMacPath);
|
|
|
|
|
|
Information("Extracting Doorstop");
|
|
Information("Extracting Doorstop");
|
|
ZipUncompress(doorstopX86Path, doorstopPath + Directory("x86"));
|
|
ZipUncompress(doorstopX86Path, doorstopPath + Directory("x86"));
|
|
ZipUncompress(doorstopX64Path, doorstopPath + Directory("x64"));
|
|
ZipUncompress(doorstopX64Path, doorstopPath + Directory("x64"));
|
|
|
|
+
|
|
|
|
+ ZipUncompress(doorstopLinuxPath, doorstopPath + Directory("unix"));
|
|
|
|
+ ZipUncompress(doorstopMacPath, doorstopPath + Directory("unix"));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Information("Downloading Mono");
|
|
|
|
+
|
|
|
|
+ var monoPath = Directory("./bin/doorstop/mono");
|
|
|
|
+ var monoX64Path = doorstopPath + File("mono_x64.zip");
|
|
|
|
+ var monoX86Path = doorstopPath + File("mono_x86.zip");
|
|
|
|
+ CreateDirectory(monoPath);
|
|
|
|
+
|
|
|
|
+ DownloadFile($"https://github.com/BepInEx/mono/releases/download/{MONO_VER}/mono-x64.zip", monoX64Path);
|
|
|
|
+ DownloadFile($"https://github.com/BepInEx/mono/releases/download/{MONO_VER}/mono-x86.zip", monoX86Path);
|
|
|
|
+
|
|
|
|
+ Information("Extracting Mono");
|
|
|
|
+
|
|
|
|
+ ZipUncompress(monoX64Path, monoPath + Directory("x64"));
|
|
|
|
+ ZipUncompress(monoX86Path, monoPath + Directory("x86"));
|
|
});
|
|
});
|
|
|
|
|
|
Task("MakeDist")
|
|
Task("MakeDist")
|
|
.IsDependentOn("Build")
|
|
.IsDependentOn("Build")
|
|
- .IsDependentOn("DownloadDoorstop")
|
|
|
|
|
|
+ .IsDependentOn("DownloadDependencies")
|
|
.Does(() =>
|
|
.Does(() =>
|
|
{
|
|
{
|
|
var distDir = Directory("./bin/dist");
|
|
var distDir = Directory("./bin/dist");
|
|
- var distPatcherDir = distDir + Directory("patcher");
|
|
|
|
|
|
+ //var distPatcherDir = distDir + Directory("patcher");
|
|
var doorstopPath = Directory("./bin/doorstop");
|
|
var doorstopPath = Directory("./bin/doorstop");
|
|
|
|
|
|
CreateDirectory(distDir);
|
|
CreateDirectory(distDir);
|
|
- CreateDirectory(distPatcherDir);
|
|
|
|
|
|
+ //CreateDirectory(distPatcherDir);
|
|
|
|
|
|
var changelog = TransformText("<%commit_count%> commits since <%last_tag%>\r\n\r\nChangelog (excluding merges):\r\n<%commit_log%>")
|
|
var changelog = TransformText("<%commit_count%> commits since <%last_tag%>\r\n\r\nChangelog (excluding merges):\r\n<%commit_log%>")
|
|
.WithToken("commit_count", RunGit($"rev-list --count {latestTag}..HEAD"))
|
|
.WithToken("commit_count", RunGit($"rev-list --count {latestTag}..HEAD"))
|
|
@@ -123,26 +156,61 @@ Task("MakeDist")
|
|
.WithToken("commit_log", RunGit($"--no-pager log --no-merges --pretty=\"format:* (%h) [%an] %s\" {latestTag}..HEAD", "\r\n"))
|
|
.WithToken("commit_log", RunGit($"--no-pager log --no-merges --pretty=\"format:* (%h) [%an] %s\" {latestTag}..HEAD", "\r\n"))
|
|
.ToString();
|
|
.ToString();
|
|
|
|
|
|
- void PackageBepin(string arch)
|
|
|
|
|
|
+ void PackageBepin(string platform, string arch, string originDir, string doorstopConfigFile = null, bool copyMono = false)
|
|
{
|
|
{
|
|
- var distArchDir = distDir + Directory(arch);
|
|
|
|
- var doorstopArchPath = doorstopPath + Directory(arch) + File(DOORSTOP_DLL);
|
|
|
|
|
|
+ string platformName = platform + (arch == null ? "" : "_" + arch);
|
|
|
|
+ bool isUnix = arch == "unix";
|
|
|
|
+
|
|
|
|
+ Information("Creating distributions for platform \"" + platformName + "\"...");
|
|
|
|
+
|
|
|
|
+ string doorstopArchPath = null;
|
|
|
|
+
|
|
|
|
+ if (arch != null)
|
|
|
|
+ {
|
|
|
|
+ doorstopArchPath = doorstopPath + Directory(arch)
|
|
|
|
+ + File(isUnix ? "*.*" : DOORSTOP_DLL);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var distArchDir = distDir + Directory(platformName);
|
|
var bepinDir = distArchDir + Directory("BepInEx");
|
|
var bepinDir = distArchDir + Directory("BepInEx");
|
|
|
|
+ var doorstopDir = distArchDir;
|
|
|
|
+ if (isUnix) doorstopDir += Directory("doorstop_libs");
|
|
|
|
|
|
CreateDirectory(distArchDir);
|
|
CreateDirectory(distArchDir);
|
|
|
|
+ CreateDirectory(doorstopDir);
|
|
CreateDirectory(bepinDir + Directory("core"));
|
|
CreateDirectory(bepinDir + Directory("core"));
|
|
CreateDirectory(bepinDir + Directory("plugins"));
|
|
CreateDirectory(bepinDir + Directory("plugins"));
|
|
CreateDirectory(bepinDir + Directory("patchers"));
|
|
CreateDirectory(bepinDir + Directory("patchers"));
|
|
|
|
|
|
- CopyFiles("./doorstop/*.*", distArchDir);
|
|
|
|
- CopyFiles("./bin/*.*", bepinDir + Directory("core"));
|
|
|
|
- CopyFileToDirectory(doorstopArchPath, distArchDir);
|
|
|
|
|
|
+ if (doorstopArchPath != null)
|
|
|
|
+ {
|
|
|
|
+ CopyFile("./doorstop/" + doorstopConfigFile, Directory(distArchDir) + File(isUnix ? "run_bepinex.sh" : "doorstop_config.ini"));
|
|
|
|
+ CopyFiles(doorstopArchPath, doorstopDir);
|
|
|
|
+
|
|
|
|
+ if (isUnix)
|
|
|
|
+ {
|
|
|
|
+ ReplaceTextInFiles($"{distArchDir}/run_bepinex.sh", "\r\n", "\n");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (copyMono)
|
|
|
|
+ {
|
|
|
|
+ CopyDirectory("./bin/doorstop/mono/" + arch + "/mono", Directory(distArchDir) + Directory("mono"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ CopyFiles("./bin/" + Directory(originDir) + "/*.*", Directory(bepinDir) + Directory("core"));
|
|
|
|
+
|
|
|
|
+
|
|
FileWriteText(distArchDir + File("changelog.txt"), changelog);
|
|
FileWriteText(distArchDir + File("changelog.txt"), changelog);
|
|
}
|
|
}
|
|
|
|
|
|
- PackageBepin("x86");
|
|
|
|
- PackageBepin("x64");
|
|
|
|
- CopyFileToDirectory(File("./bin/patcher/BepInEx.Patcher.exe"), distPatcherDir);
|
|
|
|
|
|
+ PackageBepin("UnityMono", "x86", "Unity", "doorstop_config_mono.ini");
|
|
|
|
+ PackageBepin("UnityMono", "x64", "Unity", "doorstop_config_mono.ini");
|
|
|
|
+ PackageBepin("UnityMono", "unix", "Unity", "run_bepinex.sh");
|
|
|
|
+ PackageBepin("UnityIL2CPP", "x86", "IL2CPP", "doorstop_config_il2cpp.ini", copyMono: true);
|
|
|
|
+ PackageBepin("UnityIL2CPP", "x64", "IL2CPP", "doorstop_config_il2cpp.ini", copyMono: true);
|
|
|
|
+ PackageBepin("NetLauncher", null, "NetLauncher");
|
|
|
|
+ //CopyFileToDirectory(File("./bin/patcher/BepInEx.Patcher.exe"), distPatcherDir);
|
|
});
|
|
});
|
|
|
|
|
|
Task("Pack")
|
|
Task("Pack")
|
|
@@ -153,11 +221,15 @@ Task("Pack")
|
|
var commitPrefix = isBleedingEdge ? $"_{currentCommitShort}_" : "_";
|
|
var commitPrefix = isBleedingEdge ? $"_{currentCommitShort}_" : "_";
|
|
|
|
|
|
Information("Packing BepInEx");
|
|
Information("Packing BepInEx");
|
|
- ZipCompress(distDir + Directory("x86"), distDir + File($"BepInEx_x86{commitPrefix}{buildVersion}.zip"));
|
|
|
|
- ZipCompress(distDir + Directory("x64"), distDir + File($"BepInEx_x64{commitPrefix}{buildVersion}.zip"));
|
|
|
|
|
|
+ ZipCompress(distDir + Directory("UnityMono_x86"), distDir + File($"BepInEx_UnityMono_x86{commitPrefix}{buildVersion}.zip"));
|
|
|
|
+ ZipCompress(distDir + Directory("UnityMono_x64"), distDir + File($"BepInEx_UnityMono_x64{commitPrefix}{buildVersion}.zip"));
|
|
|
|
+ ZipCompress(distDir + Directory("UnityMono_unix"), distDir + File($"BepInEx_UnityMono_unix{commitPrefix}{buildVersion}.zip"));
|
|
|
|
+ ZipCompress(distDir + Directory("UnityIL2CPP_x86"), distDir + File($"BepInEx_UnityIL2CPP_x86{commitPrefix}{buildVersion}.zip"));
|
|
|
|
+ ZipCompress(distDir + Directory("UnityIL2CPP_x64"), distDir + File($"BepInEx_UnityIL2CPP_x64{commitPrefix}{buildVersion}.zip"));
|
|
|
|
+ ZipCompress(distDir + Directory("NetLauncher"), distDir + File($"BepInEx_NetLauncher{commitPrefix}{buildVersion}.zip"));
|
|
|
|
|
|
- Information("Packing BepInEx.Patcher");
|
|
|
|
- ZipCompress(distDir + Directory("patcher"), distDir + File($"BepInEx_Patcher{commitPrefix}{buildVersion}.zip"));
|
|
|
|
|
|
+ // Information("Packing BepInEx.Patcher");
|
|
|
|
+ // ZipCompress(distDir + Directory("patcher"), distDir + File($"BepInEx_Patcher{commitPrefix}{buildVersion}.zip"));
|
|
|
|
|
|
if(isBleedingEdge)
|
|
if(isBleedingEdge)
|
|
{
|
|
{
|
|
@@ -177,17 +249,33 @@ Task("Pack")
|
|
["hash"] = currentCommit,
|
|
["hash"] = currentCommit,
|
|
["artifacts"] = new Dictionary<string, object>[] {
|
|
["artifacts"] = new Dictionary<string, object>[] {
|
|
new Dictionary<string, object> {
|
|
new Dictionary<string, object> {
|
|
- ["file"] = $"BepInEx_x64{commitPrefix}{buildVersion}.zip",
|
|
|
|
- ["description"] = "BepInEx for x64 machines"
|
|
|
|
|
|
+ ["file"] = $"BepInEx_UnityMono_x64{commitPrefix}{buildVersion}.zip",
|
|
|
|
+ ["description"] = "BepInEx Unity Mono for Windows x64 machines"
|
|
|
|
+ },
|
|
|
|
+ new Dictionary<string, object> {
|
|
|
|
+ ["file"] = $"BepInEx_UnityMono_x86{commitPrefix}{buildVersion}.zip",
|
|
|
|
+ ["description"] = "BepInEx Unity Mono for Windows x86 machines"
|
|
},
|
|
},
|
|
new Dictionary<string, object> {
|
|
new Dictionary<string, object> {
|
|
- ["file"] = $"BepInEx_x86{commitPrefix}{buildVersion}.zip",
|
|
|
|
- ["description"] = "BepInEx for x86 machines"
|
|
|
|
|
|
+ ["file"] = $"BepInEx_unix{commitPrefix}{buildVersion}.zip",
|
|
|
|
+ ["description"] = "BepInEx Unity Mono for Unix machines with GCC (Linux, MacOS)"
|
|
},
|
|
},
|
|
new Dictionary<string, object> {
|
|
new Dictionary<string, object> {
|
|
- ["file"] = $"BepInEx_Patcher{commitPrefix}{buildVersion}.zip",
|
|
|
|
- ["description"] = "Hardpatcher for BepInEx. IMPORTANT: USE ONLY IF DOORSTOP DOES NOT WORK FOR SOME REASON!"
|
|
|
|
- }
|
|
|
|
|
|
+ ["file"] = $"BepInEx_UnityIL2CPP_x64{commitPrefix}{buildVersion}.zip",
|
|
|
|
+ ["description"] = "BepInEx Unity IL2CPP for Windows x64 machines"
|
|
|
|
+ },
|
|
|
|
+ new Dictionary<string, object> {
|
|
|
|
+ ["file"] = $"BepInEx_UnityIL2CPP_x86{commitPrefix}{buildVersion}.zip",
|
|
|
|
+ ["description"] = "BepInEx Unity IL2CPP for Windows x86 machines"
|
|
|
|
+ },
|
|
|
|
+ new Dictionary<string, object> {
|
|
|
|
+ ["file"] = $"BepInEx_NetLauncher{commitPrefix}{buildVersion}.zip",
|
|
|
|
+ ["description"] = "BepInEx .NET Launcher for .NET Framework/XNA games"
|
|
|
|
+ },
|
|
|
|
+ // new Dictionary<string, object> {
|
|
|
|
+ // ["file"] = $"BepInEx_Patcher{commitPrefix}{buildVersion}.zip",
|
|
|
|
+ // ["description"] = "Hardpatcher for BepInEx. IMPORTANT: USE ONLY IF DOORSTOP DOES NOT WORK FOR SOME REASON!"
|
|
|
|
+ // }
|
|
}
|
|
}
|
|
}));
|
|
}));
|
|
}
|
|
}
|