meson.build

Mon, 07 Jul 2025 01:14:28 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 07 Jul 2025 01:14:28 -0500
changeset 43281
0169da325b4e
parent 43280
82ae87df1639
child 43283
01eb1bbf4186
permissions
-rw-r--r--

Only add the flatpak dependencies test when compiling for linux

Flatpaks only work on linux so theres no reason why we should be checking the
manifest against the sub projects we're building for non linux platforms.

Testing Done:
Called in the turtles and made sure I could run the test on debian.

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

38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
1 # UPDATING VERSION NUMBERS FOR RELEASES
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
2 #
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
3 # The version number is:
40206
566c210f7003 Add PURPLE_VERSION and PURPLE_EXTRA_VERSION to libpurple/version.h and clean up some other related stuff
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
4 # <major>.<minor>.<micro><extra>
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
5 #
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
6 # micro += 1
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
7 #
42678
0b9b81b6ff18 Remove Finch
Gary Kramlich <grim@reaperworld.com>
parents: 42671
diff changeset
8 # If any functions have been added to libpurple or Pidgin:
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
9 # micro = 0
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
10 # minor += 1
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
11 #
42678
0b9b81b6ff18 Remove Finch
Gary Kramlich <grim@reaperworld.com>
parents: 42671
diff changeset
12 # If backwards compatibility has been broken in libpurple or Pidgin:
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
13 # micro = 0
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
14 # minor = 0
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
15 # major += 1
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
16 # purple_soversion += 1
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
17 #
40206
566c210f7003 Add PURPLE_VERSION and PURPLE_EXTRA_VERSION to libpurple/version.h and clean up some other related stuff
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
18 # extra should be similar to one of the following:
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
19 # For beta releases: '-beta2'
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
20 # For code under development: '-devel'
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
21 # For production releases: ''
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
22 #
43134
dd4dc828a49d Switch the meson project name to pidgin3
Gary Kramlich <grim@reaperworld.com>
parents: 43123
diff changeset
23 project('pidgin3', 'c',
43275
e0039f085810 Prepare for the next round of development
Gary Kramlich <grim@reaperworld.com>
parents: 43273
diff changeset
24 version : '2.92.2-dev', # Don't forget the metadata file!
43279
83dbb4b20c99 Tell meson about our license
Gary Kramlich <grim@reaperworld.com>
parents: 43275
diff changeset
25 meson_version : '>=1.1.0',
83dbb4b20c99 Tell meson about our license
Gary Kramlich <grim@reaperworld.com>
parents: 43275
diff changeset
26 license : 'GPL-2.0-or-later',
83dbb4b20c99 Tell meson about our license
Gary Kramlich <grim@reaperworld.com>
parents: 43275
diff changeset
27 license_files : ['COPYING'],
42073
31532581724a Set our global C standard to C17 and warning_level to 2
Gary Kramlich <grim@reaperworld.com>
parents: 42033
diff changeset
28 default_options : ['c_std=c17', 'warning_level=2'])
42010
3820d0d16092 Change the soname of libpurple to libpurple3
Gary Kramlich <grim@reaperworld.com>
parents: 41921
diff changeset
29 purple_soversion = 0
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
30
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
31 parts = meson.project_version().split('-')
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
32 if parts.length() > 1
40206
566c210f7003 Add PURPLE_VERSION and PURPLE_EXTRA_VERSION to libpurple/version.h and clean up some other related stuff
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
33 purple_extra_version = parts[1]
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
34 else
40206
566c210f7003 Add PURPLE_VERSION and PURPLE_EXTRA_VERSION to libpurple/version.h and clean up some other related stuff
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
35 purple_extra_version = ''
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
36 endif
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
37
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
38 parts = parts[0].split('.')
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
39 purple_major_version = parts[0]
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
40 purple_minor_version = parts[1]
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
41 purple_micro_version = parts[2]
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
42
42980
6781522ea5f3 Add a purple_api_minor version to complement purple_api_major_version
Gary Kramlich <grim@reaperworld.com>
parents: 42978
diff changeset
43 # purple_api_major_version and purple_api_minor_version should generally match
6781522ea5f3 Add a purple_api_minor version to complement purple_api_major_version
Gary Kramlich <grim@reaperworld.com>
parents: 42978
diff changeset
44 # purple_major_version and purple_minor_version. However, when working towards
6781522ea5f3 Add a purple_api_minor version to complement purple_api_major_version
Gary Kramlich <grim@reaperworld.com>
parents: 42978
diff changeset
45 # a new major version, these numbers should be set to the new major and new
6781522ea5f3 Add a purple_api_minor version to complement purple_api_major_version
Gary Kramlich <grim@reaperworld.com>
parents: 42978
diff changeset
46 # minor versions while the meson project version should be something
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
47 # like 2.90.0. This allows us to get the versioning sane, while changing the
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
48 # major version.
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
49 purple_api_major_version = '3'
42980
6781522ea5f3 Add a purple_api_minor version to complement purple_api_major_version
Gary Kramlich <grim@reaperworld.com>
parents: 42978
diff changeset
50 purple_api_minor_version = '0'
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
51
42454
37bcbcd66c6f Set our gettext package to pidgin3 so it can we can install next to pidgin2
Gary Kramlich <grim@reaperworld.com>
parents: 42410
diff changeset
52 GETTEXT_PACKAGE='pidgin3'
41485
74a04628357f Remove some no longer necessary meson options
Gary Kramlich <grim@reaperworld.com>
parents: 41402
diff changeset
53 find_program('gettext')
74a04628357f Remove some no longer necessary meson options
Gary Kramlich <grim@reaperworld.com>
parents: 41402
diff changeset
54 find_program('xgettext')
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
55
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
56 add_project_arguments([
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
57 '-DVERSION="@0@"'.format(meson.project_version()),
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
58 '-DDISPLAY_VERSION="@0@"'.format(meson.project_version()),
40481
65040053e80f Fix online help link.
Alejandro Garcia <>
parents: 40461
diff changeset
59 '-DPURPLE_WEBSITE="https://pidgin.im/"',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
60 f'-DGETTEXT_PACKAGE="@GETTEXT_PACKAGE@"'],
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
61 language : 'c')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
62 conf = configuration_data()
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
63 man_conf = configuration_data()
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
64 version_conf = configuration_data()
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
65
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
66 conf.set_quoted('GETTEXT_PACKAGE', GETTEXT_PACKAGE)
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
67 conf.set_quoted('VERSION', meson.project_version())
40206
566c210f7003 Add PURPLE_VERSION and PURPLE_EXTRA_VERSION to libpurple/version.h and clean up some other related stuff
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
68 conf.set_quoted('DISPLAY_VERSION', meson.project_version())
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
69
42564
867b39d2bc08 Add the cpu, cpu_family, and endianness of the host machine to the about dialog
Gary Kramlich <grim@reaperworld.com>
parents: 42547
diff changeset
70 conf.set_quoted('PURPLE_BUILD_CPU', host_machine.cpu())
867b39d2bc08 Add the cpu, cpu_family, and endianness of the host machine to the about dialog
Gary Kramlich <grim@reaperworld.com>
parents: 42547
diff changeset
71 conf.set_quoted('PURPLE_BUILD_ARCHITECTURE', host_machine.cpu_family())
867b39d2bc08 Add the cpu, cpu_family, and endianness of the host machine to the about dialog
Gary Kramlich <grim@reaperworld.com>
parents: 42547
diff changeset
72 conf.set_quoted('PURPLE_BUILD_ENDIANNESS', host_machine.endian())
42886
d9d26508be61 Automatically turn on print debugging in debug builds
Gary Kramlich <grim@reaperworld.com>
parents: 42850
diff changeset
73 conf.set_quoted('PURPLE_BUILD_BUILDTYPE', get_option('buildtype'))
42923
09fb857fb48c Some random cleanup in Pidgin.Application
Gary Kramlich <grim@reaperworld.com>
parents: 42910
diff changeset
74 conf.set('PURPLE_DEBUG', get_option('debug'))
42564
867b39d2bc08 Add the cpu, cpu_family, and endianness of the host machine to the about dialog
Gary Kramlich <grim@reaperworld.com>
parents: 42547
diff changeset
75
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
76 version_conf.set('PURPLE_API_MAJOR_VERSION', purple_api_major_version)
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
77 version_conf.set('PURPLE_MAJOR_VERSION', purple_major_version)
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
78 version_conf.set('PURPLE_MINOR_VERSION', purple_minor_version)
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
79 version_conf.set('PURPLE_MICRO_VERSION', purple_micro_version)
40206
566c210f7003 Add PURPLE_VERSION and PURPLE_EXTRA_VERSION to libpurple/version.h and clean up some other related stuff
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
80 version_conf.set('PURPLE_EXTRA_VERSION', purple_extra_version)
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
81 version_conf.set('PURPLE_VERSION', meson.project_version())
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
82 version_conf.set('PURPLE_API_VERSION', purple_soversion)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
83
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
84 PURPLE_LIB_VERSION = f'@purple_soversion@.@purple_minor_version@.@purple_micro_version@'
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
85
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
86 package_revision = vcs_tag(
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
87 input : 'package_revision.h.in',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
88 output : 'package_revision.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
89 fallback : meson.project_version())
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
90
42847
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
91 # Global variable for doc targets to add themselves to which we use for the
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
92 # doc alias below.
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
93 doc_targets = []
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
94
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
95 # For running `meson devenv`.
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
96 devenv = environment()
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
97
42814
59e6529a1e78 Mutliple cleanups to Purple.Message
Gary Kramlich <grim@reaperworld.com>
parents: 42678
diff changeset
98 # Set G_ENABLE_DIAGNOSTIC so we get warnings about deprecated signals and
59e6529a1e78 Mutliple cleanups to Purple.Message
Gary Kramlich <grim@reaperworld.com>
parents: 42678
diff changeset
99 # properties.
59e6529a1e78 Mutliple cleanups to Purple.Message
Gary Kramlich <grim@reaperworld.com>
parents: 42678
diff changeset
100 devenv.set('G_ENABLE_DIAGNOSTIC', '1')
59e6529a1e78 Mutliple cleanups to Purple.Message
Gary Kramlich <grim@reaperworld.com>
parents: 42678
diff changeset
101
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
102 # For man pages.
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
103 man_conf.set('VERSION', meson.project_version())
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
104 man_conf.set('prefix', get_option('prefix'))
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
105
38783
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
106 # Used for pkg-config files.
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
107 pkgconfig = import('pkgconfig')
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
108
38538
b542a6787116 Add meson arguments to About dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38537
diff changeset
109 # Storing build arguments
42357
0073491e35ff Fix postconf script when used as a subproject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42289
diff changeset
110 meson.add_postconf_script('mkmesonconf.py', meson.project_build_root())
39947
f551e29dba6b Bump minimum Meson to 0.47.0.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39932
diff changeset
111 conf.set('HAVE_MESON_CONFIG', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
112
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
113 # Checks for programs.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
114 compiler = meson.get_compiler('c')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
115
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
116 # Check for Sun compiler
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
117 SUNCC = compiler.compiles('void main() {__SUNPRO_C;};')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
118
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
119 # Check for Win32
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
120 if host_machine.system() == 'windows'
38487
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38486
diff changeset
121 windows = import('windows')
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38486
diff changeset
122
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
123 IS_WIN32 = true
38486
046f00bc7f33 Properly search for Windows DNS/socket libraries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38485
diff changeset
124 ws2_32 = compiler.find_library('ws2_32')
046f00bc7f33 Properly search for Windows DNS/socket libraries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38485
diff changeset
125 dnsapi = compiler.find_library('dnsapi')
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
126 conf.set('WIN32_LEAN_AND_MEAN', true)
39087
ac9849be4a10 win32: Define libpidgin DLL name in meson to avoid needing to change it
Mike Ruprecht <cmaiku@gmail.com>
parents: 39084
diff changeset
127
43089
0e1498cd22b2 Fix DLL name for Windows loader
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42983
diff changeset
128 conf.set('LIBPIDGIN_DLL_NAMEW', f'L"libpidgin3-@purple_soversion@.dll"')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
129 else
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
130 IS_WIN32 = false
38499
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
131 ws2_32 = []
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
132 dnsapi = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
133 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
134
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
135 # Check for directories
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
136 if IS_WIN32
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
137 foreach dir : ['bin', 'lib', 'data', 'sysconf', 'locale']
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
138 path = get_option('prefix') / get_option(dir + 'dir')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
139 conf.set_quoted('WIN32_FHS_@0@DIR'.format(dir.to_upper()), path)
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
140 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
141
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
142 conf.set('PURPLE_LIBDIR',
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
143 f'wpurple_lib_dir("purple-@purple_api_major_version@")')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
144 conf.set('PIDGIN_LIBDIR',
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
145 f'wpurple_lib_dir("pidgin-@purple_api_major_version@")')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
146
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
147 conf.set('PURPLE_DATADIR', 'wpurple_data_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
148 conf.set('PURPLE_SYSCONFDIR', 'wpurple_sysconf_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
149 conf.set('PURPLE_LOCALEDIR', 'wpurple_locale_dir()')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
150 else
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
151 foreach dir : ['data', 'sysconf', 'locale']
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
152 path = get_option('prefix') / get_option(dir + 'dir')
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
153 conf.set_quoted('PURPLE_@0@DIR'.format(dir.to_upper()), path)
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
154 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
155
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
156 common_libdir = get_option('prefix') / get_option('libdir')
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
157 conf.set_quoted('PURPLE_LIBDIR',
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
158 common_libdir / f'purple-@purple_api_major_version@')
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
159 conf.set_quoted('PIDGIN_LIBDIR',
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
160 common_libdir / f'pidgin-@purple_api_major_version@')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
161 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
162
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
163 abslibdir = get_option('prefix') / get_option('libdir')
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
164 PURPLE_PLUGINDIR = abslibdir / f'purple-@purple_api_major_version@'
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
165 conf.set_quoted('PURPLE_PLUGINDIR', PURPLE_PLUGINDIR)
42969
4132f4d92fd7 Change the version to 2.90.0 to let us do proper releases
Gary Kramlich <grim@reaperworld.com>
parents: 42953
diff changeset
166 PIDGIN_PLUGINDIR = abslibdir / f'pidgin-@purple_api_major_version@'
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
167 conf.set_quoted('PIDGIN_PLUGINDIR', PIDGIN_PLUGINDIR)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
168
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
169 # Windows and Haiku do not use libm for the math functions, they are part
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
170 # of the C library
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
171 math = compiler.find_library('m', required: false)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
172
41319
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
173 #######################################################################
43191
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
174 # Documentation
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
175 #######################################################################
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
176 if get_option('doc') and not get_option('introspection')
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
177 error('Documentation requires GObject Introspection.')
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
178 endif
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
179
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
180 dependency(
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
181 'gi-docgen', version: '>= 2025.3',
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
182 fallback: ['gi-docgen', 'dummy_dep'],
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
183 required: get_option('doc')
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
184 )
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
185
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
186 gidocgen = find_program('gi-docgen', required : get_option('doc'))
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
187 docs_dir = get_option('prefix') / get_option('datadir') / 'doc'
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
188
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
189 #######################################################################
41319
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
190 # Check for GLib (required)
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
191 #######################################################################
43136
36eba703e2b9 Add some additional methods to Purple.ProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 43134
diff changeset
192 glib = dependency('glib-2.0', version : '>= 2.80.0')
41150
b60171ce4589 remove the glib version macros from internal.h to meson and make sure everything is consistent
Gary Kramlich <grim@reaperworld.com>
parents: 41142
diff changeset
193 add_project_arguments(
43136
36eba703e2b9 Add some additional methods to Purple.ProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 43134
diff changeset
194 '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_80',
36eba703e2b9 Add some additional methods to Purple.ProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 43134
diff changeset
195 '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_80',
41150
b60171ce4589 remove the glib version macros from internal.h to meson and make sure everything is consistent
Gary Kramlich <grim@reaperworld.com>
parents: 41142
diff changeset
196 language : 'c',)
b60171ce4589 remove the glib version macros from internal.h to meson and make sure everything is consistent
Gary Kramlich <grim@reaperworld.com>
parents: 41142
diff changeset
197
43191
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
198 gio = dependency('gio-2.0')
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
199 gnome = import('gnome')
ba72c5b3582b Make sure we look for gi-docgen before our other dependencies
Gary Kramlich <grim@reaperworld.com>
parents: 43189
diff changeset
200
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
201 #######################################################################
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
202 # Check for GObject Introspection
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
203 #######################################################################
40640
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
204 if get_option('introspection')
41175
372df64f6b1a Bump minimum requirements to match GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41173
diff changeset
205 enable_introspection = dependency('gobject-introspection-1.0', version : '>= 1.39.0').found()
40640
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
206 else
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
207 enable_introspection = false
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
208 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
209
40197
75ffd76260fc Bump the gtk minimum to 3.22 and remove gtk3compat.h
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
210 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
211 # Check Pidgin dependencies
40197
75ffd76260fc Bump the gtk minimum to 3.22 and remove gtk3compat.h
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
212 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
213 if get_option('gtkui')
42251
63639da06cbd Require GTK 4.10 and GLib 2.76
Gary Kramlich <grim@reaperworld.com>
parents: 42229
diff changeset
214 gtk = dependency('gtk4', version : '>= 4.10.0')
43186
f869ebb47d88 Add basic support for libspelling
Gary Kramlich <grim@reaperworld.com>
parents: 43175
diff changeset
215
42970
365a518a6c7b Fix Adwaita 1.6 deprecations
Markus Fischer <ivanhoe@fiscari.de>
parents: 42969
diff changeset
216 libadwaita = dependency('libadwaita-1', version : '>= 1.5')
43107
43ea01e26865 Silence Adwaita deprecation warning
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 43090
diff changeset
217 add_project_arguments(
43ea01e26865 Silence Adwaita deprecation warning
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 43090
diff changeset
218 '-DADW_VERSION_MIN_REQUIRED=ADW_VERSION_1_5',
43ea01e26865 Silence Adwaita deprecation warning
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 43090
diff changeset
219 '-DADW_VERSION_MAX_ALLOWED=ADW_VERSION_1_5',
43ea01e26865 Silence Adwaita deprecation warning
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 43090
diff changeset
220 language: 'c')
43186
f869ebb47d88 Add basic support for libspelling
Gary Kramlich <grim@reaperworld.com>
parents: 43175
diff changeset
221
f869ebb47d88 Add basic support for libspelling
Gary Kramlich <grim@reaperworld.com>
parents: 43175
diff changeset
222 libspelling = dependency('libspelling-1', version : '>= 0.4.0',
f869ebb47d88 Add basic support for libspelling
Gary Kramlich <grim@reaperworld.com>
parents: 43175
diff changeset
223 default_options : ['sysprof=false'])
42934
36a64c2e14ce Require Adwaita 1.4 and replace Adw.Flap with Adw.OverlaySplitView
Gary Kramlich <grim@reaperworld.com>
parents: 42923
diff changeset
224 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
225
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
226 ENABLE_GTK = get_option('gtkui')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
227
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
228 #######################################################################
43175
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
229 # Additional Dependencies
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
230 #######################################################################
43265
7960b5f85729 Update to birb 0.4 and use the testing helpers in libpurple
Gary Kramlich <grim@reaperworld.com>
parents: 43247
diff changeset
231 birb_dep = dependency('birb', version : '>=0.4.0')
43175
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
232 gdk_pixbuf = dependency('gdk-pixbuf-2.0', version : '>= 2.26.0')
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
233 gstreamer = dependency('gstreamer-1.0', version : '>=1.14')
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
234 gstreamer_app = dependency('gstreamer-app-1.0')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
235 json = dependency('json-glib-1.0', version : '>= 0.14.0')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
236
41921
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
237 libsoup = dependency('libsoup-3.0', version : '>= 3')
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
238 add_project_arguments(
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
239 '-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_3_0',
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
240 '-DSOUP_VERSION_MAX_ALLOWED=SOUP_VERSION_3_0',
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
241 language : 'c')
39989
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
242
43175
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
243 libxml = dependency('libxml-2.0', version : '>= 2.6.0')
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
244 if libxml.version().version_compare('<2.6.18')
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
245 message('Versions of libxml2 < 2.6.18 may contain bugs that could cause XMPP messages to be discarded.')
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
246 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
247
43209
9bdf60700384 Add Purple.Message:attributes
Gary Kramlich <grim@reaperworld.com>
parents: 43191
diff changeset
248 pango_dep = dependency('pango', version : '>=1.54.0')
43175
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
249 seagull_dep = dependency('seagull', version : '>= 0.1.1')
41ad34b9de13 Replace the Purple.Sqlite3 API with Seagull
Gary Kramlich <grim@reaperworld.com>
parents: 43159
diff changeset
250 sqlite3 = dependency('sqlite3', version : '>= 3.27.0')
42529
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
251
42289
27ca1fa06a24 Require hasl 0.2.0 or newer
Gary Kramlich <grim@reaperworld.com>
parents: 42284
diff changeset
252 dependency('shoes', required : false)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
253
38524
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
254 add_project_arguments(
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
255 '-DPURPLE_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
256 '-DPIDGIN_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
257 '-DGNT_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
258 language : 'c')
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
259 if get_option('buildtype') != 'plain' and compiler.get_id() == 'gcc'
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
260 # We enable -Wall later.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
261 # If it's set after the warning CFLAGS in the compiler invocation, it counteracts the -Wno... flags.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
262 # This leads to warnings we don't want.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
263 # CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'`
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
264
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
265 # ENABLE WARNINGS SUPPORTED BY THE VERSION OF GCC IN USE
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
266 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
267 # Future Possibilities
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
268 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
269 # Consider adding -Wbad-function-cast.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
270 # This leads to spurious warnings using GPOINTER_TO_INT(), et al. directly on a function call.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
271 # We'd need an intermediate variable.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
272 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
273 foreach newflag : [
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
274 '-Waggregate-return',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
275 '-Wcast-align',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
276 '-Wdeclaration-after-statement',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
277 '-Wendif-labels',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
278 '-Werror-implicit-function-declaration',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
279 '-Wextra -Wno-unused-parameter',
39109
1bb4f9bcee45 meson: Silence -Wformat-security ignored without -Wformat warning
Mike Ruprecht <cmaiku@gmail.com>
parents: 39088
diff changeset
280 '-Wformat',
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
281 '-Wformat-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
282 '-Werror=format-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
283 '-Winit-self',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
284 '-Wmissing-declarations',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
285 '-Wmissing-noreturn',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
286 '-Wmissing-prototypes',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
287 '-Wpointer-arith',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
288 '-Wfloat-equal',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
289 '-Wundef']
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
290 if compiler.has_argument(newflag)
38523
2457e9c0f5de Use add_project_arguments instead of add_global_arguments.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38520
diff changeset
291 add_project_arguments(newflag, language : 'c')
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
292 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
293 endforeach
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
294 endif
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
295 if get_option('buildtype') != 'plain' and SUNCC
38523
2457e9c0f5de Use add_project_arguments instead of add_global_arguments.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38520
diff changeset
296 add_project_arguments('-features=extensions', language : 'c')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
297 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
298
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
299 pidgin3path = find_program('pidgin3', required : false)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
300
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
301 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
302 # Check for Unity and Messaging Menu
38531
0b7c991bc3e4 Clean up stuff from grim's review.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38529
diff changeset
303 # Remove when Ubuntu 16.04 is EOL
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
304 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
305 UNITY = [
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
306 dependency('unity', version : '>= 6.8', required : get_option('unity-integration')),
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
307 dependency('messaging-menu', version : '>= 12.10', required : get_option('unity-integration'))
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
308 ]
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
309 enable_unity = UNITY[0].found() and UNITY[1].found()
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
310 if enable_unity
38509
551e37963d38 Fix some missing substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38508
diff changeset
311 conf.set('USES_MM_CHAT_SECTION', 'X-MessagingMenu-UsesChatSection=true')
38704
ba0c47533bb2 Fix Meson warning of undefined substitution.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38641
diff changeset
312 else
ba0c47533bb2 Fix Meson warning of undefined substitution.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38641
diff changeset
313 conf.set('USES_MM_CHAT_SECTION', '')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
314 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
315
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
316 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
317 # Check for Secret Service headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
318 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
319
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
320 if IS_WIN32
41172
db38cdfbc59e Rename the secretservice plugin to libsecret and move it into the plugins directory
Gary Kramlich <grim@reaperworld.com>
parents: 41169
diff changeset
321 libsecret = disabler()
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
322 else
41172
db38cdfbc59e Rename the secretservice plugin to libsecret and move it into the plugins directory
Gary Kramlich <grim@reaperworld.com>
parents: 41169
diff changeset
323 libsecret = dependency('libsecret-1', required : get_option('libsecret'))
38482
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
324 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
325
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
326 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
327 # Check for KWallet headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
328 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
329
40999
9e5a5eb54a57 bump the minimum meson to 0.56.0 and fix the deprecations
Gary Kramlich <grim@reaperworld.com>
parents: 40989
diff changeset
330 if IS_WIN32 or not add_languages('cpp', required : get_option('kwallet'), native: false)
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
331 kwallet = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
332 else
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
333 add_project_arguments([
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
334 '-DDISPLAY_VERSION="@0@"'.format(meson.project_version()),
40481
65040053e80f Fix online help link.
Alejandro Garcia <>
parents: 40461
diff changeset
335 '-DPURPLE_WEBSITE="https://pidgin.im/"',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
336 f'-DGETTEXT_PACKAGE="@GETTEXT_PACKAGE@"'],
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40355
diff changeset
337 language : 'cpp')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
338
42978
bf58b98751aa bump KWallet and Qt to version 6
Markus Fischer <ivanhoe@fiscari.de>
parents: 42970
diff changeset
339 qt6 = import('qt6')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
340
42978
bf58b98751aa bump KWallet and Qt to version 6
Markus Fischer <ivanhoe@fiscari.de>
parents: 42970
diff changeset
341 qt6_dep = dependency('qt6', modules: ['Core'], required : get_option('kwallet'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
342
42978
bf58b98751aa bump KWallet and Qt to version 6
Markus Fischer <ivanhoe@fiscari.de>
parents: 42970
diff changeset
343 kwallet = dependency('KF6Wallet', required : get_option('kwallet'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
344 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
345
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
346 #######################################################################
40224
6b658d1458c8 Fix a handful of issues found in review
Gary Kramlich <grim@reaperworld.com>
parents: 40219
diff changeset
347 # Check for GPlugin
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
348 #######################################################################
42983
c65fa958d972 Update all of our subprojects
Gary Kramlich <grim@reaperworld.com>
parents: 42980
diff changeset
349 gplugin_version = ['>=0.44.2', '<0.45.0']
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
350 gplugin_dep = dependency('gplugin',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
351 version : gplugin_version,
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
352 fallback : ['gplugin', 'gplugin_dep'])
40216
bf78d5476c6a initial start of moving the plugins dialog to glade
Gary Kramlich <grim@reaperworld.com>
parents: 40207
diff changeset
353
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
354 if get_option('gtkui')
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
355 gplugin_gtk_dep = dependency('gplugin-gtk4',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
356 version : gplugin_version,
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
357 fallback : ['gplugin-gtk4', 'gplugin_gtk4_dep'])
39426
2e4f09a49404 Add fallback for gplugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39419
diff changeset
358 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
359
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
360 #######################################################################
42110
23dae27bd7ca Remove cyrus sasl as a dependency
Gary Kramlich <grim@reaperworld.com>
parents: 42094
diff changeset
361 # Check for Hasl
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
362 #######################################################################
43159
2bde48da761d Make all of the subprojects use tarballs
Gary Kramlich <grim@reaperworld.com>
parents: 43136
diff changeset
363 hasl = dependency('hasl', version : '>= 0.4.0')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
364
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
365 #######################################################################
41105
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
366 # Random Stuff
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
367 #######################################################################
42410
563e7a17c220 Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42405
diff changeset
368 # So that purpleconfig.h may be found.
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
369 toplevel_inc = include_directories('.')
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
370
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
371 # make sure we found our license checker script
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
372 check_license_header = find_program('./scripts/check_license_header.py', required : true)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42581
diff changeset
373
43281
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
374 if host_machine.system() == 'linux'
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
375 check_flatpak_dependencies = find_program('./scripts/check_flatpak_dependencies.py', required : true)
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
376 test(
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
377 'flatpak_dependencies',
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
378 check_flatpak_dependencies,
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
379 args : [
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
380 meson.global_build_root() / 'meson-info/intro-projectinfo.json',
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
381 meson.project_source_root() / 'im.pidgin.Pidgin3.yml',
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
382 ])
0169da325b4e Only add the flatpak dependencies test when compiling for linux
Gary Kramlich <grim@reaperworld.com>
parents: 43280
diff changeset
383 endif
43280
82ae87df1639 Add a test to make sure the flatpak dependencies have been updated
Gary Kramlich <grim@reaperworld.com>
parents: 43279
diff changeset
384
82ae87df1639 Add a test to make sure the flatpak dependencies have been updated
Gary Kramlich <grim@reaperworld.com>
parents: 43279
diff changeset
385 #######################################################################
82ae87df1639 Add a test to make sure the flatpak dependencies have been updated
Gary Kramlich <grim@reaperworld.com>
parents: 43279
diff changeset
386 # Sub directories
82ae87df1639 Add a test to make sure the flatpak dependencies have been updated
Gary Kramlich <grim@reaperworld.com>
parents: 43279
diff changeset
387 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
388 subdir('libpurple')
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
389 subdir('purple-history')
38469
7e4faa3741ad Add Pidgin to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38468
diff changeset
390 subdir('pidgin')
42529
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
391 subdir('protocols')
38515
2d4d3a8fd23c Add documentation to Meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38512
diff changeset
392 subdir('doc')
40461
25f653ee017e Change the logic for determining whether or not to install translations
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
393 subdir('po')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
394
42410
563e7a17c220 Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42405
diff changeset
395 configure_file(output: 'purpleconfig.h', configuration: conf)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
396
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
397 config_home = get_option('devenv-config-dir')
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
398 if config_home == ''
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
399 config_home = meson.global_build_root() / 'config'
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
400 endif
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
401 devenv.set('XDG_CONFIG_HOME', config_home)
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
402
42910
0e06c220042d Add all XDG Base Dir values to the devenv
Gary Kramlich <grim@reaperworld.com>
parents: 42886
diff changeset
403 devenv.set('XDG_CACHE_HOME', meson.global_build_root() / 'cache')
0e06c220042d Add all XDG Base Dir values to the devenv
Gary Kramlich <grim@reaperworld.com>
parents: 42886
diff changeset
404 devenv.set('XDG_DATA_HOME', meson.global_build_root() / 'share')
0e06c220042d Add all XDG Base Dir values to the devenv
Gary Kramlich <grim@reaperworld.com>
parents: 42886
diff changeset
405 devenv.set('XDG_STATE_HOME', meson.global_build_root() / 'state')
0e06c220042d Add all XDG Base Dir values to the devenv
Gary Kramlich <grim@reaperworld.com>
parents: 42886
diff changeset
406 devenv.set('XDG_RUNTIME_DIR', meson.global_build_root() / 'run')
0e06c220042d Add all XDG Base Dir values to the devenv
Gary Kramlich <grim@reaperworld.com>
parents: 42886
diff changeset
407
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
408 meson.add_devenv(devenv)
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
409
42183
865a36ca9b33 Add a custom target for running everything when landing a pull request
Gary Kramlich <grim@reaperworld.com>
parents: 42146
diff changeset
410 if meson.backend() == 'ninja'
865a36ca9b33 Add a custom target for running everything when landing a pull request
Gary Kramlich <grim@reaperworld.com>
parents: 42146
diff changeset
411 run_target('turtles',
42454
37bcbcd66c6f Set our gettext package to pidgin3 so it can we can install next to pidgin2
Gary Kramlich <grim@reaperworld.com>
parents: 42410
diff changeset
412 command : ['ninja', '-C', '@BUILD_ROOT@', 'pidgin3-pot', 'all', 'test'])
42183
865a36ca9b33 Add a custom target for running everything when landing a pull request
Gary Kramlich <grim@reaperworld.com>
parents: 42146
diff changeset
413 endif
865a36ca9b33 Add a custom target for running everything when landing a pull request
Gary Kramlich <grim@reaperworld.com>
parents: 42146
diff changeset
414
42847
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
415 # doc alias target, depends on doc_targets defined above and populated in sub
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
416 # directories.
42850
838621d0d816 Only add the doc alias_target if we have documentation to build
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
417 if doc_targets.length() > 0
838621d0d816 Only add the doc alias_target if we have documentation to build
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
418 alias_target('doc', doc_targets)
838621d0d816 Only add the doc alias_target if we have documentation to build
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
419 endif
42847
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
420
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
421 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
422 'prefix': get_option('prefix'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
423 'bindir': get_option('bindir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
424 'libdir': get_option('libdir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
425 'datadir': get_option('datadir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
426 }, section : 'Directories')
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
427
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
428 # TODO: Remove `.found()` once https://github.com/mesonbuild/meson/pull/10949
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
429 # is merged and in a release that we require.
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
430 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
431 'GTK': get_option('gtkui'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
432 }, section: 'User Interfaces', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
433
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
434 # TODO: Remove `.found()` once https://github.com/mesonbuild/meson/pull/10949
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
435 # is merged and in a release that we require.
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
436 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
437 'KWallet credential provider': kwallet.found(),
41172
db38cdfbc59e Rename the secretservice plugin to libsecret and move it into the plugins directory
Gary Kramlich <grim@reaperworld.com>
parents: 41169
diff changeset
438 'libsecret credential provider': libsecret.found(),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
439 'Unity integration': enable_unity,
42520
bdd5204a9e10 Add WinCred provider to plugin support summary
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42504
diff changeset
440 'WinCred credential provider': IS_WIN32,
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
441 }, section: 'Plugin support', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
442
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
443 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
444 'Enable Introspection': enable_introspection,
41105
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
445 'Generate documentation': get_option('doc'),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
446 'Has you': true,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
447 }, section: 'Miscellaneous', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
448
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
449 if pidgin3path.found()
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
450 summary('You have an old copy of pidgin3 at', pidgin3path.full_path(),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
451 section: 'Warnings')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
452 endif

mercurial