SkiaSharp/utils
Matthew Leibowitz d8515272c4
Attempt to use the local ChromeDriver first (#1653)
2021-03-13 06:01:15 +02:00
..
NativeLibraryMiniTest Improve the local builds (#1593) 2021-01-27 21:49:08 +02:00
SkiaSharpGenerator Generate the interop with harfbuzz (#1447) 2020-10-07 15:34:05 +02:00
WasmTestRunner Attempt to use the local ChromeDriver first (#1653) 2021-03-13 06:01:15 +02:00
README.md Remove the externals/harfbuzz submodule (#1599) 2021-02-01 23:13:44 +02:00
Utils.sln Add & Run WASM Unit Tests (#1361) 2020-06-29 19:28:12 +02:00

README.md

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

This can be run with:

dotnet run --project=utils/SkiaSharpGenerator/SkiaSharpGenerator.csproj -- generate --config binding/libSkiaSharp.json --skia externals/skia --output binding/Binding/SkiaApi.generated.cs

Or:

dotnet run --project=utils/SkiaSharpGenerator/SkiaSharpGenerator.csproj -- generate --config binding/libHarfBuzzSharp.json --skia externals/skia/third_party/externals/harfbuzz --output binding/HarfBuzzSharp.Shared/HarfBuzzApi.generated.cs
  • --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.

Verify

This can be run with:

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:

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

Or:

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:

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