Files
BuildSubversion/Build/Dependencies.cs
T

88 lines
4.2 KiB
C#
Raw Normal View History

2025-05-13 01:22:44 +03:00
using Actions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Build {
public static class Dependencies {
static readonly string APR_VERSION = "1.7.5";
static readonly string APU_VERSION = "1.6.3";
static readonly string PY3C_VERSION = "1.1";
static readonly string SERF_VERSION = "1.3.10";
static readonly string ZLIB_VERSION = "1.2.8";
static readonly string SQLITE_VERSION = "3.39.4";
static readonly int SQLITE_VERSION_REL_YEAR = 2022;
static readonly string APACHE_MIRROR = "https://archive.apache.org/dist";
public static async Task<string?> DownloadIfNotExist(string url, string outPath) {
string? result = outPath;
if (!File.Exists(outPath)) {
Console.Write($"Downloading: {url}");
result = await Download.FileFromUrl(url, outPath);
Console.WriteLine($" Done");
} else {
Console.WriteLine($"Skip downloading: {url}");
}
return result;
}
public static async Task<string> GetZLib(string dir) {
var ZLIB = $"zlib-{ZLIB_VERSION}";
var archiveFile = await DownloadIfNotExist($"https://github.com/madler/zlib/archive/refs/tags/v{ZLIB_VERSION}.tar.gz", Path.Combine(dir, $"{ZLIB}.tar.gz"));
Archive.UnpackTarGz(archiveFile, dir);
return Path.Combine(dir, ZLIB);
}
public static async Task<string> GetSqlite(string dir) {
var SQLITE_VERSION_LIST = SQLITE_VERSION.Split(".");
var SQLITE = string.Format("sqlite-amalgamation-{0}{1}{2}00", SQLITE_VERSION_LIST[0], SQLITE_VERSION_LIST[1].PadLeft(2, '0'), SQLITE_VERSION_LIST[2].PadLeft(2, '0'));
var archiveFile = await DownloadIfNotExist($"https://www.sqlite.org/{SQLITE_VERSION_REL_YEAR}/{SQLITE}.zip", Path.Combine(dir, $"{SQLITE}.zip"));
Archive.UnpackZip(archiveFile, dir);
return Path.Combine(dir, $"{SQLITE}");
}
public static async Task<string> GetSerf(string dir) {
var SERF = $"serf-{SERF_VERSION}";
var archiveFile = await DownloadIfNotExist($"https://archive.apache.org/dist/serf/{SERF}.tar.bz2", Path.Combine(dir, $"{SERF}.tar.bz2"));
Archive.UnpackTarBz2(archiveFile, dir);
return Path.Combine(dir, $"{SERF}");
}
public static async Task<string> GetExpat(string dir) {
var archiveFile = await DownloadIfNotExist($"https://github.com/libexpat/libexpat/releases/download/R_2_6_4/expat-win64bin-2.6.4.zip", Path.Combine(dir, $"expat-win64bin-2.6.4.zip"));
var resultDir = Path.Combine(dir, "expat-win64bin-2.6.4");
Directory.CreateDirectory(resultDir);
Archive.UnpackZip(archiveFile, resultDir);
return Path.Combine(dir, resultDir);
}
public static async Task<string> GetOpenssl(string dir) {
var archiveFile = await DownloadIfNotExist($"https://github.com/openssl/openssl/releases/download/openssl-3.2.3/openssl-3.2.3.tar.gz", Path.Combine(dir, $"openssl-3.2.3.tar.gz"));
Archive.UnpackTarGz(archiveFile, dir);
return Path.Combine(dir, $"openssl-3.2.3");
}
public static async Task<string> GetApr(string dir) {
var APR = $"apr-{APR_VERSION}";
var archiveFile = await DownloadIfNotExist($"{APACHE_MIRROR}/apr/{APR}.tar.bz2", Path.Combine(dir, $"{APR}.tar.bz2"));
Archive.UnpackTarBz2(archiveFile, dir);
return Path.Combine(dir, $"{APR}");
}
public static async Task<string> GetAprUtil(string dir) {
var APR_UTIL = $"apr-util-{APU_VERSION}";
var archiveFile = await DownloadIfNotExist($"{APACHE_MIRROR}/apr/{APR_UTIL}.tar.bz2", Path.Combine(dir, $"{APR_UTIL}.tar.bz2"));
Archive.UnpackTarBz2(archiveFile, dir);
return Path.Combine(dir, $"{APR_UTIL}");
}
public static async Task<string> GetSubversion(string projectRootDir) {
2025-05-21 22:40:42 +03:00
return Path.GetFullPath(Path.Combine(projectRootDir, "Dependencies", "subversion"));
2025-05-13 01:22:44 +03:00
}
}
}