Skip to content
Draft

things #3387

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions build.cake
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ if (IsRunningOnWindows ()) {
var PREVIEW_FEED_URL = Argument ("previewFeed", "https://pkgs.dev.azure.com/xamarin/public/_packaging/SkiaSharp/nuget/v3/index.json");

var TRACKED_NUGETS = new Dictionary<string, Version> {
// SkiaSharp core
{ "SkiaSharp", new Version (1, 60, 0) },
{ "SkiaSharp.NativeAssets.Linux", new Version (1, 60, 0) },
{ "SkiaSharp.NativeAssets.Linux.NoDependencies", new Version (1, 60, 0) },
Expand All @@ -118,6 +119,7 @@ var TRACKED_NUGETS = new Dictionary<string, Version> {
{ "SkiaSharp.Views.Maui.Core", new Version (1, 60, 0) },
{ "SkiaSharp.Views.Maui.Controls", new Version (1, 60, 0) },
{ "SkiaSharp.Views.Blazor", new Version (1, 60, 0) },
// HarfBuzzSharp core
{ "HarfBuzzSharp", new Version (1, 0, 0) },
{ "HarfBuzzSharp.NativeAssets.Android", new Version (1, 0, 0) },
{ "HarfBuzzSharp.NativeAssets.iOS", new Version (1, 0, 0) },
Expand All @@ -128,6 +130,7 @@ var TRACKED_NUGETS = new Dictionary<string, Version> {
{ "HarfBuzzSharp.NativeAssets.tvOS", new Version (1, 0, 0) },
{ "HarfBuzzSharp.NativeAssets.WebAssembly", new Version (1, 0, 0) },
{ "HarfBuzzSharp.NativeAssets.Win32", new Version (1, 0, 0) },
// Extras
{ "SkiaSharp.HarfBuzz", new Version (1, 60, 0) },
{ "SkiaSharp.Skottie", new Version (1, 60, 0) },
{ "SkiaSharp.SceneGraph", new Version (1, 60, 0) },
Expand Down
21 changes: 0 additions & 21 deletions scripts/VERSIONS.txt
Original file line number Diff line number Diff line change
@@ -1,24 +1,3 @@
# dependencies
mdoc release 5.8.9
harfbuzz release 8.3.1
skia release m119
xunit release 2.4.2
xunit.runner.console release 2.4.2
OpenTK release 3.1.0
OpenTK.GLControl release 3.1.0
GtkSharp release 3.24.24.95
GdkSharp release 3.24.24.95
GLibSharp release 3.24.24.95
AtkSharp release 3.24.24.95
System.Memory release 4.5.5
SharpVk release 0.4.2
Uno.WinUI release 5.2.175
Microsoft.WindowsAppSDK release 1.4.230913002
Microsoft.Maui.Graphics release 7.0.92
Microsoft.Windows.SDK.NET.Ref release 10.0.19041.27
Microsoft.AspNetCore.Components.Web release 6.0.0
ANGLE release chromium/6275

# native milestones
# this is related to the API versions, not the library versions
# - milestone: the skia milestone determined by Google/Chromium
Expand Down
116 changes: 112 additions & 4 deletions scripts/cake/UpdateDocs.cake
Original file line number Diff line number Diff line change
@@ -1,3 +1,115 @@
// # dependencies
// mdoc release 5.8.9
// harfbuzz release 8.3.1
// skia release m119
// xunit release 2.4.2
// xunit.runner.console release 2.4.2
// OpenTK release 3.1.0
// OpenTK.GLControl release 3.1.0
// GtkSharp release 3.24.24.95
// GdkSharp release 3.24.24.95
// GLibSharp release 3.24.24.95
// AtkSharp release 3.24.24.95
// System.Memory release 4.5.5
// SharpVk release 0.4.2
// Uno.WinUI release 5.2.175
// Microsoft.WindowsAppSDK release 1.4.230913002
// Microsoft.Maui.Graphics release 7.0.92
// Microsoft.Windows.SDK.NET.Ref release 10.0.19041.27
// Microsoft.AspNetCore.Components.Web release 6.0.0
// ANGLE release chromium/6275
// Microsoft.iOS.Ref.net8.0_17.0 release 17.0.8523
// Microsoft.MacCatalyst.Ref.net8.0_17.0 release 17.0.8523
// Microsoft.tvOS.Ref.net8.0_17.0 release 17.0.8523
// Microsoft.macOS.Ref.net8.0_14.0 release 14.0.8523
// Samsung.Tizen.Ref release 10.0.109
// Xamarin.VisualStudio.Apple.Sdk url https://download.visualstudio.microsoft.com/download/pr/42786999-d45b-4428-b946-248bb9676505/d37d5503fe30287fb73facbc34321865fdced518ba9205ab5581c7487e4ed6d6/Xamarin.VisualStudio.Apple.Sdk.17.12.0.94.vsix
// Xamarin.Android.Sdk url https://download.visualstudio.microsoft.com/download/pr/a3846965-8f4c-42fa-b728-b6ea5f0a2a16/90d568134f0f5b472e5c085fc6573c76bd40231892a89eb7551940dcc055eb8a/Xamarin.Android.Sdk-13.2.2.0.vsix

async Task<NuGetDiff> CreateNuGetDiffAsync()
{
var comparer = new NuGetDiff();
comparer.PackageCache = PACKAGE_CACHE_PATH.FullPath;
comparer.IgnoreResolutionErrors = true;

Verbose ($"Adding dependencies...");

await AddDep("OpenTK.GLControl", "NET20");
await AddDep("GtkSharp", "netstandard2.0");
await AddDep("GdkSharp", "netstandard2.0");
await AddDep("GLibSharp", "netstandard2.0");
await AddDep("AtkSharp", "netstandard2.0");
await AddDep("System.Memory", "netstandard2.0");
await AddDep("Microsoft.WindowsAppSDK", "net5.0-windows10.0.18362.0");
await AddDep("Microsoft.Maui.Graphics", "netstandard2.0");
await AddDep("Microsoft.Windows.SDK.NET.Ref", "");
await AddDep("Microsoft.iOS.Ref.net8.0_17.0", "net8.0");
await AddDep("Microsoft.MacCatalyst.Ref.net8.0_17.0", "net8.0");
await AddDep("Microsoft.tvOS.Ref.net8.0_17.0", "net8.0");
await AddDep("Microsoft.macOS.Ref.net8.0_14.0", "net8.0");
await AddDep("Samsung.Tizen.Ref", "net8.0");
await AddVsixDep("Xamarin.VisualStudio.Apple.Sdk", "$ReferenceAssemblies/Microsoft/Framework/Xamarin.iOS/v1.0");
await AddVsixDep("Xamarin.VisualStudio.Apple.Sdk", "$ReferenceAssemblies/Microsoft/Framework/Xamarin.TVOS/v1.0");
await AddVsixDep("Xamarin.VisualStudio.Apple.Sdk", "$ReferenceAssemblies/Microsoft/Framework/Xamarin.Mac/v2.0");
await AddVsixDep("Xamarin.Android.Sdk", "$ReferenceAssemblies/Microsoft/Framework/MonoAndroid/v1.0");
await AddVsixDep("Xamarin.Android.Sdk", "$ReferenceAssemblies/Microsoft/Framework/MonoAndroid/v13.0");

// some parts of SkiaSharp depend on other parts
foreach (var dir in GetDirectories($"{PACKAGE_CACHE_PATH}/skiasharp/*/lib/netstandard2.0"))
comparer.SearchPaths.Add(dir.FullPath);

Verbose("Added search paths:");
foreach (var path in comparer.SearchPaths) {
var found = GetFiles($"{path}/*.dll").Any() || GetFiles($"{path}/*.winmd").Any();
Verbose($" {(found ? " " : "!")} {path}");
}

return comparer;

async Task AddVsixDep(string id, string localPath, string type = "url")
{
var url = GetVersion(id, type);
var fileName = System.IO.Path.GetFileName(new Uri(url).LocalPath);
Verbose ($" Adding VSIX dependency {id} ({fileName})...");
var dest = System.IO.Path.Combine(PACKAGE_CACHE_PATH.FullPath, id.ToLower(), fileName);
if (!FileExists(dest)) {
EnsureDirectoryExists(System.IO.Path.GetDirectoryName(dest));
Verbose($" Downloading {url} to {dest}");
DownloadFile(url, dest);
}
var extractDir = System.IO.Path.Combine(PACKAGE_CACHE_PATH.FullPath, id.ToLower(), System.IO.Path.GetFileNameWithoutExtension(fileName));
if (!DirectoryExists(extractDir)) {
Verbose($" Extracting {dest} to {extractDir}");
EnsureDirectoryExists(extractDir);
DecompressArchive(dest, extractDir);
}
var searchPath = System.IO.Path.Combine(extractDir, localPath);
if (DirectoryExists(searchPath)) {
Verbose($" Adding VSIX search path: {searchPath}");
comparer.SearchPaths.Add(searchPath);
} else {
Verbose($" No VSIX search path found at: {searchPath}");
}
}

async Task AddDep(string id, string platform, string type = "release")
{
var version = GetVersion(id, type);
Verbose ($" Adding dependency {id} version {version}...");
var root = await comparer.ExtractCachedPackageAsync(id, version);
var libPath = System.IO.Path.Combine(root, "lib", platform);
var refPath = System.IO.Path.Combine(root, "ref", platform);
if (DirectoryExists(libPath)) {
Verbose ($" lib path {libPath}");
comparer.SearchPaths.Add(libPath);
} else if (DirectoryExists(refPath)) {
Verbose ($" ref path {libPath}");
comparer.SearchPaths.Add(refPath);
} else {
Verbose ($" no lib or ref path");
}
}
}

void CopyChangelogs (DirectoryPath diffRoot, string id, string version)
{
Expand Down Expand Up @@ -131,10 +243,6 @@ Task ("docs-api-diff-past")
comparer.SaveAssemblyApiInfo = true;
comparer.SaveAssemblyMarkdownDiff = true;

// some parts of SkiaSharp depend on other parts
foreach (var dir in GetDirectories($"{PACKAGE_CACHE_PATH}/skiasharp/*/lib/netstandard2.0"))
comparer.SearchPaths.Add(dir.FullPath);

foreach (var id in TRACKED_NUGETS.Keys) {
// skip doc generation for NativeAssets as that has nothing but a native binary
if (id.Contains ("NativeAssets"))
Expand Down
65 changes: 0 additions & 65 deletions scripts/cake/UtilsManaged.cake
Original file line number Diff line number Diff line change
Expand Up @@ -172,71 +172,6 @@ IEnumerable<(DirectoryPath path, string platform)> GetPlatformDirectories(Direct
}
}

string[] GetDotNetPacksSearchPaths()
{
var refs = new List<string>();

RunProcess("dotnet", "--list-sdks", out var sdks);

var last = sdks.Last();
var start = last.IndexOf("[") + 1;
var latestSdk = (DirectoryPath)(last.Substring(start, last.Length - start - 1));
var dotnetRoot = latestSdk.Combine("..");

foreach(var pack in GetDirectories(dotnetRoot.Combine("packs").FullPath + "/*.Ref.*")) {
var paths = GetDirectories(pack.FullPath + "/*");
foreach (var path in paths) {
var r = GetDirectories(path.FullPath + "/ref/net*");
refs.AddRange(r.Select(d => d.FullPath));
}
}

foreach(var pack in GetDirectories(dotnetRoot.Combine("packs").FullPath + "/*.Ref")) {
var paths = GetDirectories(pack.FullPath + "/*");
foreach (var path in paths) {
var r = GetDirectories(path.FullPath + "/ref/net*");
refs.AddRange(r.Select(d => d.FullPath));
}
}

return refs.ToArray();
}

async Task<NuGetDiff> CreateNuGetDiffAsync()
{
var comparer = new NuGetDiff();
comparer.SearchPaths.AddRange(GetDotNetPacksSearchPaths());
comparer.PackageCache = PACKAGE_CACHE_PATH.FullPath;
comparer.IgnoreResolutionErrors = true;

Verbose ($"Adding dependencies...");
await AddDep("OpenTK.GLControl", "NET20");
await AddDep("GtkSharp", "netstandard2.0");
await AddDep("GdkSharp", "netstandard2.0");
await AddDep("GLibSharp", "netstandard2.0");
await AddDep("AtkSharp", "netstandard2.0");
await AddDep("System.Memory", "netstandard2.0");
await AddDep("Microsoft.WindowsAppSDK", "net5.0-windows10.0.18362.0");
await AddDep("Microsoft.Maui.Graphics", "netstandard2.0");
await AddDep("Microsoft.Windows.SDK.NET.Ref", "");

Verbose("Added search paths:");
foreach (var path in comparer.SearchPaths) {
var found = GetFiles($"{path}/*.dll").Any() || GetFiles($"{path}/*.winmd").Any();
Verbose($" {(found ? " " : "!")} {path}");
}

return comparer;

async Task AddDep(string id, string platform, string type = "release")
{
var version = GetVersion(id, type);
Verbose ($" Adding dependency {id} version {version}...");
var root = await comparer.ExtractCachedPackageAsync(id, version);
comparer.SearchPaths.Add(System.IO.Path.Combine(root, "lib", platform));
}
}

async Task DownloadPackageAsync(string id, DirectoryPath outputDirectory)
{
var version = "0.0.0-";
Expand Down