meson_options.txt

Sat, 09 Aug 2025 18:21:54 -0500

author
Gong Zhile <gongzl@stu.hebust.edu.cn>
date
Sat, 09 Aug 2025 18:21:54 -0500
changeset 43308
6a22b547f0c8
parent 43266
19b9321a0177
permissions
-rw-r--r--

Add builtin library dependency for introspection

Without specifying, gir defaults to the system pidgin/purple libraries by default,
which fails the build when new symbols were added and gir failed to link for them.

The failed build log before patch:
```
FAILED: pidgin/Pidgin-3.0.gir
...
/usr/bin/ld: /usr/local/lib/x86_64-linux-gnu/libpidgin3.so: undefined reference to `purple_image_get_filename'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '['ccache', 'cc', '-o', '/home/goodspeed/Development/pidgin/build/tmp-introspectineovzv0/Pidgin-3.0', '/home/goodspeed/Development/pidgin/build/tmp-introspectineovzv0/Pidgin-3.0.o', '-L.', '-Wl,-rpath,.', '-Wl,--no-as-needed', '-L/home/goodspeed/Development/pidgin/build/libpurple', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/libpurple', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-L/home/goodspeed/Development/pidgin/build/pidgin', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/pidgin', '-L/home/goodspeed/Development/pidgin/build/libpurple', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/libpurple', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-lpidgin3', '-lpurple3', '-lglib-2.0', '-lgplugin-gtk4', '-lgplugin', '-lgmodule-2.0', '-lgtk-4', '-lpangocairo-1.0', '-lpango-1.0', '-lharfbuzz', '-lgdk_pixbuf-2.0', '-lcairo-gobject', '-lcairo', '-lvulkan', '-lgraphene-1.0', '-lgio-2.0', '-lgobject-2.0', '-lgtksourceview-5', '-ljson-glib-1.0', '-ladwaita-1', '-lspelling-1', '-lm', '-lbirb', '-lgstreamer-1.0', '-lsoup-3.0', '-lxml2', '-lgstapp-1.0', '-lgstbase-1.0', '-lseagull', '-lsqlite3', '-lgirepository-1.0', '-lgio-2.0', '-lgobject-2.0', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lglib-2.0', '-lglib-2.0']' returned non-zero exit status 1.
ninja: build stopped: subcommand failed.
```

Testing Done:
Succeed building pidgin with an out-of-date pidgin installed on system. Introspection no longer uses the system library and links fine now.

Reviewed at https://reviews.imfreedom.org/r/4098/

39949
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
1 ##############################################################################
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
2 # General Options
38437
0c18e307ea00 Convert autoconf options to meson options.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
3
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41011
diff changeset
4 option('devenv-config-dir', type : 'string',
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41011
diff changeset
5 description : 'config directory for running a devenv (defaults to a subdirectory of buildroot)')
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41011
diff changeset
6
40491
96402addd5c1 sort the meson options by option name
Gary Kramlich <grim@reaperworld.com>
parents: 40356
diff changeset
7 option('doc', type : 'boolean', value : false,
96402addd5c1 sort the meson options by option name
Gary Kramlich <grim@reaperworld.com>
parents: 40356
diff changeset
8 description : 'build documentation with gtk-doc')
96402addd5c1 sort the meson options by option name
Gary Kramlich <grim@reaperworld.com>
parents: 40356
diff changeset
9
40546
aa0d59a5c23d Change the introspection option to a boolean so that the subprojects can properly yield to it.
Gary Kramlich <grim@reaperworld.com>
parents: 40523
diff changeset
10 option('introspection', type : 'boolean', value : true,
39949
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
11 description : 'build introspection data')
38437
0c18e307ea00 Convert autoconf options to meson options.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
12
39949
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
13 ##############################################################################
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
14 # Libpurple Options
38437
0c18e307ea00 Convert autoconf options to meson options.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
15
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
16 option('kwallet', type : 'feature',
39949
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
17 description : 'enable KWallet support')
38437
0c18e307ea00 Convert autoconf options to meson options.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
18
41172
db38cdfbc59e Rename the secretservice plugin to libsecret and move it into the plugins directory
Gary Kramlich <grim@reaperworld.com>
parents: 41066
diff changeset
19 option('libsecret', type : 'feature',
db38cdfbc59e Rename the secretservice plugin to libsecret and move it into the plugins directory
Gary Kramlich <grim@reaperworld.com>
parents: 41066
diff changeset
20 description : 'enable libsecret support')
39949
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
21
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
22 ##############################################################################
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
23 # Protocol Plugins
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
24
43247
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
25 option('demo', type : 'feature',
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
26 description : 'build the demo protocol plugin')
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
27
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
28 option('ircv3', type : 'feature',
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
29 description : 'build the IRCv3 protocol plugin')
39949
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
30
43247
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
31 option('link-local-messaging', type : 'feature',
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
32 description : 'build the link local messaging protocol plugin')
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
33
43266
19b9321a0177 Disable SIP by default and update the protocol summaries to reflect what will be built
Gary Kramlich <grim@reaperworld.com>
parents: 43247
diff changeset
34 option('sip', type : 'feature', value : 'disabled',
43247
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
35 description : 'build the SIP protocol plugin')
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
36
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
37 option('xmpp', type : 'feature',
197c541b3e7c Add discrete options for protocol plugins
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
38 description : 'build the XMPP protocol plugin')
40491
96402addd5c1 sort the meson options by option name
Gary Kramlich <grim@reaperworld.com>
parents: 40356
diff changeset
39
39949
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
40 ##############################################################################
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
41 # Pidgin Options
e04b5ac32433 Re-order Meson options in nicer groups.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39948
diff changeset
42
40491
96402addd5c1 sort the meson options by option name
Gary Kramlich <grim@reaperworld.com>
parents: 40356
diff changeset
43 option('gtkui', type : 'boolean', value : true,
96402addd5c1 sort the meson options by option name
Gary Kramlich <grim@reaperworld.com>
parents: 40356
diff changeset
44 description : 'compile with GTK+ user interface')
96402addd5c1 sort the meson options by option name
Gary Kramlich <grim@reaperworld.com>
parents: 40356
diff changeset
45
42553
0622b87a3b8f Remove gtkconv.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 42386
diff changeset
46 option('unity-integration', type : 'feature', value : 'disabled',
38437
0c18e307ea00 Convert autoconf options to meson options.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
47 description : 'compile with support for unity integration plugin')
0c18e307ea00 Convert autoconf options to meson options.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
48

mercurial