docs: Update the 'building gtk' guide
Clean up for Meson.
This commit is contained in:
@@ -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>
|
||||
<command>meson</command>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg choice="plain">--disable-modules</arg>
|
||||
<arg choice="plain">--enable-modules</arg>
|
||||
<arg choice="plain">-Ddisable-modules=true</arg>
|
||||
<arg choice="plain">-Ddisable-modules=false</arg>
|
||||
</group>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg>--with-included-immodules=MODULE1,MODULE2,...</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">--enable-debug=[no/minimum/yes]</arg>
|
||||
<arg choice="plain">-Denable-documentation=true</arg>
|
||||
<arg choice="plain">-Denable-documentation=false</arg>
|
||||
</group>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg choice="plain">--disable-Bsymbolic</arg>
|
||||
<arg choice="plain">--enable-Bsymbolic</arg>
|
||||
<arg choice="plain">-Denable-man-pages=true</arg>
|
||||
<arg choice="plain">-Denable-man-pages=false</arg>
|
||||
</group>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg choice="plain">--disable-xkb</arg>
|
||||
<arg choice="plain">--enable-xkb</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-xinerama</arg>
|
||||
<arg choice="plain">--enable-xinerama</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-gtk-doc</arg>
|
||||
<arg choice="plain">--enable-gtk-doc</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-cups</arg>
|
||||
<arg choice="plain">--enable-cups</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">--disable-papi</arg>
|
||||
<arg choice="plain">--enable-papi</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-xinput</arg>
|
||||
<arg choice="plain">--disable-xinput</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-packagekit</arg>
|
||||
<arg choice="plain">--disable-packagekit</arg>
|
||||
<arg choice="plain">-Denable-x11-backend=true</arg>
|
||||
<arg choice="plain">-Denable-x11-backend=false</arg>
|
||||
</group>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg choice="plain">--enable-x11-backend</arg>
|
||||
<arg choice="plain">--disable-x11-backend</arg>
|
||||
<arg choice="plain">-Denable-xinerama=true</arg>
|
||||
<arg choice="plain">-Denable-xinerama=false</arg>
|
||||
</group>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg choice="plain">--enable-win32-backend</arg>
|
||||
<arg choice="plain">--disable-win32-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-quartz-backend</arg>
|
||||
<arg choice="plain">--disable-quartz-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-broadway-backend</arg>
|
||||
<arg choice="plain">--disable-broadway-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-wayland-backend</arg>
|
||||
<arg choice="plain">--disable-wayland-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-mir-backend</arg>
|
||||
<arg choice="plain">--disable-mir-backend</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>
|
||||
<title><systemitem>enable-xinerama</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+.
|
||||
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-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>
|
||||
|
||||
<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.
|
||||
</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>
|
||||
<para>
|
||||
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-cups</systemitem> and
|
||||
<systemitem>--enable-cups</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>
|
||||
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.
|
||||
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>--disable-papi</systemitem> and
|
||||
<systemitem>--enable-papi</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>
|
||||
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.
|
||||
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>--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>
|
||||
|
||||
<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.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
<formalpara>
|
||||
<title><systemitem>--enable-introspection</systemitem></title>
|
||||
|
||||
<para>
|
||||
Build with or without introspection support.
|
||||
The default is 'auto'.
|
||||
</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>
|
||||
|
||||
Reference in New Issue
Block a user