*
This commit is contained in:
+32
-8
@@ -56,7 +56,7 @@ class Application {
|
||||
}
|
||||
|
||||
|
||||
static void BuildApr(string source, string installDir) {
|
||||
static string BuildApr(string source, string installDir) {
|
||||
var tmpDir = TempDirectory.New();
|
||||
|
||||
var cmake = Find.Executable("cmake");
|
||||
@@ -66,6 +66,7 @@ class Application {
|
||||
var configResult = cmake.Run($"-DCMAKE_INSTALL_PREFIX={installPrefix} -G \"Ninja\" -DAPR_INSTALL_PRIVATE_H=ON -DCMAKE_BUILD_TYPE=RELEASE -DAPR_BUILD_STATIC=ON {source}", tmpDir);
|
||||
var buildResult = ninja.Run("", tmpDir);
|
||||
var installResult = ninja.Run("install", tmpDir);
|
||||
return installPrefix;
|
||||
}
|
||||
|
||||
static void BuildAprUtil(string source, string expatLibDir, string installDir) {
|
||||
@@ -123,14 +124,26 @@ class Application {
|
||||
File.WriteAllText(sconstructPath, text);
|
||||
}
|
||||
|
||||
static void BuildSubversion(string svnSource, string sqlSource, string installDir) {
|
||||
static void CopyLibraries(string srcBinlDir, string svnInstallDir) {
|
||||
string svnBinDir = Path.Combine(svnInstallDir, "bin");
|
||||
|
||||
string[] srcFiles = Directory.GetFiles(srcBinlDir).Where(x=>x.EndsWith(".dll")).ToArray();
|
||||
foreach(var file in srcFiles) {
|
||||
var fileName = Path.GetFileName(file);
|
||||
var dstPath = Path.Combine(svnBinDir, fileName);
|
||||
File.Copy(file, dstPath, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static string BuildSubversion(string svnSource, string sqlSource, string installDir, string expatDir) {
|
||||
var aprPath = Path.Combine(installDir, "apr").Replace("\\", "/");
|
||||
var serfPath = Path.Combine(installDir, "serf").Replace("\\", "/");
|
||||
var zlibPath = Path.Combine(installDir, "zlib").Replace("\\", "/");
|
||||
var opensslPath = Path.Combine(installDir, "openssl").Replace("\\", "/");
|
||||
string libPaths = $"{aprPath};{serfPath};{zlibPath}";
|
||||
string expatBinDir = "e:/SvnDeps/expat/Bin";
|
||||
string expatIncDir = "e:/SvnDeps/expat/Source/lib";
|
||||
string expatBinDir = Path.Combine(expatDir,"Bin");
|
||||
string expatIncDir = Path.Combine(expatDir, "Source/lib");
|
||||
string installPrefix = Path.Combine(installDir, "subversion");
|
||||
|
||||
List<string> args = new List<string>();
|
||||
@@ -160,15 +173,20 @@ class Application {
|
||||
|
||||
var buildResult = ninja.Run("", tmpDir);
|
||||
var installResult = ninja.Run("install", tmpDir);
|
||||
|
||||
return installPrefix;
|
||||
}
|
||||
|
||||
public static async Task<int> Main() {
|
||||
VisualStudio.SetupEnvironment(CpuArchitecture.x64);
|
||||
|
||||
var projectRootDir = GetProjectRootDir();
|
||||
var depsSourceDirectory = Path.Combine(projectRootDir, "DependenciesSource");
|
||||
|
||||
|
||||
var depsSourceDirectory = Path.Combine(projectRootDir, "Downloads");
|
||||
Directory.CreateDirectory(depsSourceDirectory);
|
||||
var depsBuildDirectory = Path.Combine(projectRootDir, "DependenciesBuild");
|
||||
var tempDir = TempDirectory.New();
|
||||
var depsBuildDirectory = Path.Combine(tempDir, "DependenciesBuild");
|
||||
Directory.CreateDirectory(depsBuildDirectory);
|
||||
|
||||
var svn = await Dependencies.GetSubversion(projectRootDir);
|
||||
@@ -182,12 +200,18 @@ class Application {
|
||||
|
||||
BuildOpenssl(openssl, depsBuildDirectory);
|
||||
BuildZLib(zLib, depsBuildDirectory);
|
||||
BuildApr(apr, depsBuildDirectory);
|
||||
var aprInstallDir = BuildApr(apr, depsBuildDirectory);
|
||||
BuildAprUtil(aprUtil, expat, depsBuildDirectory);
|
||||
FixAprForSerf(depsBuildDirectory);
|
||||
PatchSerf(serf);
|
||||
BuildSerf(serf, depsBuildDirectory);
|
||||
BuildSubversion(svn, sqLite, depsBuildDirectory);
|
||||
var svnInstallDir = BuildSubversion(svn, sqLite, tempDir, expat);
|
||||
|
||||
CopyLibraries(Path.Combine(aprInstallDir, "bin"), svnInstallDir);
|
||||
CopyLibraries(Path.Combine(expat, "Bin"), svnInstallDir);
|
||||
CopyLibraries(Path.Combine(openssl, "bin"), svnInstallDir);
|
||||
|
||||
Console.WriteLine($"SVN install directory: {svnInstallDir}");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user