diff --git a/build/BuildWindowsTask.cs b/build/BuildWindowsTask.cs index 1e6685b..1b1f6aa 100644 --- a/build/BuildWindowsTask.cs +++ b/build/BuildWindowsTask.cs @@ -9,16 +9,23 @@ public sealed class BuildWindowsTask : FrostingTask public override void Run(BuildContext context) { - var buildWorkingDir = "crunch_build/"; + BuildForArchitecture(context, "x64", "windows-x64"); + BuildForArchitecture(context, "ARM64", "windows-arm64"); + } + + private void BuildForArchitecture(BuildContext context, string cmakeArch, string rid, string cmakeOptions = "") + { + var buildWorkingDir = $"crunch_build_{rid}"; Directory.CreateDirectory(buildWorkingDir); // Path relative to the buildWorkingDir var cmakeListsPath = System.IO.Path.Combine("..", "crunch", "CMakeLists.txt"); - context.StartProcess("cmake", new ProcessSettings { WorkingDirectory = buildWorkingDir, Arguments = $"-DBUILD_CRUNCH=ON -DBUILD_SHARED_LIBCRN=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF {cmakeListsPath}" }); + context.StartProcess("cmake", new ProcessSettings { WorkingDirectory = buildWorkingDir, Arguments = $"{cmakeOptions} -DBUILD_CRUNCH=ON -DBUILD_SHARED_LIBCRN=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF {cmakeListsPath}" }); context.ReplaceTextInFiles("crunch_build/_crunch/crunch.vcxproj", "MultiThreadedDLL", "MultiThreaded"); context.ReplaceTextInFiles("crunch_build/crnlib/crn-obj.vcxproj", "MultiThreadedDLL", "MultiThreaded"); context.ReplaceTextInFiles("crunch_build/crnlib/crn.vcxproj", "MultiThreadedDLL", "MultiThreaded"); context.StartProcess("cmake", new ProcessSettings { WorkingDirectory = buildWorkingDir, Arguments = "--build . --config release" }); + Directory.CreateDirectory($"{context.ArtifactsDir}/{rid}"); var files = Directory.GetFiles(System.IO.Path.Combine (buildWorkingDir, "Release"), "crunch.exe", SearchOption.TopDirectoryOnly); - context.CopyFile(files[0], $"{context.ArtifactsDir}/crunch.exe"); + context.CopyFile(files[0], $"{context.ArtifactsDir}/{rid}/crunch.exe"); } } \ No newline at end of file diff --git a/buildscripts b/buildscripts index 2dae539..b7baf1d 160000 --- a/buildscripts +++ b/buildscripts @@ -1 +1 @@ -Subproject commit 2dae539a2b7bf49bec07aa63a2c529a7406c5aa5 +Subproject commit b7baf1d21b5bc76ff2f4658b318f35edd91937f2