Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HarfBuzz update #766

Merged
merged 81 commits into from
Mar 30, 2019
Merged

HarfBuzz update #766

merged 81 commits into from
Mar 30, 2019

Conversation

Gillibald
Copy link
Contributor

@Gillibald Gillibald commented Jan 19, 2019

This is the initial work to bring HarfBuzz to the current version and making it easier to update in the future. The library will no longer be downloaded as a zip file and instead was added as a submodule to the repository. The build process is almost the same and just the download part is removed.

HarfBuzz itself is no on the current release version 2.3.1

HarfBuzzSharp got some substantial additions but also has some breaking signature changes. The goal was to support more of the API and make it easier to integrate HarfBuzz into an existing application.

VS bug #774025

@Gillibald
Copy link
Contributor Author

You don't seem to use xml comments how do I add documentation for added features?

@mattleibow
Copy link
Contributor

For docs, we run a task and then that will generate the files in the docs folder. Then we hand edit.

The docs task is a fairly complex process and requires that all platforms be built and present - it then processes all the assemblies at once and generates the correct API docs, diffs and other variations. I wouldn't worry about that at the moment as I usually run it periodically. If you really need to generate docs, then just let me know.

@mattleibow
Copy link
Contributor

whitelist

@mattleibow mattleibow closed this Jan 19, 2019
@mattleibow mattleibow reopened this Jan 19, 2019
@mattleibow
Copy link
Contributor

Looking at the project file changes and wondering why Microsoft doesn't support wildcards everywhere... Then we are going to get to all those xcode projects :)

@Gillibald
Copy link
Contributor Author

Thats fine for me. We can add documentation later when this is finished feature wise.

@mattleibow
Copy link
Contributor

I added you to the whitelist, so you should be able to see results as you go along. One thing that you may want to change is the fact that if one build fails, it cancels all the others. Since you probably are going to work one platform at a time, you may want to flip this switch: https://github.com/mono/SkiaSharp/blob/master/scripts/pipeline.groovy#L71

That will allow CI to build what it can, and then stop at the end of the process. If there are any platforms that you can't build for some reason, let me know and I can either help you set up, or make the changes - so you don't have to spend all your time tinkering with some obscure platform SDK.

@Gillibald
Copy link
Contributor Author

Will fix all non-apple platforms first on a virtual machine. And will then commit everything to reduce noise. Someone with XCode needs to update all related files. The XCode file format is just too much of a pain to edit it by hand. Linux and Windows build should now work. On Linux, I had to add some required packages to the build task.

Will re-enable fastFail again to also reduce noise. I just learned I should keep my commits to a minimum.

@mattleibow
Copy link
Contributor

mattleibow commented Jan 20, 2019

It's those darn docs tooling - "we're gonna build", "we're building", "were done building!" Massive. Comment. Needed. lol
I must talk to our release engineering to find if there is a way to temporarily disable the docs builds...

@mikekinsman

This comment has been minimized.

@mikekinsman

This comment has been minimized.

@mikekinsman

This comment has been minimized.

@mikekinsman

This comment has been minimized.

@mikekinsman

This comment has been minimized.

 - converted default arguments into overloads
 - fixed a few whitespaces in unchanged files
 - updated all the projects to C# 7.3
 - the Buffer propertes are now arrays again, but added methods for the spans
    - reduce breaking changes
    - the values can be broken if the buffer changes, so use a better named method
 - removed the new Point type
    - don't want to add another point type to the world
    - will use the .net standard 2.0 Point type when we upgrade
    - the Font.Scale property is removed for now, but we will add it back with the drawing point type
 - the Font GetAdvances are now returning arrays
    - the spans were not necessary as the type is an explicit array
 - changed the casing of the various script properties
binding/HarfBuzzSharp.Shared/Blob.cs Outdated Show resolved Hide resolved
binding/HarfBuzzSharp.Shared/Face.cs Outdated Show resolved Hide resolved
binding/HarfBuzzSharp.Shared/Font.cs Outdated Show resolved Hide resolved
binding/HarfBuzzSharp.Shared/Font.cs Outdated Show resolved Hide resolved
binding/HarfBuzzSharp.Shared/NativeObject.cs Show resolved Hide resolved
@mikekinsman

This comment has been minimized.

@mikekinsman

This comment has been minimized.

@mikekinsman

This comment has been minimized.

@mattleibow mattleibow merged commit 1150190 into mono:master Mar 30, 2019
@Gillibald Gillibald deleted the harfbuzzUpdate branch April 1, 2019 06:19
@mattleibow mattleibow added this to the v1.68.1 milestone Nov 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants