[harfbuzz] Various fixups#51407
Conversation
- Add CMake targets harfbuzz::harfbuzz-gpu, harfbuzz-raster, harfbuzz-vector - Enable OBJC/OBJCXX on Apple targets
- The /bigobj flag is already set by upstream meson.build
|
bb34050 to
8af8d83
Compare
|
Close and reopen to see if I fixed "check for common mistakes" Sorry for the disruption! |
|
Well the check fails but this time it's actually correct :) ajtribick#1 |
|
Trying an experiment here: since the Meson build writes all the dependencies to the .pc files, write the CMake targets in terms of |
That's a barrier for Windows users. It is easy to have pkg-config when building the port, but unusual when using it in the top-level project. (I know that it can be wired to host port pkgconf, but...) What could be explored is transforming pc files to cmake link libs as part of the port. But AFAICT there is no example. |
|
I also think every new CMake target should be really prefixed as unofficial. (Too late to change for harfbuzz::harfbuzz.) Unless there is an official variant. |
Yeah, I figured it would be something like that. Ah, well.
Well, these are the targets you'd end up with if vcpkg built with the upstream CMakeLists.txt file instead of the Meson build, so these aren't entirely fictitious targets. On the other hand, the upstream CMake does have the "not actively supported" warning, and vcpkg is synthesizing the targets itself instead of actually building with CMake. I can be persuaded either way here. |
|
For now I'm reverting the CMake target updates: as far as I can see, they're no more broken than they were before the 14.2.0 upgrade. Things that should be fixed in some future update: several optional dependencies (cairo, directwrite, maybe others) never get linked to the harfbuzz::harfbuzz target, the freetype dependency is always linked to harfbuzz::harfbuzz regardless of whether or not harfbuzz was compiled with this, many of the auxiliary library targets are missing. But hopefully this can fix the reported cross-compile issue in the meantime (i.e. not letting the perfect be the enemy of the slightly better) |
|
Thank you everyone, for your efforts 👍 |
|
Build failure on x64_windows_static_md This seems to be a random error copying the file in the gen-gpu-shader-artifacts.py script. Testing locally, it looks like the generated output matches, but I see that the script is operating on the files in text mode but the file comparison in the exception path is binary. What's the line-ending conversion policy used by the vcpkg git wrappers? |
|
Raised upstream: harfbuzz/harfbuzz#5967 Might be worth patching the build script to avoid running gen-gpu-shader-artifacts.py - the outputs are already checked in. But will wait for x64_windows to finish building qtwebengine twice just in case some other errors show up. |
|
Hey @ajtribick I've tested your changes, and they do not fix #51404 |
|
Ah sorry I've imported the wrong branch... |
|
After compiling the correct branch, I still have the same error. |
|
@abique - I based the fix on what was done to fix a similar issue in glib, so my question would be whether glib works in your setup also? What I have noticed is that the template https://github.com/microsoft/vcpkg/blob/master/ports/vcpkg-tool-meson/meson.template.in uses the spelling OBJCPP in the substitutions, but everywhere else there is OBJCXX. This might be the cause but I don't have any Apple machines to test this with. @BillyONeal are you able to help out here? |
Add CMake targets harfbuzz::harfbuzz-gpu, harfbuzz-raster, harfbuzz-vector./vcpkg x-add-version --alland committing the result.