Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/harfbuzz/docs/usermanual-install-harfbuzz.xml @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/thirdparty/harfbuzz/docs/usermanual-install-harfbuzz.xml Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,349 @@ +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [ + <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'"> + <!ENTITY version SYSTEM "version.xml"> +]> +<chapter id="install-harfbuzz"> + <title>Installing HarfBuzz</title> + + <section id="download"> + <title id="download.title">Downloading HarfBuzz</title> + <para> + The HarfBuzz source code is hosted at <ulink + url="https://github.com/harfbuzz/harfbuzz">github.com/harfbuzz/harfbuzz</ulink>. + </para> + <para> + Tarball releases and Win32 binary bundles (which include the + libharfbuzz DLL, hb-view.exe, hb-shape.exe, and all + dependencies) of HarfBuzz can be downloaded from <ulink + url="https://github.com/harfbuzz/harfbuzz/releases">github.com/harfbuzz/harfbuzz/releases</ulink>. + </para> + <para> + Release notes are posted with each new release to provide an + overview of the changes. The project <ulink url="https://github.com/harfbuzz/harfbuzz/issues">tracks bug + reports and other issues</ulink> on GitHub. Discussion and + questions are welcome on <ulink + url="https://github.com/harfbuzz/harfbuzz/discussions">GitHub</ulink> as well. + </para> + <para> + The API included in the <filename + class='headerfile'>hb.h</filename> file will not change in a + compatibility-breaking way in any release. However, other, + peripheral headers are more likely to go through minor + modifications. We will do our best to never change APIs in an + incompatible way. We will <emphasis>never</emphasis> break the ABI. + </para> + </section> + + <section id="building"> + <title>Building HarfBuzz</title> + + <section id="building.linux"> + <title>Building on Linux</title> + <para> + <emphasis>(1)</emphasis> To build HarfBuzz on Linux, you must first install the + development packages for FreeType, Cairo, and GLib. The exact + commands required for this step will vary depending on + the Linux distribution you use. + </para> + <para> + For example, on an Ubuntu or Debian system, you would run: + <programlisting><command>sudo apt install</command> <package>gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev</package></programlisting> + On Fedora, RHEL, CentOS, or other Red-Hat–based systems, you would run: + <programlisting><command>sudo yum install</command> <package>gcc gcc-c++ freetype-devel glib2-devel cairo-devel</package></programlisting> + + </para> + + <para> + <emphasis>(2)</emphasis> The next step depends on whether you + are building from the source in a downloaded release tarball or + from the source directly from the git repository. + </para> + <para> + <emphasis>(2)(a)</emphasis> If you downloaded the HarfBuzz + source code in a tarball, you can now extract the source. + </para> + <para> + From a shell in the top-level directory of the extracted source + code, you can run <command>meson build</command> followed by + <command>meson compile -C build</command> as with any other standard package. + </para> + <para> + This should leave you with a shared + library in the <filename>src/</filename> directory, and a few + utility programs including <command>hb-view</command> and + <command>hb-shape</command> under the <filename>util/</filename> + directory. + </para> + <para> + <emphasis>(2)(b)</emphasis> If you are building from the source in the HarfBuzz git + repository, rather than installing from a downloaded tarball + release, then you must install two more auxiliary tools before you + can build for the first time: <package>pkg-config</package>. + </para> + <para> + On Ubuntu or Debian, run: + <programlisting><command>sudo apt-get install</command> <package>meson pkg-config gtk-doc-tools</package></programlisting> + On Fedora, RHEL, CentOS, run: + <programlisting><command>sudo yum install</command> <package>meson pkgconfig gtk-doc</package></programlisting> + + </para> + <para> + With <package>pkg-config</package> installed, you can now run + <command>meson build</command> then + <command>meson compile -C build</command> to build HarfBuzz. + </para> + </section> + + + <section id="building.windows"> + <title>Building on Windows</title> + + <para> + <ulink url="https://mesonbuild.com/Getting-meson.html">Install meson</ulink> + and run (from the console) <command>meson build</command> (by default + bundled dependencies are not built, <command>--wrap-mode=default</command> + overrides this), then <command>meson compile -C build</command> to + build HarfBuzz. + </para> + </section> + + + <section id="building.macos"> + <title>Building on macOS</title> + + <para> + There are two ways to build HarfBuzz on Mac systems: MacPorts + and Homebrew. The process is similar to the process used on a + Linux system. + </para> + <para> + <emphasis>(1)</emphasis> You must first install the + development packages for FreeType, Cairo, and GLib. If you are + using MacPorts, you should run: + <programlisting><command>sudo port install</command> <package>freetype glib2 cairo</package></programlisting> + </para> + <para> + If you are using Homebrew, you should run: + <programlisting><command>brew install</command> <package>freetype glib cairo</package></programlisting> + </para> + <para> + <emphasis>(2)</emphasis> The next step depends on whether you are building from the + source in a downloaded release tarball or from the source directly + from the git repository. + </para> + <para> + <emphasis>(2)(a)</emphasis> If you are installing HarfBuzz + from a downloaded tarball release, extract the tarball and + open a Terminal in the extracted source-code directory. Run: + <programlisting><command>meson build</command></programlisting> + followed by: + <programlisting><command>meson compile -C build</command></programlisting> + to build HarfBuzz. + </para> + <para> + <emphasis>(2)(b)</emphasis> Alternatively, if you are building + HarfBuzz from the source in the HarfBuzz git repository, then + you must install several built-time dependencies before + proceeding. + </para> + <para>If you are + using MacPorts, you should run: + <programlisting><command>sudo port install</command> <package>meson pkgconfig gtk-doc</package></programlisting> + to install the build dependencies. + </para> + <para>If you are using Homebrew, you should run: + <programlisting><command>brew install</command> <package>meson pkgconfig gtk-doc</package></programlisting> + Finally, you can run: + <programlisting><command>meson build</command></programlisting> + </para> + <para> + <emphasis>(3)</emphasis> You can now build HarfBuzz (on either + a MacPorts or a Homebrew system) by running: + <programlisting><command>meson build</command></programlisting> + followed by: + <programlisting><command>meson compile -C build</command></programlisting> + </para> + <para> + This should leave you with a shared + library in the <filename>src/</filename> directory, and a few + utility programs including <command>hb-view</command> and + <command>hb-shape</command> under the <filename>util/</filename> + directory. + </para> + + </section> + + <section id="configuration"> + <title>Configuration options</title> + + <para> + The instructions in the "Building HarfBuzz" section will build + the source code under its default configuration. If needed, + the following additional configuration options are available. + </para> + + <variablelist> + <?dbfo list-presentation="blocks"?> + <varlistentry> + <term><command>-Dglib=enabled</command></term> + <listitem> + <para> + Use <ulink url="https://developer.gnome.org/glib/">GLib</ulink>. <emphasis>(Default = auto)</emphasis> + </para> + <para> + This option enables or disables usage of the GLib + library. The default setting is to check for the + presence of GLib and, if it is found, build with + GLib support. GLib is native to GNU/Linux systems but is + available on other operating system as well. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Dgobject=enabled</command></term> + <listitem> + <para> + Use <ulink url="https://developer.gnome.org/gobject/stable/">GObject</ulink>. <emphasis>(Default = no)</emphasis> + </para> + <para> + This option enables or disables usage of the GObject + library. The default setting is to check for the + presence of GObject and, if it is found, build with + GObject support. GObject is native to GNU/Linux systems but is + available on other operating system as well. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Dcairo=enabled</command></term> + <listitem> + <para> + Use <ulink url="https://cairographics.org/">Cairo</ulink>. <emphasis>(Default = auto)</emphasis> + </para> + <para> + This option enables or disables usage of the Cairo + graphics-rendering library. The default setting is to + check for the presence of Cairo and, if it is found, + build with Cairo support. + </para> + <para> + Note: Cairo is used only by the HarfBuzz + command-line utilities, and not by the HarfBuzz library. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Dicu=enabled</command></term> + <listitem> + <para> + Use the <ulink url="http://site.icu-project.org/home">ICU</ulink> library. <emphasis>(Default = auto)</emphasis> + </para> + <para> + This option enables or disables usage of the + <emphasis>International Components for + Unicode</emphasis> (ICU) library, which provides access + to Unicode Character Database (UCD) properties as well + as normalization and conversion functions. The default + setting is to check for the presence of ICU and, if it + is found, build with ICU support. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Dgraphite=enabled</command></term> + <listitem> + <para> + Use the <ulink url="http://graphite.sil.org/">Graphite2</ulink> library. <emphasis>(Default = no)</emphasis> + </para> + <para> + This option enables or disables usage of the Graphite2 + library, which provides support for the Graphite shaping + model. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Dfreetype=enabled</command></term> + <listitem> + <para> + Use the <ulink url="https://www.freetype.org/">FreeType</ulink> library. <emphasis>(Default = auto)</emphasis> + </para> + <para> + This option enables or disables usage of the FreeType + font-rendering library. The default setting is to check for the + presence of FreeType and, if it is found, build with + FreeType support. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Dgdi=enabled</command></term> + <listitem> + <para> + Use the <ulink + url="https://docs.microsoft.com/en-us/windows/desktop/intl/uniscribe">Uniscribe</ulink> + library (experimental). <emphasis>(Default = no)</emphasis> + </para> + <para> + This option enables or disables usage of the Uniscribe + font-rendering library. Uniscribe is available on + Windows systems. Uniscribe support is used only for + testing purposes and does not need to be enabled for + HarfBuzz to run on Windows systems. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Ddirectwrite=enabled</command></term> + <listitem> + <para> + Use the <ulink url="https://docs.microsoft.com/en-us/windows/desktop/directwrite/direct-write-portal">DirectWrite</ulink> library (experimental). <emphasis>(Default = no)</emphasis> + </para> + <para> + This option enables or disables usage of the DirectWrite + font-rendering library. DirectWrite is available on + Windows systems. DirectWrite support is used only for + testing purposes and does not need to be enabled for + HarfBuzz to run on Windows systems. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Dcoretext=enabled</command></term> + <listitem> + <para> + Use the <ulink url="https://developer.apple.com/documentation/coretext">CoreText</ulink> library. <emphasis>(Default = no)</emphasis> + </para> + <para> + This option enables or disables usage of the CoreText + library. CoreText is available on macOS and iOS systems. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>-Ddocs=enabled</command></term> + <listitem> + <para> + Use <ulink url="https://github.com/GNOME/gtk-doc">GTK-Doc</ulink>. <emphasis>(Default = no)</emphasis> + </para> + <para> + This option enables the building of the documentation. + </para> + </listitem> + </varlistentry> + </variablelist> + </section> + + </section> +</chapter>
