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] Use meson and update to 2.7.0 #12860

Merged
merged 16 commits into from
Jan 25, 2021
Merged

Conversation

vejmartin
Copy link
Contributor

Switches from CMake to meson for the build system and updates to 2.7.0.
Drops glib dependency for harfbuzz with a patch for pango based on https://gitlab.gnome.org/GNOME/pango/-/commit/d7c66dd4387fb6c3e79d87a35264b99e7f21a477 and https://gitlab.gnome.org/GNOME/pango/-/commit/5ec478dac9146175de7ba4a1f88ebbab963f4c0f.

@JackBoosY JackBoosY added the category:port-update The issue is with a library, which is requesting update new revision label Aug 12, 2020
@vejmartin vejmartin force-pushed the harfbuzz branch 3 times, most recently from 04f491b to 44dc3fc Compare August 22, 2020 08:40
@vejmartin vejmartin marked this pull request as ready for review August 23, 2020 13:08
ports/harfbuzz/harfbuzzConfig.cmake.in Show resolved Hide resolved
ports/libass/CMakeLists.txt Outdated Show resolved Hide resolved
ports/icu/portfile.cmake Outdated Show resolved Hide resolved
ports/libmupdf/CMakeLists.txt Outdated Show resolved Hide resolved
ports/pango/0002-remove-hb-glib.diff Show resolved Hide resolved
ports/qt5-base/portfile.cmake Outdated Show resolved Hide resolved
ports/skia/portfile.cmake Outdated Show resolved Hide resolved
@JackBoosY JackBoosY added the depends:vm-update PR contains changes to the VM provisioning scripts label Aug 24, 2020
@JackBoosY
Copy link
Contributor

@Neumann-A Could you please review this PR?

Thanks.

@Neumann-A
Copy link
Contributor

@JackBoosY: Not reviewing... will be superseded by #13100. I would also not merge this one until #12945 is merged and user compile flags get forwarded to meson. Otherwise the users cmake toolchains might be ignored.

@LilyWangL LilyWangL added the depends:different-pr This PR or Issue depends on a PR which has been filed label Aug 25, 2020
@LilyWangL
Copy link
Contributor

@vejmartin Thanks for your PR. Could you resolve the conflicts?

@vejmartin
Copy link
Contributor Author

vejmartin commented Oct 12, 2020

Could you resolve the conflicts?

@LilyWangL, Yes, I'll resolve them :)

@vejmartin vejmartin force-pushed the harfbuzz branch 2 times, most recently from d2ee1b6 to 20f7fd0 Compare October 19, 2020 19:56
@Neumann-A
Copy link
Contributor

@vejmartin I needed it to get CI to build gtk for x64-linux in that PR. Meson is not clever enough to extract the correct link info out of CMake and I already new that switching harfbuzz to meson would automatically install correct pkg-config files which would be used instead of the cmake configs and lead to a successful CI run. I don't mind if this gets merged before my PR.

@vejmartin
Copy link
Contributor Author

@Neumann-A, that makes sense. Thanks for the clarification.

@vejmartin vejmartin requested a review from JackBoosY January 23, 2021 01:45
Copy link
Contributor

@JackBoosY JackBoosY left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One last question: I found that ragel is not on the harfbuzz dependency list. Is this expected?

@vejmartin
Copy link
Contributor Author

One last question: I found that ragel is not on the harfbuzz dependency list. Is this expected?

@JackBoosY, it looks like ragel isn't required for building the library, src:

ragel = find_program('ragel', required: false)
if not ragel.found()
  warning('You have to install ragel if you are going to develop HarfBuzz itself')

@JackBoosY JackBoosY added info:reviewed Pull Request changes follow basic guidelines and removed requires:author-response labels Jan 25, 2021
@dan-shaw dan-shaw merged commit cc093a8 into microsoft:master Jan 25, 2021
Jimmy-Hu added a commit to Jimmy-Hu/vcpkg that referenced this pull request Jan 25, 2021
[harfbuzz] Use meson and update to 2.7.0 (microsoft#12860)
@ebraminio
Copy link
Contributor

Nice work, thanks! :)

@cenit
Copy link
Contributor

cenit commented Jan 29, 2021

One last question: I found that ragel is not on the harfbuzz dependency list. Is this expected?

@JackBoosY, it looks like ragel isn't required for building the library, src:

ragel = find_program('ragel', required: false)
if not ragel.found()
  warning('You have to install ragel if you are going to develop HarfBuzz itself')

But this will make the build different if found or not already on the system...

@cenit
Copy link
Contributor

cenit commented Jan 29, 2021

