Skiasharp: How do I get the native binaries for a Managed-only build?

Created on 24 Jun 2019  路  16Comments  路  Source: mono/SkiaSharp

I'm trying to do a managed-only build by following the instructions here since I wasn't able to get the externals/skia native builds to complete without compilation errors (in GrAHardwareBufferImageGenerator.cpp, line 217, GrBackendTexture backendTex: no matching constructor).

However, I don't know how to get the correct Azure Build IDs. If I go to the Azure build page and pick one of the builds from SkiaSharp (Public) that appears to have built successfully with a green tick (e.g., build 3348) ) and copy the buildId from the URL (e.g., 3348), and use that with the bootstrapper,

./bootstrapper.sh -t externals-download --azureBuildId=3348

(Also tried "3348" in quotes.)

I get the following error:

========================================
externals-download
========================================
An error occurred when executing task 'externals-download'.
Error: One or more errors occurred. (One or more errors occurred. (404 (Not Found)))
    404 (Not Found)

I found the AZURE_BUILD_URL that the SkiaSharp/build.cake and SkiaSharp/cake/BuildExternals.cake build scripts use to download the native binaries in a zip file. Using that URL with the buildId and "native" for the artifactName field, I get the following error:

{"$id":"1","innerException":null,"message":"Artifact native was not found for build 3348.","typeName":"Microsoft.TeamFoundation.Build.WebApi.ArtifactNotFoundException, Microsoft.TeamFoundation.Build2.WebApi","typeKey":"ArtifactNotFoundException","errorCode":0,"eventId":3000}

I've tried several of the other builds and also the ones from SkiaSharp.Extended (Public) and they all return the same error.

Is there a way I can figure out which builds contain the native binaries without guessing?

Thank you.

type-question

All 16 comments

https://dev.azure.com/xamarin/public/_build/results?buildId=3348

Do I click on the Artifact button and just select any/all of the options? When I tried that, I get the following error:

{"$id":"1","innerException":null,"message":"TF400813: The user '<github user id>' is not authorized to access this resource.","typeName":"Microsoft.TeamFoundation.Framework.Server.UnauthorizedRequestException, Microsoft.TeamFoundation.Framework.Server","typeKey":"UnauthorizedRequestException","errorCode":0,"eventId":3000}

You should be able to download the nuget.zip

You should be able to download the nuget.zip

Ah, thank you! I was able to download just that file, which contains all the built nupkgs.

My partially built output folder seems to have a different layout with nuget subfolders:

output/
    HarfBuzzSharp/
        nuget/
    SkiaSharp/
        nuget/
    SkiaSharp.HarfBuzz/
        nuget/
    SkiaSharp.Views/
        nuget/
    SkiaSharp.Views.Forms/
        nuget/

so I'm guessing I have to unzip the contents of the nupkgs into their respective nuget subfolders in order to get the Managed-only build to be able to use them? (I'll try that 1st thing tomorrow.)

Thanks again and apologies for all the questions as I'm rather new to SkiaSharp.

Was this page helpful?
0 / 5 - 0 ratings