<div dir="ltr"><div dir="ltr">> My conclusion was that ICU is not needed, but maybe it has some advantages,</div><div dir="ltr"><br></div><div>It will be a good idea if someone ships ICU anyway, they use their ICU (or glib, which can provide unicode callbacks also) instead having extra a harfbuzz buildin UCDN, at least for size reduction reasons.</div><div><br></div><div>> graphite2, is becoming less and less important [...] with recent OpenType developments.</div><div><br></div><div>And the implementation of AAT on HarfBuzz, I believe</div><div><br></div><div>> Glib is needed for running a large part of the test suite</div><div><br></div><div>It can provide unicode callbacks also as just said before.<br></div><div><br></div><div>> It is not clear to me what are GObject and Introspection needed for; it would be good to clarify that.</div><div><br></div><div>Roughly, gnome way of writing language bindings, ie. make non C/C++ language users able to interact with the library with Gnome provided facilities. Not needed for C/C++ or users don't use gobject introspection anyway.<br></div><div dir="ltr"><br></div><div dir="ltr">> Btw, the information about "Building on Windows" is IMO outdated:<br>
> nowadays one can use the "normal" Unix configure/make steps assuming<br>
> one has MSYS and MinGW installed. That's what I did. There should be<br>
> no need anymore for any Windows-specific build procedures.</div><div dir="ltr"><br></div><div dir="ltr">Not everyone will agree with you on that I guess, maybe different use-cases or something, as you see vcpkg project <a href="https://github.com/Microsoft/vcpkg/graphs/contributors">https://github.com/Microsoft/vcpkg/graphs/contributors</a> is still a pretty busy project, that's why I suggest vcpkg for non-msys Windows users, even instead directly using our cmake on Windows. Vcpkg itself uses our cmake but can switch to meson if needed and it can target Linux in addition to Windows, for use-cases I am not aware of.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 8, 2019 at 12:52 PM Eli Zaretskii <<a href="mailto:eliz@gnu.org">eliz@gnu.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> From: Nathan Willis <<a href="mailto:nwillis@glyphography.com" target="_blank">nwillis@glyphography.com</a>><br>
> Date: Mon, 4 Feb 2019 12:28:02 +0000<br>
> Cc: <a href="mailto:harfbuzz@lists.freedesktop.org" target="_blank">harfbuzz@lists.freedesktop.org</a><br>
> <br>
> On Sat, Jan 26, 2019 at 5:35 PM Eli Zaretskii <<a href="mailto:eliz@gnu.org" target="_blank">eliz@gnu.org</a>> wrote:<br>
> <br>
> > 1) It would be good to have some guidance in some README or in the<br>
> > HTML docs regarding the optional dependencies and configuration<br>
> > options, and their significance. For example, it turns out Glib is<br>
> > needed to run a large portion of the test suite, something that wasn't<br>
> > clear (I initially concluded that I didn't need Glib at all). Also,<br>
> > hb-shape is not built if Glib isn't available. Similarly, hb-view is<br>
> > not build unless both Cairo and cairo-ft are available.<br>
> ><br>
> ><br>
> I added <a href="https://harfbuzz.github.io/building.html#configuration" rel="noreferrer" target="_blank">https://harfbuzz.github.io/building.html#configuration</a> a few weeks<br>
> ago; would you mind elaborating on what is missing there from your POV?<br>
<br>
Thanks for adding this, and sorry for the long delay in responding.<br>
<br>
The information you added tells when to use the optional configure<br>
switches. That is important, but there's a more general issue of what<br>
optional dependencies are needed for which parts of HarfBuzz's<br>
functionalities. This is important for someone who wants to build<br>
HarfBuzz with the minimal set of dependencies, but without losing any<br>
functionality important for one's use case. Without a good<br>
understanding of these issues, one cannot easily decide on which of<br>
the configure switches to use, and more importantly what packages need<br>
to be installed before building HarfBuzz.<br>
<br>
In response to my questions, Khaled once provided some of the<br>
information about that. I now combine that below with what I learned<br>
while building HarfBuzz:<br>
<br>
. ICU is needed for accessing Unicode character properties; UCDN is<br>
the built-in alternative to that which has no external<br>
dependencies. My conclusion was that ICU is not needed, but maybe<br>
it has some advantages, in which case it would be good to describe<br>
them.<br>
<br>
. Cairo is needed for command-line tools (so can be skipped if one<br>
only wants the library). Note that Cairo alone is not enough for<br>
building the command-line tools, you also need cairo-ft, and for<br>
hb-shape one also needs Glib.<br>
<br>
. Freetype is one of two font callbacks; the other is built-in and<br>
has no external dependencies. The decision whether to use<br>
Freetype largely depends on whether the program(s) to be linked<br>
against HarfBuzz already use Freetype.<br>
<br>
. Fontconfig is only needed for command-line tools.<br>
<br>
. Graphite2 is becoming less and less important, as fonts which<br>
require that are rare, and their importance for minority scripts<br>
is diminishing with recent OpenType developments.<br>
<br>
. Glib is needed for running a large part of the test suite, so if<br>
one decides not to build with Glib, a separate build with Glib<br>
just for running the test suite is a good idea.<br>
<br>
. Python is required (and should be on PATH) for most of the test<br>
suite.<br>
<br>
. It is not clear to me what are GObject and Introspection needed<br>
for; it would be good to clarify that.<br>
<br>
Btw, the information about "Building on Windows" is IMO outdated:<br>
nowadays one can use the "normal" Unix configure/make steps assuming<br>
one has MSYS and MinGW installed. That's what I did. There should be<br>
no need anymore for any Windows-specific build procedures.<br>
<br>
Thanks, and let me know if I can help more with this documentation<br>
effort.<br>
_______________________________________________<br>
HarfBuzz mailing list<br>
<a href="mailto:HarfBuzz@lists.freedesktop.org" target="_blank">HarfBuzz@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/harfbuzz" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
</blockquote></div>