Anyway since this pr, I cannot build harfbuzz anymore. Curious to understand how on ci it works

edit: analysed build logs and our problem is due to an untested config in CI

@ebraminio
Copy link
Contributor

But this will make the build different if found or not already on the system...

Not much or any really, input of that task is hardly changes, its output is stored on the repo and that is what is used in Chromium checkout of the library.

@Neumann-A
Copy link
Contributor

@cenit Same error as: #15916?

@cenit
Copy link
Contributor

cenit commented Jan 29, 2021

Nope. It's related to the fact that in our CI we specify the config in the triplet, and the port has become incompatible with single-config build.
Again, I'd push @BillyONeal to create a CI pipeline to test "Release-only" builds for ports, maybe a x64-windows-release pipeline. It's a very common config, and it should be tested. At least, it should not regress!

@Neumann-A
Copy link
Contributor

@cenit ah i see it is an error in vcpkg_install_meson not checking for the build type. I was wondering where the error was since I did not observe anything in the changes forbidding that.

@cenit
Copy link
Contributor

cenit commented Jan 29, 2021

yes, exactly.
I will open a PR now and hope for a quick merge

@BillyONeal
Copy link
Member

Again, I'd push @BillyONeal to create a CI pipeline to test "Release-only" builds for ports, maybe a x64-windows-release pipeline. It's a very common config, and it should be tested. At least, it should not regress!

I don't believe we have enough hardware available to double the test matrix like that.

strega-nil-ms pushed a commit that referenced this pull request Apr 26, 2021
* update glib to meson

* update ci baseline

* update glib to 2.66.3
remove cmakelists

* fix some minor meson issue but meson is still a mess

* add_bin_to_path to vcpkg_install_meson

* regen docs

* try fixing/touching all glib dependent ports

* fix libsigcpp-3 version

* fix glibmm

* fix gmime

* fix libcroco

* update libnice

* fix atk build

* update harfbuzz

* fix few builds

* update libxmlpp

* fix gdk-pixbuf

* fix gts

* gts add patch

* remove old libsigcpp

* add missing comma

* fix supports logic

* fix name mismatch

* restore original ci baseline.

* fix a lot of small details.
increment controls.

* fix harfbuzz & glib

* bump port version

* update port_versions

* fix version field

* update versions

* fix glib in harfbuzz

* update port versions

* silly uppercase type

* update port-versions

* fix cairo build

* update version

* fix atk

* update atk port-verisons

* fix gts public includes

* update versions

* fix cairomm

* fix pango

* fix ignition

* update versions.

* fix gtk

* fix librsvg

* update versions

* fix atk linux

* fix libgpod

* update versions

* fix lcm

* fix librsvg

* update pango and pangomm

* update pango to meson

* more updates

* update pixman

* fix cairo

* fix cairo

* some fixes

* reorder meson a bit

* add none.txt for meson

* fix x86_x64 to x86 "cross" builds

* add tiff pkgconfig

* update gdk-pixbuf

* fix tiff and jpeg

* add graphene

* fix gdk-pixbuf

* add sassc

* update gtk

* fix cairo complete build

* add harfbuzz inlcude in pango since meson does not add it into pkgconfig.

* fix gtk build. Remaining issue fix install script.

* fix gtk build

* fix io2d

* add supports field

* fix cartographer?

* fix librsvg build

* fix gtk build

* fix cartographer

* fix sassc on linux

* fix tiff and libjpeg pc files

* fix pixman x86

* _isnanf is undefined on arm-

* merge fix for make on arm64

* fix gdk-pixbuf on arm64-windows

* pixman remove test/demos.
should fix it on osx.

* [vcpkg_install_meson] add bin to path to run code generators

* [vcpkg_configure_meson]
deactivate native compiler in cross builds
make x86 on x86_x64 a native instead of a cross build
(as long as we are not building for UWP)

* pixman reenable UWP support.

* pixman reenable arm support

* add pixman:arm-uwp=fail to baseline

* update gtkmm

* remove double whitespaces

* gtk baseline
gtk dependency on cairo x11
remove double spaces in flags

* fix linux build

* native none again

* cairo fix cairo-script.pc

* comment out patch since the cairo changes should have fixed it.

* disable wayland backend in GTK since CI is missing system packages

* silly typo in cairo pc file correction
install lzo pc on windows

* remove double spaces in _FLAGS
remove unnecessary comments

* actually disabling wayland backend

* fix glib codegen issue having the wrong path

* try to fix paths in glib codegen

* integrate changes form #12860

* add the uwp patch back in

* deactivate extra harfbuzz shapers.

