Skip to content

Commit ba1a9ad

Browse files
authored
Add support for building ARM64 architecture
1 parent 5e41a6c commit ba1a9ad

1 file changed

Lines changed: 24 additions & 6 deletions

File tree

build/BuildWindowsTask.cs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,29 @@ public sealed class BuildWindowsTask : FrostingTask<BuildContext>
1111

1212
public override void Run(BuildContext context)
1313
{
14-
var buildWorkingDir = "assimp/";
15-
context.StartProcess("cmake", new ProcessSettings { WorkingDirectory = buildWorkingDir, Arguments = "-DASSIMP_BUILD_TESTS=OFF -DASSIMP_INSTALL=OFF CMakeLists.txt" });
16-
context.ReplaceTextInFiles("assimp/code/assimp.vcxproj", "MultiThreadedDLL", "MultiThreaded");
17-
context.ReplaceTextInFiles("assimp/contrib/zlib/zlibstatic.vcxproj", "MultiThreadedDLL", "MultiThreaded");
18-
context.StartProcess("cmake", new ProcessSettings { WorkingDirectory = buildWorkingDir, Arguments = "--build . --config release" });
19-
context.CopyFile(@"assimp/bin/Release/assimp-vc143-mt.dll", $"{context.ArtifactsDir}/assimp.dll");
14+
BuildForArchitecture(context, "x64", "win-x64");
15+
BuildForArchitecture(context, "ARM64", "win-arm64");
16+
}
17+
18+
private void BuildForArchitecture(BuildContext context, string cmakeArch, string rid)
19+
{
20+
var buildWorkingDir = $"assimp/build_{rid}";
21+
context.CreateDirectory(buildWorkingDir);
22+
23+
context.StartProcess("cmake", new ProcessSettings {
24+
WorkingDirectory = buildWorkingDir,
25+
Arguments = $"-A {cmakeArch} -DASSIMP_BUILD_TESTS=OFF -DASSIMP_INSTALL=OFF .."
26+
});
27+
28+
context.ReplaceTextInFiles($"{buildWorkingDir}/code/assimp.vcxproj", "MultiThreadedDLL", "MultiThreaded");
29+
context.ReplaceTextInFiles($"{buildWorkingDir}/contrib/zlib/zlibstatic.vcxproj", "MultiThreadedDLL", "MultiThreaded");
30+
31+
context.StartProcess("cmake", new ProcessSettings {
32+
WorkingDirectory = buildWorkingDir,
33+
Arguments = "--build . --config release"
34+
});
35+
36+
context.CreateDirectory($"{context.ArtifactsDir}/{rid}");
37+
context.CopyFile($@"{buildWorkingDir}/bin/Release/assimp-vc143-mt.dll", $"{context.ArtifactsDir}/{rid}/assimp.dll");
2038
}
2139
}

0 commit comments

Comments
 (0)