R-macos / recipes

System for building static dependent libraries for CRAN packages
44 stars 17 forks source link

Build freetype without harfbuzz #23

Closed jeroen closed 2 years ago

jeroen commented 2 years ago

Your current version has an hidden dependency on harfbuzz (as shown from the .pc file and linker errors). The easiest solution is to not depend on harfbuzz (such that the flags and behavior are consistent with xquartz and other builds).

s-u commented 2 years ago

Freetype can be built with or without harfbuzz. The former requires a two-pass bootstrap which is used for R releases:

./build.sh freetype
./build.sh harfbuzz
rm -rf build/freetype-2.* 
./build.sh freetype

This kind of bootstrapping has caused headaches for many people and is a known issue [1]. Some have ways to perform such a bootstrap (e.g. Fedora). If we explicitly disabled harfbuzz, we could not do the above, and FreeType needs Harfbuzz to be able to render ligatures and other things correctly, so it is highly desirable.

The remaining issue is that we do not declare the dependency if FT is built against HB. We can work around this by adding Suggests: in the description and then conditionally record it in BuiltWith: at build time if used. So I'll close this PR, but will open an issue on Suggests:.