Sat, 09 Aug 2025 18:21:54 -0500
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 | 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 |