native/winui/build.cake (36 lines of code) (raw):
DirectoryPath ROOT_PATH = MakeAbsolute(Directory("../.."));
DirectoryPath OUTPUT_PATH = MakeAbsolute(ROOT_PATH.Combine("output/native/winui"));
#load "../../scripts/cake/native-shared.cake"
#load "../../scripts/cake/msbuild.cake"
Task("SkiaSharp.Views.WinUI.Native")
.WithCriteria(IsRunningOnWindows())
.Does(() =>
{
Build("x86", "Win32");
Build("x64", "x64");
Build("arm64", "arm64");
void Build(string arch, string nativeArch)
{
if (Skip(arch)) return;
RunMSBuild("SkiaSharp.Views.WinUI.Native/SkiaSharp.Views.WinUI.Native.sln",
restore: false,
targets: new[] { "Restore" },
properties: new Dictionary<string, string> {
{ "RestorePackagesConfig", "true" }
});
RunMSBuild("SkiaSharp.Views.WinUI.Native/SkiaSharp.Views.WinUI.Native.sln", arch);
var name = "SkiaSharp.Views.WinUI.Native";
var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir);
CopyFileToDirectory($"{name}/{name}/bin/{nativeArch}/{CONFIGURATION}/{name}.dll", outDir);
CopyFileToDirectory($"{name}/{name}/bin/{nativeArch}/{CONFIGURATION}/{name}.pdb", outDir);
CopyFileToDirectory($"{name}/{name}/bin/{nativeArch}/{CONFIGURATION}/{name}.winmd", outDir);
var anyOutDir = OUTPUT_PATH.Combine("any");
EnsureDirectoryExists(anyOutDir);
CopyFileToDirectory($"{name}/{name}.Projection/bin/{CONFIGURATION}/net6.0-windows10.0.19041.0/{name}.Projection.dll", anyOutDir);
CopyFileToDirectory($"{name}/{name}.Projection/bin/{CONFIGURATION}/net6.0-windows10.0.19041.0/{name}.Projection.pdb", anyOutDir);
}
});
Task("Default")
.IsDependentOn("SkiaSharp.Views.WinUI.Native");
RunTarget(TARGET);