[HarfBuzz] Building and testing HarfBuzz 2.3.0 on MinGW

Ebrahim Byagowi ebraminio at gmail.com
Fri Feb 8 12:32:46 UTC 2019


> My conclusion was that ICU is not needed, but maybe it has some
advantages,

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.

> graphite2, is becoming less and less important [...] with recent OpenType
developments.

And the implementation of AAT on HarfBuzz, I believe

> Glib is needed for running a large part of the test suite

It can provide unicode callbacks also as just said before.

> It is not clear to me what are GObject and Introspection needed for; it
would be good to clarify that.

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.

> Btw, the information about "Building on Windows" is IMO outdated:
> nowadays one can use the "normal" Unix configure/make steps assuming
> one has MSYS and MinGW installed.  That's what I did.  There should be
> no need anymore for any Windows-specific build procedures.

Not everyone will agree with you on that I guess, maybe different use-cases
or something, as you see vcpkg project
https://github.com/Microsoft/vcpkg/graphs/contributors 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.

On Fri, Feb 8, 2019 at 12:52 PM Eli Zaretskii <eliz at gnu.org> wrote:

> > From: Nathan Willis <nwillis at glyphography.com>
> > Date: Mon, 4 Feb 2019 12:28:02 +0000
> > Cc: harfbuzz at lists.freedesktop.org
> >
> > On Sat, Jan 26, 2019 at 5:35 PM Eli Zaretskii <eliz at gnu.org> wrote:
> >
> > > 1) It would be good to have some guidance in some README or in the
> > > HTML docs regarding the optional dependencies and configuration
> > > options, and their significance.  For example, it turns out Glib is
> > > needed to run a large portion of the test suite, something that wasn't
> > > clear (I initially concluded that I didn't need Glib at all).  Also,
> > > hb-shape is not built if Glib isn't available.  Similarly, hb-view is
> > > not build unless both Cairo and cairo-ft are available.
> > >
> > >
> > I added https://harfbuzz.github.io/building.html#configuration a few
> weeks
> > ago; would you mind elaborating on what is missing there from your POV?
>
> Thanks for adding this, and sorry for the long delay in responding.
>
> The information you added tells when to use the optional configure
> switches.  That is important, but there's a more general issue of what
> optional dependencies are needed for which parts of HarfBuzz's
> functionalities.  This is important for someone who wants to build
> HarfBuzz with the minimal set of dependencies, but without losing any
> functionality important for one's use case.  Without a good
> understanding of these issues, one cannot easily decide on which of
> the configure switches to use, and more importantly what packages need
> to be installed before building HarfBuzz.
>
> In response to my questions, Khaled once provided some of the
> information about that.  I now combine that below with what I learned
> while building HarfBuzz:
>
>   . ICU is needed for accessing Unicode character properties; UCDN is
>     the built-in alternative to that which has no external
>     dependencies.  My conclusion was that ICU is not needed, but maybe
>     it has some advantages, in which case it would be good to describe
>     them.
>
>   . Cairo is needed for command-line tools (so can be skipped if one
>     only wants the library).  Note that Cairo alone is not enough for
>     building the command-line tools, you also need cairo-ft, and for
>     hb-shape one also needs Glib.
>
>   . Freetype is one of two font callbacks; the other is built-in and
>     has no external dependencies.  The decision whether to use
>     Freetype largely depends on whether the program(s) to be linked
>     against HarfBuzz already use Freetype.
>
>   . Fontconfig is only needed for command-line tools.
>
>   . Graphite2 is becoming less and less important, as fonts which
>     require that are rare, and their importance for minority scripts
>     is diminishing with recent OpenType developments.
>
>   . Glib is needed for running a large part of the test suite, so if
>     one decides not to build with Glib, a separate build with Glib
>     just for running the test suite is a good idea.
>
>   . Python is required (and should be on PATH) for most of the test
>     suite.
>
>   . It is not clear to me what are GObject and Introspection needed
>     for; it would be good to clarify that.
>
> Btw, the information about "Building on Windows" is IMO outdated:
> nowadays one can use the "normal" Unix configure/make steps assuming
> one has MSYS and MinGW installed.  That's what I did.  There should be
> no need anymore for any Windows-specific build procedures.
>
> Thanks, and let me know if I can help more with this documentation
> effort.
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/harfbuzz
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/harfbuzz/attachments/20190208/88599e2b/attachment.html>


More information about the HarfBuzz mailing list