* vcpkg x-add-version --all --overwrite-version

* remove patches in tesseract.

* fix version

* rerun add-version

* add libgpod:x64-linux=fail to baseline due to missing system tools/libraries

* change regex to take double - into account.

* run x-add-version

* run format-manifest

* add missing removal of multiple spaces back into the regex

* remove ws diff change

* fix gtkmm the upstream way

* remove ws to reduce diff

* make glib build on osx

* format manifest

* run x-add-version

* add pthread dependency

* update baseline due to glib compiling on osx now.

* add meson as a dep to glib

* - add glib host dependencies
- switch to manifest of touched ports

* switch to manifest.

* [libxml2] add gnuinstalldirs

* [libxml2] add missing include of GNUInstallDirs

* add version info

* add include dir to pc files ....

* update version

* add UWP as crosscompiling target

* Apply suggestions from code review

* trying to fix cairo pthread detection on osx.

* fix libmicrohttpd by adding the required system frameworks on osx

* fix poppler by not removing the CXX standard

* fix missing coretext header from harfbuzz in pano

* fix formating issues

* fix librsvg on osx

* revert version changes

* bump version

* version stuff.

* fix graphene version stuff

* fix version stuff

* removing ports from ci baseline to cause me pain

* move cairomm:x64-linux=fail
to gtkmm:x64-linx=fail
remove pangomm:x64-osx=fail

* fix typo

* revert ws changes to vcpkg_install_meson

* update port version after merge

* version stuff

* fix fluidsynth by adding vcpkg_check_features

* move cairo to ci baseline on osx

* version stuff

* fluidsynth corrections

* more version stuff

* apply code review changes

* clean version stuff.

* update version stuff

* code review cleanup

* version stuff

* formating

* update version stuff again

* remove gdi again

* version stuff

* version stuff

* version baseline

* Apply strega-nil suggestions from code review

* run x-add-version

* reset versions to upstream/master

* v8 CONTROL -> json

* reset fluidsynth to upstream/master

* first batch of version-string -> version conversion

* second and last batch of version-string -> version conversions

* update version stuff

* disable gdi feature in harfbuzz (missing user32 linkage in qt5-base)

* version stuff

* Apply suggestions from code review

Co-authored-by: NancyLi1013 <[email protected]>

* Apply suggestions from code review

Co-authored-by: NancyLi1013 <[email protected]>

* more CR stuff

* update versions

* back out provision changes so that pr can be merged.

Co-authored-by: nicole mazzuca <[email protected]>
Co-authored-by: NancyLi1013 <[email protected]>
Sungeun0318 pushed a commit to Sungeun0318/-vcpkg that referenced this pull request May 15, 2024
* Add meson from microsoft/vcpkg#12860

* Add autoconf-archive from microsoft/vcpkg#13081

* Add kf5windowsystem libs from microsoft/vcpkg#13467

* Open the FTP and SFTP ports from microsoft/vcpkg#14412

* Add libxcb-util0-dev from microsoft/vcpkg#14678

* Add libasound2-dev from microsoft/vcpkg#14774

* Remove no longer necessary apt-mark calls.

* Update nasm on Linux.

* Fix longstanding bug where Storage was publicly accessible and change to generate SAS token rather than File Share

* Delete no longer necessary azure storage firewall rules.

* Install the newer Windows SDK with the VS installer instead of manually.

* Install the VS2015 and VS2017 compilers.

* Update Powershell-Core to 7.1.0.

* Update source of WDK.

* Update pools.

* [opentracing] Repair arm64-windows failures caused by mojibake in `expected.hpp` and errors in opentracing-cpp's lint for arm64 where it thinks exceptions are disabled when they are enabled.

Fixes:
C:\Dev\vcpkg\buildtrees\opentracing\src\b67575dab0-0250653c81.clean\3rd_party\include\opentracing/expected/expected.hpp(1): warning C4828: The file contains a character starting at offset 0x4a77 that is illegal in the current source character set (codepage 65001).

Fixes:
D:\buildtrees\opentracing\src\b67575dab0-0250653c81.clean\include\opentracing/tracer.h:223:5: error: cannot use 'try' with exceptions disabled [clang-diagnostic-error]
    try {
    ^

* [mmloader] Patch out overrides of CMAKE_C_FLAGS and CMAKE_CXX_FLAGS that inserted /WX.

Note that this port sets /GS-, possibly because it may be for authoring shellcode.

* Bump storage API version to 2020-04-08.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-update The issue is with a library, which is requesting update new revision info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[harfbuzz] Use meson and update to 2.7.0
9 participants