Back to Skiasharp

Utils

utils/README.md

3.119.22.0 KB
Original Source

Utils

This directory contains a few tools to help with the binding and development of SkiaSharp and related libraries.

SkiaSharpGenerator

This is a small set of tools that help with generating the p/invoke layer from the C header files.

Generate

Regenerate all P/Invoke bindings:

pwsh
pwsh ./utils/generate.ps1

Regenerate a specific binding:

pwsh
pwsh ./utils/generate.ps1 -Config libSkiaSharp.json

Available configs:

  • libSkiaSharp.json - Core SkiaSharp
  • libSkiaSharp.Skottie.json - Skottie animation
  • libSkiaSharp.SceneGraph.json - Scene graph
  • libSkiaSharp.Resources.json - Resources
  • libHarfBuzzSharp.json - HarfBuzz text shaping

Verify

This can be run with:

pwsh
dotnet run --project=utils/SkiaSharpGenerator/SkiaSharpGenerator.csproj -- verify --config binding/libSkiaSharp.json --skia externals/skia
  • --config binding/libSkiaSharp.json
    The path to the JSON file that help generate a useful set of p/invoke definions and structures.
  • --skia externals/skia
    The path to the root of the skia source.
  • --output binding/Binding/SkiaApi.generated.cs
    The path to the generated file.

This can be run with:

pwsh
dotnet run --project=utils/SkiaSharpGenerator/SkiaSharpGenerator.csproj -- cookie --assembly binding\SkiaSharp\bin\Debug\netstandard2.0\SkiaSharp.dll --type "SkiaSharp.SkiaApi"

Or:

pwsh
dotnet run --project=utils/SkiaSharpGenerator/SkiaSharpGenerator.csproj -- cookie --assembly binding\HarfBuzzSharp\bin\Debug\netstandard2.0\HarfBuzzSharp.dll --type "HarfBuzzSharp.HarfBuzzApi"
  • --assembly <assembly>
    Read the assembly and log any missing interops.
  • --type <full type name>
    The type containing the interops.

WasmTestRunner

Run the WASM unit tests in a browser.

This can be run with:

pwsh
dotnet run --project=utils/WasmTestRunner/WasmTestRunner.csproj -- "http://localhost:5000/"
  • --output TestResults.xml
  • --timeout 30
  • --no-headless