[gtk+] docs: Update the 'building gtk' guide
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] docs: Update the 'building gtk' guide
- Date: Mon, 14 Aug 2017 21:33:08 +0000 (UTC)
commit 0803ee2df463b3a599108b9e111cede16e18ee0a
Author: Emmanuele Bassi <ebassi gnome org>
Date: Mon Aug 14 12:32:33 2017 +0100
docs: Update the 'building gtk' guide
Clean up for Meson.
docs/reference/gtk/building.sgml | 484 +++++++++++++-------------------------
1 files changed, 160 insertions(+), 324 deletions(-)
---
diff --git a/docs/reference/gtk/building.sgml b/docs/reference/gtk/building.sgml
index eb4232b..fd5f076 100644
--- a/docs/reference/gtk/building.sgml
+++ b/docs/reference/gtk/building.sgml
@@ -16,14 +16,7 @@ How to compile GTK+ itself
</refpurpose>
</refnamediv>
<refsect1 id="overview">
- <title>Building GTK+ on UNIX-like systems</title>
- <para>
- This chapter covers building and installing GTK+ on UNIX and
- UNIX-like systems such as Linux. Compiling GTK+ on Microsoft
- Windows is different in detail and somewhat more difficult to
- get going since the necessary tools aren't included with
- the operating system.
- </para>
+ <title>Building GTK+</title>
<para>
Before we get into the details of how to compile GTK+, we should
mention that in many cases, binary packages of GTK+ prebuilt for
@@ -35,64 +28,51 @@ How to compile GTK+ itself
already.
</para>
<para>
- On UNIX-like systems GTK+ uses the standard GNU build system,
- using <application>autoconf</application> for package
- configuration and resolving portability issues,
- <application>automake</application> for building makefiles that
- comply with the GNU Coding Standards, and
- <application>libtool</application> for building shared libraries
- on multiple platforms.
+ In order to build GTK+, you will need <application>meson</application>
+ installed on your system. On Linux, and other UNIX-like operating
+ systems, you will also need <application>ninja</application>. This
+ guide does not cover how to install these two requirements, but you
+ can refer to the <ulink url="http://mesonbuild.com">Meson website</ulink>
+ for more information. The <ulink url="https://ninja-build.org">Ninja</ulink>
+ build tool is also usable on various operating systems, so we will
+ refer to it in the examples.
</para>
<para>
- If you are building GTK+ from the distributed source packages,
- then you won't need these tools installed; the necessary pieces
- of the tools are already included in the source packages. But
- it's useful to know a bit about how packages that use these
- tools work. A source package is distributed as a
- <literal>tar.bz2</literal> or <literal>tar.xz</literal> file
- which you unpack into a directory full of the source files as follows:
+ If you are building GTK+ from a source distribution or from a Git
+ clone, you will need to use <application>meson</application> to
+ configure the project. The most commonly useful argument is the
+ <systemitem>--prefix</systemitem> one, which determines where the
+ files will go once installed. To install GTK+ under a prefix
+ like <filename>/opt/gtk</filename> you would run Meson as:
</para>
- <programlisting>
- tar xvfj gtk+-3.2.0.tar.bz2
- tar xvfJ gtk+-3.2.0.tar.xz
- </programlisting>
+ <informalexample>
+ <programlisting>
+ meson --prefix /opt/gtk builddir
+ </programlisting>
+ </informalexample>
<para>
- In the toplevel directory that is created, there will be
- a shell script called <filename>configure</filename> which
- you then run to take the template makefiles called
- <filename>Makefile.in</filename> in the package and create
- makefiles customized for your operating system.
- The <filename>configure</filename> script can be passed
- various command line arguments to determine how the package
- is built and installed. The most commonly useful argument is
- the <systemitem>--prefix</systemitem> argument which
- determines where the package is installed. To install a package
- in <filename>/opt/gtk</filename> you would run configure as:
+ Meson will create the <filename>builddir</filename> directory and
+ place all the build artefacts there.
</para>
- <programlisting>
- ./configure --prefix=/opt/gtk
- </programlisting>
<para>
- A full list of options can be found by running
- <filename>configure</filename> with the
- <systemitem>--help</systemitem> argument. In general, the defaults are
- right and should be trusted. After you've run
- <filename>configure</filename>, you then run the
- <command>make</command> command to build the package and install
- it.
+ You can get a list of all available options for the build by
+ running <application>mesonconf</application>.
</para>
- <programlisting>
- make
- make install
- </programlisting>
+ <para>
+ After Meson successfully configured the build directory, you then
+ can run the build, using Ninja:
+ </para>
+ <informalexample>
+ <programlisting>
+ cd builddir
+ ninja
+ ninja install
+ </programlisting>
+ </informalexample>
<para>
If you don't have permission to write to the directory you are
installing in, you may have to change to root temporarily before
- running <literal>make install</literal>. Also, if you are
- installing in a system directory, on some systems (such as
- Linux), you will need to run <command>ldconfig</command> after
- <literal>make install</literal> so that the newly installed
- libraries will be found.
+ running <literal>ninja install</literal>.
</para>
<para>
Several environment variables are useful to pass to set before
@@ -131,35 +111,21 @@ How to compile GTK+ itself
<para>
Before you can compile the GTK+ widget toolkit, you need to have
various other tools and libraries installed on your
- system. The two tools needed during the build process (as
- differentiated from the tools used in when creating GTK+
- mentioned above such as <application>autoconf</application>)
- are <command>pkg-config</command> and GNU make.
+ system. Dependencies of GTK+ have their own build systems, so
+ you will need to refer to their own installation instructions.
+ </para>
+ <para>
+ A particular important tool used by GTK+ to find its dependencies
+ is <application>pkg-config</application>.
+ </para>
+ <para>
+ <ulink url="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</ulink>
+ is a tool for tracking the compilation flags needed for
+ libraries that are used by the GTK+ libraries. (For each
+ library, a small <literal>.pc</literal> text file is installed
+ in a standard location that contains the compilation flags
+ needed for that library along with version number information.)
</para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink
- url="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</ulink>
- is a tool for tracking the compilation flags needed for
- libraries that are used by the GTK+ libraries. (For each
- library, a small <literal>.pc</literal> text file is installed
- in a standard location that contains the compilation flags
- needed for that library along with version number information.)
- </para>
- </listitem>
- <listitem>
- <para>
- The GTK+ makefiles will mostly work with different versions
- of <command>make</command>, however, there tends to be
- a few incompatibilities, so the GTK+ team recommends
- installing <ulink url="https://www.gnu.org/software/make">GNU
- make</ulink> if you don't already have it on your system
- and using it. (It may be called <command>gmake</command>
- rather than <command>make</command>.)
- </para>
- </listitem>
- </itemizedlist>
<para>
Some of the libraries that GTK+ depends on are maintained by
by the GTK+ team: GLib, GdkPixbuf, Pango, ATK and GObject Introspection.
@@ -171,17 +137,14 @@ How to compile GTK+ itself
The GLib library provides core non-graphical functionality
such as high level data types, Unicode manipulation, and
an object and type system to C programs. It is available
- from the <ulink url="https://ftp.gtk.org/pub/glib/">GTK+
- FTP site</ulink> or
- <ulink url="https://download.gnome.org/sources/glib/">here</ulink>.
+ from <ulink url="https://download.gnome.org/sources/glib/">here</ulink>.
</para>
</listitem>
<listitem>
<para>
The <ulink url="https://git.gnome.org/browse/gdk-pixbuf/">GdkPixbuf library</ulink>
provides facilities for loading images in a variety of file formats.
- It is available
- <ulink url="https://download.gnome.org/sources/gdk-pixbuf/">here</ulink>.
+ It is available <ulink url="https://download.gnome.org/sources/gdk-pixbuf/">here</ulink>.
</para>
</listitem>
<listitem>
@@ -250,15 +213,22 @@ How to compile GTK+ itself
<para>
<ulink url="https://www.cairographics.org">Cairo</ulink>
is a graphics library that supports vector graphics and image
- compositing. Both Pango and GTK+ use cairo for all of their
- drawing.
+ compositing. Both Pango and GTK+ use Cairo for drawing.
</para>
</listitem>
<listitem>
<para>
<ulink url="https://github.com/anholt/libepoxy">libepoxy</ulink>
is a library that abstracts the differences between different
- OpenGL libraries. GTK+ uses it for cross-platform GL support.
+ OpenGL libraries. GTK+ uses it for cross-platform GL support
+ and for its own drawing.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="https://github.com/anholt/libepoxy">Graphene</ulink>
+ is a library that provides vector and matrix types for 2D and
+ 3D transformations. GTK+ uses it internally for drawing.
</para>
</listitem>
<listitem>
@@ -284,35 +254,32 @@ How to compile GTK+ itself
<title>Building and testing GTK+</title>
<para>
First make sure that you have the necessary external
- dependencies installed: <command>pkg-config</command>, GNU make,
+ dependencies installed: <command>pkg-config</command>, Meson, Ninja,
the JPEG, PNG, and TIFF libraries, FreeType, and, if necessary,
libiconv and libintl. To get detailed information about building
these packages, see the documentation provided with the
- individual packages.
- On a Linux system, it's quite likely you'll have all of these
- installed already except for <command>pkg-config</command>.
+ individual packages. On any average Linux system, it's quite likely
+ you'll have all of these installed already, or they will be easily
+ accessible through your operating system package repositories.
</para>
<para>
Then build and install the GTK+ libraries in the order:
- GLib, Pango, ATK, then GTK+. For each library, follow the
- steps of <literal>configure</literal>, <literal>make</literal>,
- <literal>make install</literal> mentioned above. If you're
- lucky, this will all go smoothly, and you'll be ready to
- <link linkend="gtk-compiling">start compiling your own GTK+
- applications</link>. You can test your GTK+ installation
- by running the <command>gtk3-demo</command> program that
+ GLib, Cairo, Pango, ATK, then GTK+. For each library, follow the
+ instructions they provide, and make sure to share common settings
+ between them and the GTK+ build; if you are using a separate prefix
+ for GTK+, for instance, you will need to use the same prefix for all
+ its dependencies you build. If you're lucky, this will all go smoothly,
+ and you'll be ready to <link linkend="gtk-compiling">start compiling
+ your own GTK+ applications</link>. You can test your GTK+ installation
+ by running the <command>gtk4-demo</command> program that
GTK+ installs.
</para>
<para>
- If one of the <filename>configure</filename> scripts fails or running
- <command>make</command> fails, look closely at the error
- messages printed; these will often provide useful information
- as to what went wrong. When <filename>configure</filename>
- fails, extra information, such as errors that a test compilation
- ran into, is found in the file <filename>config.log</filename>.
- Looking at the last couple of hundred lines in this file will
- frequently make clear what went wrong. If all else fails, you
- can ask for help on the gtk-list mailing list.
+ If one of the projects you're configuring or building fails, look
+ closely at the error messages printed; these will often provide useful
+ information as to what went wrong. Every build system has its own
+ log that can help you understand the issue you're encountering. If all
+ else fails, you can ask for help on the gtk-list mailing list.
See <xref linkend="gtk-resources"/> for more information.
</para>
</refsect1>
@@ -320,129 +287,124 @@ How to compile GTK+ itself
<title>Extra Configuration Options</title>
<para>
- In addition to the normal options, the
- <command>configure</command> script for the GTK+ library
- supports a number of additional arguments. (Command line
- arguments for the other GTK+ libraries are described in
- the documentation distributed with the those libraries.)
+ In addition to the normal options provided by Meson, GTK+ defines
+ various arguments that modify what should be built.
<cmdsynopsis>
- <command>configure</command>
- <sbr/>
- <group>
- <arg choice="plain">--disable-modules</arg>
- <arg choice="plain">--enable-modules</arg>
- </group>
+ <command>meson</command>
<sbr/>
<group>
- <arg>--with-included-immodules=MODULE1,MODULE2,...</arg>
+ <arg choice="plain">-Ddisable-modules=true</arg>
+ <arg choice="plain">-Ddisable-modules=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-debug=[no/minimum/yes]</arg>
+ <arg choice="plain">-Dwith-included-immodules=MODULE1,MODULE2,...</arg>
+ <arg choice="plain">-Dwith-included-immodules=all</arg>
+ <arg choice="plain">-Dwith-included-immodules=none</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--disable-Bsymbolic</arg>
- <arg choice="plain">--enable-Bsymbolic</arg>
+ <arg choice="plain">-Denable-documentation=true</arg>
+ <arg choice="plain">-Denable-documentation=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--disable-xkb</arg>
- <arg choice="plain">--enable-xkb</arg>
+ <arg choice="plain">-Denable-man-pages=true</arg>
+ <arg choice="plain">-Denable-man-pages=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--disable-xinerama</arg>
- <arg choice="plain">--enable-xinerama</arg>
+ <arg choice="plain">-Denable-cups-print-backend=yes</arg>
+ <arg choice="plain">-Denable-cups-print-backend=no</arg>
+ <arg choice="plain">-Denable-cups-print-backend=auto</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--disable-gtk-doc</arg>
- <arg choice="plain">--enable-gtk-doc</arg>
+ <arg choice="plain">-Denable-papi-print-backend=yes</arg>
+ <arg choice="plain">-Denable-papi-print-backend=no</arg>
+ <arg choice="plain">-Denable-papi-print-backend=auto</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--disable-cups</arg>
- <arg choice="plain">--enable-cups</arg>
+ <arg choice="plain">-Denable-cloudprint-print-backend=yes</arg>
+ <arg choice="plain">-Denable-cloudprint-print-backend=no</arg>
+ <arg choice="plain">-Denable-cloudprint-print-backend=auto</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--disable-papi</arg>
- <arg choice="plain">--enable-papi</arg>
+ <arg choice="plain">-Denable-test-print-backend=yes</arg>
+ <arg choice="plain">-Denable-test-print-backend=no</arg>
+ <arg choice="plain">-Denable-test-print-backend=auto</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-xinput</arg>
- <arg choice="plain">--disable-xinput</arg>
+ <arg choice="plain">-Denable-colord=yes</arg>
+ <arg choice="plain">-Denable-colord=no</arg>
+ <arg choice="plain">-Denable-colord=auto</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-packagekit</arg>
- <arg choice="plain">--disable-packagekit</arg>
+ <arg choice="plain">-Denable-vulkan=yes</arg>
+ <arg choice="plain">-Denable-vulkan=no</arg>
+ <arg choice="plain">-Denable-vulkan=auto</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-x11-backend</arg>
- <arg choice="plain">--disable-x11-backend</arg>
+ <arg choice="plain">-Denable-x11-backend=true</arg>
+ <arg choice="plain">-Denable-x11-backend=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-win32-backend</arg>
- <arg choice="plain">--disable-win32-backend</arg>
+ <arg choice="plain">-Denable-xinerama=true</arg>
+ <arg choice="plain">-Denable-xinerama=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-quartz-backend</arg>
- <arg choice="plain">--disable-quartz-backend</arg>
+ <arg choice="plain">-Denable-win32-backend=true</arg>
+ <arg choice="plain">-Denable-win32-backend=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-broadway-backend</arg>
- <arg choice="plain">--disable-broadway-backend</arg>
+ <arg choice="plain">-Denable-quartz-backend=true</arg>
+ <arg choice="plain">-Denable-quartz-backend=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-wayland-backend</arg>
- <arg choice="plain">--disable-wayland-backend</arg>
+ <arg choice="plain">-Denable-broadway-backend=true</arg>
+ <arg choice="plain">-Denable-broadway-backend=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-mir-backend</arg>
- <arg choice="plain">--disable-mir-backend</arg>
+ <arg choice="plain">-Denable-wayland-backend=true</arg>
+ <arg choice="plain">-Denable-wayland-backend=false</arg>
</group>
<sbr/>
<group>
- <arg choice="plain">--enable-introspection=[no/auto/yes]</arg>
- </group>
- <sbr/>
- <group>
- <arg choice="plain">--enable-installed-tests</arg>
- <arg choice="plain">--disable-installed-tests</arg>
+ <arg choice="plain">-Denable-mir-backend=true</arg>
+ <arg choice="plain">-Denable-mir-backend=false</arg>
</group>
</cmdsynopsis>
</para>
<formalpara>
- <title><systemitem>--disable-modules</systemitem> and
- <systemitem>--enable-modules</systemitem></title>
+ <title><systemitem>disable-modules</systemitem></title>
<para>
Normally GTK+ will try to build the input method modules
as little shared libraries that are loaded on demand.
- The <systemitem>--disable-modules</systemitem> argument
+ The <systemitem>disable-modules</systemitem> option
indicates that they should all be built statically
into the GTK+ library instead. This is useful for
people who need to produce statically-linked binaries.
- If neither <systemitem>--disable-modules</systemitem> nor
- <systemitem>--enable-modules</systemitem> is specified,
+ If <systemitem>disable-modules</systemitem> is not specified,
then the <command>configure</command> script will try to
auto-detect whether shared modules work on your system.
</para>
</formalpara>
<formalpara>
- <title><systemitem>--with-included-immodules</systemitem></title>
+ <title><systemitem>with-included-immodules</systemitem></title>
<para>
This option allows you to specify which input method modules you
@@ -452,101 +414,18 @@ How to compile GTK+ itself
</formalpara>
<formalpara>
- <title><systemitem>--enable-debug</systemitem></title>
-
- <para>
- Turns on various amounts of debugging support. Setting this to
- 'no' disables g_assert(), g_return_if_fail(), g_return_val_if_fail() and all cast checks
between different object types. Setting it
- to 'minimum' disables only cast checks. Setting it to 'yes' enables
- <link linkend="GTK-Debug-Options">runtime debugging</link>.
- The default is 'minimum'.
- Note that 'no' is fast, but dangerous as it tends to destabilize
- even mostly bug-free software by changing the effect of many bugs
- from simple warnings into fatal crashes. Thus
- <option>--enable-debug=no</option> should <emphasis>not</emphasis>
- be used for stable releases of GTK+.
- </para>
- </formalpara>
-
- <formalpara>
- <title><systemitem>--disable-Bsymbolic</systemitem> and
- <systemitem>--enable-Bsymbolic</systemitem></title>
- <para>
- The option <systemitem>--disable-Bsymbolic</systemitem>
- turns off the use of the -Bsymbolic-functions linker flag.
- This is only necessary if you want to override GTK+ functions
- by using <envar>LD_PRELOAD</envar>.
- </para>
- </formalpara>
+ <title><systemitem>enable-xinerama</systemitem></title>
- <formalpara>
- <title><systemitem>--enable-explicit-deps</systemitem> and
- <systemitem>--disable-explicit-deps</systemitem></title>
- <para>
- If <systemitem>--enable-explicit-deps</systemitem> is
- specified then GTK+ will write the full set of libraries
- that GTK+ depends upon into its <literal>.pc</literal> files to be used when
- programs depending on GTK+ are linked. Otherwise, GTK+
- only will include the GTK+ libraries themselves, and
- will depend on system library dependency facilities to
- bring in the other libraries.
- By default GTK+ will disable explicit dependencies unless
- it detects that they are needed on the system. (If you
- specify <systemitem>--enable-static</systemitem> to force
- building of static libraries, then explicit dependencies
- will be written since library dependencies don't work
- for static libraries.) Specifying
- <systemitem>--enable-explicit-deps</systemitem> or
- <systemitem>--enable-static</systemitem> can cause
- compatibility
- problems when libraries that GTK+ depends upon change
- their versions, and should be avoided if possible.
- </para>
- </formalpara>
-
- <formalpara>
- <title><systemitem>--disable-xkb</systemitem> and
- <systemitem>--enable-xkb</systemitem></title>
-
- <para>
- By default the <command>configure</command> script will try
- to auto-detect whether the XKB extension is supported by
- the X libraries GTK+ is linked with.
- These options can be used to explicitly control whether
- GTK+ will support the XKB extension.
- </para>
- </formalpara>
-
- <formalpara>
- <title><systemitem>--disable-xinerama</systemitem> and
- <systemitem>--enable-xinerama</systemitem></title>
-
- <para>
- By default the <command>configure</command> script will try
- to link against the Xinerama libraries if they are found.
- These options can be used to explicitly control whether
- Xinerama should be used.
- </para>
- </formalpara>
-
- <formalpara>
- <title><systemitem>--disable-xinput</systemitem> and
- <systemitem>--enable-xinput</systemitem></title>
<para>
- Controls whether GTK+ is built with support for the XInput
- or XInput2 extension. These extensions provide an extended
- interface to input devices such as graphics tablets.
- When this support is compiled in, specially written
- GTK+ programs can get access to subpixel positions,
- multiple simultaneous input devices, and extra "axes"
- provided by the device such as pressure and tilt
- information.
+ By default GTK+ will try to link against the Xinerama libraries
+ if they are found. This options can be used to explicitly control
+ whether Xinerama should be used.
</para>
</formalpara>
<formalpara>
- <title><systemitem>--disable-gtk-doc</systemitem> and
- <systemitem>--enable-gtk-doc</systemitem></title>
+ <title><systemitem>enable-documentation</systemitem> and
+ <systemitem>enable-man-pages</systemitem></title>
<para>
The <application>gtk-doc</application> package is
@@ -557,93 +436,50 @@ How to compile GTK+ itself
<application>gtk-doc</application> installed and
are modifying GTK+, you may want to enable
<application>gtk-doc</application> support by passing
- in <systemitem>--enable-gtk-doc</systemitem>. If not
- enabled, pre-generated HTML files distributed with GTK+
- will be installed.
+ in <systemitem>enable-documentation</systemitem>.
</para>
- </formalpara>
-
- <formalpara>
- <title><systemitem>--disable-cups</systemitem> and
- <systemitem>--enable-cups</systemitem></title>
-
- <para>
- By default the <command>configure</command> script will try
- to build the cups print backend if the cups libraries are found.
- These options can be used to explicitly control whether
- the cups print backend should be built.
- </para>
- </formalpara>
-
- <formalpara>
- <title><systemitem>--disable-papi</systemitem> and
- <systemitem>--enable-papi</systemitem></title>
-
<para>
- By default the <command>configure</command> script will try
- to build the papi print backend if the papi libraries are found.
- These options can be used to explicitly control whether
- the papi print backend should be built.
+ Additionally, some tools provided by GTK+ have their own
+ manual pages generated using a similar set of dependencies;
+ if you have <application>xsltproc</application> then you
+ can generate manual pages by passing <systemitem>enable-man-pages</systemitem>
+ when configuring the build.
</para>
</formalpara>
<formalpara>
- <title><systemitem>--disable-packagekit</systemitem> and
- <systemitem>--enable-packagekit</systemitem></title>
- <para>
- By default the <command>configure</command> script will try
- to build the PackageKit support for the open-with dialog if
- the PackageKit libraries are found.
- These options can be used to explicitly control whether
- PackageKit support should be built.
- </para>
- </formalpara>
-
- <formalpara>
- <title><systemitem>--enable-x11-backend</systemitem>,
- <systemitem>--disable-x11-backend</systemitem>,
- <systemitem>--enable-win32-backend</systemitem>,
- <systemitem>--disable-win32-backend</systemitem>,
- <systemitem>--enable-quartz-backend</systemitem>,
- <systemitem>--disable-quartz-backend</systemitem>,
- <systemitem>--enable-broadway-backend</systemitem>,
- <systemitem>--disable-broadway-backend</systemitem>,
- <systemitem>--enable-wayland-backend</systemitem>,
- <systemitem>--disable-wayland-backend</systemitem>
- <systemitem>--enable-mir-backend</systemitem>, and
- <systemitem>--disable-mir-backend</systemitem></title>
+ <title><systemitem>enable-cups-print-backend</systemitem>,
+ <systemitem>enable-papi-print-backend</systemitem>,
+ <systemitem>enable-cloudprint-print-backend</systemitem>, and
+ <systemitem>enable-test-print-backend</systemitem></title>
<para>
- Enables specific backends for GDK. If none of these options
- are given, the x11 backend will be enabled by default,
- unless the platform is Windows, in which case the default is
- win32. If any backend is explicitly enabled or disabled, no
- other platform will be enabled automatically. Other
- supported backends are the quartz backend for OS X.
+ By default, GTK+ will try to build various print backends if
+ their dependencies are found. These options can be used to
+ explicitly control whether each print backend should be built
+ or not.
</para>
</formalpara>
<formalpara>
- <title><systemitem>--enable-introspection</systemitem></title>
+ <title><systemitem>-Denable-x11-backend</systemitem>,
+ <systemitem>-Denable-win32-backend</systemitem>,
+ <systemitem>-Denable-quartz-backend</systemitem>,
+ <systemitem>-Denable-broadway-backend</systemitem>,
+ <systemitem>-Denable-wayland-backend</systemitem>, and
+ <systemitem>-Denable-mir-backend</systemitem></title>
<para>
- Build with or without introspection support.
- The default is 'auto'.
+ Enable specific backends for GDK. If none of these options
+ are given, the Wayland backend will be enabled by default,
+ if the platform is Linux; the X11 backend will also be enabled
+ by default, unless the platform is Windows, in which case the
+ default is win32, or the platform is macOS, in which case the
+ default is quartz. If any backend is explicitly enabled or disabled,
+ no other platform will be enabled automatically.
</para>
</formalpara>
- <formalpara>
- <title><systemitem>--enable-installed-tests</systemitem> or
- <systemitem>--disable-installed-tests</systemitem></title>
-
- <para>
- Whether to install tests on the system. If enabled, tests
- and their data are installed in <filename>${libexecdir}/gtk+/installed-tests</filename>.
- Metadata for the tests is installed in <filename>${prefix}/share/installed-tests/gtk+</filename>.
- To run the installed tests, gnome-desktop-testing-runner
- can be used.
- </para>
- </formalpara>
</refsect1>
</refentry>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]