utils/generate.ps1 (20 lines of code) (raw):

$ErrorActionPreference = "Stop" $projects = @( @{ Json="libSkiaSharp.json"; Root="externals/skia"; Output="SkiaSharp/SkiaApi.generated.cs" }, @{ Json="libSkiaSharp.Skottie.json"; Root="externals/skia"; Output="SkiaSharp.Skottie/SkottieApi.generated.cs" }, @{ Json="libSkiaSharp.SceneGraph.json"; Root="externals/skia"; Output="SkiaSharp.SceneGraph/SceneGraphApi.generated.cs" }, @{ Json="libSkiaSharp.Resources.json"; Root="externals/skia"; Output="SkiaSharp.Resources/ResourcesApi.generated.cs" }, @{ Json="libHarfBuzzSharp.json"; Root="externals/skia/third_party/externals/harfbuzz"; Output="HarfBuzzSharp/HarfBuzzApi.generated.cs" } ) New-Item -ItemType Directory -Force -Path "output/generated/" | Out-Null foreach ($proj in $projects) { $json = $proj.Json; $output = $proj.Output; $root = $proj.Root; $filename = Split-Path $output -Leaf dotnet run --project=utils/SkiaSharpGenerator/SkiaSharpGenerator.csproj -- generate --config binding/$json --root $root --output binding/$output if (!$?) { exit $LASTEXITCODE } Copy-Item -Path binding/$output -Destination output/generated/$filename -Force }