SkiaSharp/utils
Matthew Leibowitz 66ed32a5a0
Build and include all the emscripten version for WASM (#1590)
* Build for the most common Emscripten versions
* Update MSBuild.Sdk.Extras for .NET 5
* Do not rely on WasmHead to detect WebAssembly (#1550)

Co-authored-by: Jerome Laban <jerome.laban@nventive.com>
2021-01-27 06:07:39 +02:00
..
NativeLibraryMiniTest Build and include all the emscripten version for WASM (#1590) 2021-01-27 06:07:39 +02:00
SkiaSharpGenerator Generate the interop with harfbuzz (#1447) 2020-10-07 15:34:05 +02:00
WasmTestRunner Add a picture test to the WASM tests (#1592) 2021-01-26 02:07:50 +02:00
README.md Generate the interop with harfbuzz (#1447) 2020-10-07 15:34:05 +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/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