meson.build

Thu, 08 Aug 2024 21:34:07 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 08 Aug 2024 21:34:07 -0500
changeset 42847
fbb0d252bc35
parent 42846
c176f1b12aaa
child 42850
838621d0d816
permissions
-rw-r--r--

Move the documentation into more appropriate places

This moves the libpurple documentation into the libpurple directory, the Pidgin
documentation into the pidgin directory, and removes the old protocols
documentation remnants.

Testing Done:
Ran the `doc` target and had the turtles check in on things.

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

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 #
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
23 project('pidgin', 'c',
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
24 version : '3.0.0-devel',
42621
eafa80c55ae9 Require meson 1.0.0
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
25 meson_version : '>=1.0.0',
42073
31532581724a Set our global C standard to C17 and warning_level to 2
Gary Kramlich <grim@reaperworld.com>
parents: 42033
diff changeset
26 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
27 purple_soversion = 0
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
28
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
29 parts = meson.project_version().split('-')
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
30 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
31 purple_extra_version = parts[1]
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
32 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
33 purple_extra_version = ''
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
34 endif
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
35
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
36 parts = parts[0].split('.')
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
37 purple_major_version = parts[0]
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
38 purple_minor_version = parts[1]
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
39 purple_micro_version = parts[2]
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
40
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
41 GETTEXT_PACKAGE='pidgin3'
41485
74a04628357f Remove some no longer necessary meson options
Gary Kramlich <grim@reaperworld.com>
parents: 41402
diff changeset
42 find_program('gettext')
74a04628357f Remove some no longer necessary meson options
Gary Kramlich <grim@reaperworld.com>
parents: 41402
diff changeset
43 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
44
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
45 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
46 '-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
47 '-DDISPLAY_VERSION="@0@"'.format(meson.project_version()),
40481
65040053e80f Fix online help link.
Alejandro Garcia <>
parents: 40461
diff changeset
48 '-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
49 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
50 language : 'c')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
51 conf = configuration_data()
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
52 man_conf = configuration_data()
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
53 version_conf = configuration_data()
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
54
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 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
56 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
57 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
58
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
59 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
60 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
61 conf.set_quoted('PURPLE_BUILD_ENDIANNESS', host_machine.endian())
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
62
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
63 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
64 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
65 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
66 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
67 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
68 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
69
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
70 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
71
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
72 package_revision = vcs_tag(
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
73 input : 'package_revision.h.in',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
74 output : 'package_revision.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
75 fallback : meson.project_version())
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
76
42847
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
77 # 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
78 # doc alias below.
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
79 doc_targets = []
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
80
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
81 # For running `meson devenv`.
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
82 devenv = environment()
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
83
42814
59e6529a1e78 Mutliple cleanups to Purple.Message
Gary Kramlich <grim@reaperworld.com>
parents: 42678
diff changeset
84 # 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
85 # properties.
59e6529a1e78 Mutliple cleanups to Purple.Message
Gary Kramlich <grim@reaperworld.com>
parents: 42678
diff changeset
86 devenv.set('G_ENABLE_DIAGNOSTIC', '1')
59e6529a1e78 Mutliple cleanups to Purple.Message
Gary Kramlich <grim@reaperworld.com>
parents: 42678
diff changeset
87
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
88 # For man pages.
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
89 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
90 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
91
38783
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
92 # Used for pkg-config files.
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
93 pkgconfig = import('pkgconfig')
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
94
38538
b542a6787116 Add meson arguments to About dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38537
diff changeset
95 # 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
96 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
97 conf.set('HAVE_MESON_CONFIG', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
98
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
99 # Checks for programs.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
100 compiler = meson.get_compiler('c')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
101
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
102 # Check for Sun compiler
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
103 SUNCC = compiler.compiles('void main() {__SUNPRO_C;};')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
104
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
105 # Check for Win32
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
106 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
107 windows = import('windows')
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38486
diff changeset
108
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
109 IS_WIN32 = true
38486
046f00bc7f33 Properly search for Windows DNS/socket libraries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38485
diff changeset
110 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
111 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
112 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
113
42471
860c2eed1a73 Fix DLL naming in metadata on Windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42454
diff changeset
114 conf.set('LIBPIDGIN_DLL_NAMEW', f'L"pidgin3-@purple_soversion@.dll"')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
115 else
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
116 IS_WIN32 = false
38499
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
117 ws2_32 = []
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
118 dnsapi = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
119 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
120
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
121 # Checks for header files.
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
122 conf.set('HAVE_UNISTD_H', compiler.has_header('unistd.h'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
123
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
124 # Check for directories
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
125 if IS_WIN32
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
126 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
127 path = get_option('prefix') / get_option(dir + 'dir')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
128 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
129 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
130
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
131 conf.set('PURPLE_LIBDIR',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
132 f'wpurple_lib_dir("purple-@purple_major_version@")')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
133 conf.set('PIDGIN_LIBDIR',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
134 f'wpurple_lib_dir("pidgin-@purple_major_version@")')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
135
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
136 conf.set('PURPLE_DATADIR', 'wpurple_data_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
137 conf.set('PURPLE_SYSCONFDIR', 'wpurple_sysconf_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
138 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
139 else
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
140 foreach dir : ['data', 'sysconf', 'locale']
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
141 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
142 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
143 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
144
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
145 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
146 conf.set_quoted('PURPLE_LIBDIR',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
147 common_libdir / f'purple-@purple_major_version@')
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
148 conf.set_quoted('PIDGIN_LIBDIR',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
149 common_libdir / f'pidgin-@purple_major_version@')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
150 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
151
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
152 abslibdir = get_option('prefix') / get_option('libdir')
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
153 PURPLE_PLUGINDIR = abslibdir / f'purple-@purple_major_version@'
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
154 conf.set_quoted('PURPLE_PLUGINDIR', PURPLE_PLUGINDIR)
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
155 PIDGIN_PLUGINDIR = abslibdir / f'pidgin-@purple_major_version@'
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
156 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
157
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
158 # 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
159 # of the C library
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
160 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
161
38508
d2fd9608f691 Properly add Apple Frameworks to build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38507
diff changeset
162 IOKIT = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
163 if host_machine.system() == 'darwin'
41173
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
164 IOKIT = dependency('appleframeworks',
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
165 modules : ['IOKit', 'CoreFoundation'])
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
166
41173
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
167 conf.set('HAVE_IOKIT', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
168 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
169
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
170 #######################################################################
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
171 # 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
172 #######################################################################
41847
5d7611d8e18b Fix an issue where gio was bombing out early and causing our unit tests to fail
Gary Kramlich <grim@reaperworld.com>
parents: 41843
diff changeset
173 # Once we require >= 2.74.0, remove the hack in the if(TRUE) block in
5d7611d8e18b Fix an issue where gio was bombing out early and causing our unit tests to fail
Gary Kramlich <grim@reaperworld.com>
parents: 41843
diff changeset
174 # libpurple/core.c.
42251
63639da06cbd Require GTK 4.10 and GLib 2.76
Gary Kramlich <grim@reaperworld.com>
parents: 42229
diff changeset
175 glib = dependency('glib-2.0', version : '>= 2.76.0')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
176 gio = dependency('gio-2.0')
38485
1e6d05a66fd2 Fix several undefined variables when things are disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38483
diff changeset
177 gnome = import('gnome')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
178
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
179 add_project_arguments(
42251
63639da06cbd Require GTK 4.10 and GLib 2.76
Gary Kramlich <grim@reaperworld.com>
parents: 42229
diff changeset
180 '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_76',
63639da06cbd Require GTK 4.10 and GLib 2.76
Gary Kramlich <grim@reaperworld.com>
parents: 42229
diff changeset
181 '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_76',
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
182 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
183
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
184 #######################################################################
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
185 # Check for gdk-pixbuf (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
186 #######################################################################
42203
9cb78e799a79 Port the demo protocol plugin to contacts
Gary Kramlich <grim@reaperworld.com>
parents: 42183
diff changeset
187 gdk_pixbuf = dependency('gdk-pixbuf-2.0', version : '>= 2.26.0')
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
188
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
189 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
190 # Check for GObject Introspection
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
191 #######################################################################
40640
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
192 if get_option('introspection')
41175
372df64f6b1a Bump minimum requirements to match GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41173
diff changeset
193 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
194 else
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
195 enable_introspection = false
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
196 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
197
40197
75ffd76260fc Bump the gtk minimum to 3.22 and remove gtk3compat.h
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
198 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
199 # 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
200 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
201 if get_option('gtkui')
42251
63639da06cbd Require GTK 4.10 and GLib 2.76
Gary Kramlich <grim@reaperworld.com>
parents: 42229
diff changeset
202 gtk = dependency('gtk4', version : '>= 4.10.0')
41852
cde17b22217f Update to libadwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41848
diff changeset
203 libadwaita = dependency('libadwaita-1', version : '>= 1.2')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
204 endif # GTK
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
205
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
206 ENABLE_GTK = get_option('gtkui')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
207
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
208
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
209 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
210 # Check for LibXML2 (required)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
211 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
212 libxml = dependency('libxml-2.0', version : '>= 2.6.0')
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
213 if libxml.version().version_compare('<2.6.18')
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
214 message('Versions of libxml2 < 2.6.18 may contain bugs that could cause XMPP messages to be discarded.')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
215 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
216
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
217 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
218 # Check for JSON-GLib (required)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
219 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
220
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
221 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
222
41828
023b57b090f6 Remove the upnp API
Gary Kramlich <grim@reaperworld.com>
parents: 41827
diff changeset
223 ######################################################################
39989
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
224 # Check for libsoup (required)
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
225 #######################################################################
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
226
41921
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
227 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
228 add_project_arguments(
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
229 '-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
230 '-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
231 language : 'c')
39989
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
232
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
233 #######################################################################
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
234 # Check for sqlite3 (required)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
235 #######################################################################
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
236 sqlite3 = dependency('sqlite3', version : '>= 3.27.0')
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
237
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
238 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
239 # Check for GStreamer
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
240 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
241
40547
86e0c5080a58 vv: Switch to GTK sinks by default.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40536
diff changeset
242 gstreamer = dependency('gstreamer-1.0', version : '>=1.14')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
243
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
244 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
245 # Check for Raw data streams support in Farstream
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
246 #######################################################################
41490
2b1695327414 Make VV libraries required
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41488
diff changeset
247 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
248
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
249 #######################################################################
42547
7a4558293dca Add birb as a subproject and make IRCv3 use it
Gary Kramlich <grim@reaperworld.com>
parents: 42529
diff changeset
250 # Check for birb glib utility library
7a4558293dca Add birb as a subproject and make IRCv3 use it
Gary Kramlich <grim@reaperworld.com>
parents: 42529
diff changeset
251 #######################################################################
42581
73eda937c387 Add purple_contact_info_get_menu and PurpleContactInfo::populate-menu
Gary Kramlich <grim@reaperworld.com>
parents: 42564
diff changeset
252 birb_dep = dependency('birb')
42547
7a4558293dca Add birb as a subproject and make IRCv3 use it
Gary Kramlich <grim@reaperworld.com>
parents: 42529
diff changeset
253
7a4558293dca Add birb as a subproject and make IRCv3 use it
Gary Kramlich <grim@reaperworld.com>
parents: 42529
diff changeset
254 #######################################################################
42529
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
255 # Check for Xeme XMPP Library
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
256 #######################################################################
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
257 xeme = dependency('xeme')
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
258
42289
27ca1fa06a24 Require hasl 0.2.0 or newer
Gary Kramlich <grim@reaperworld.com>
parents: 42284
diff changeset
259 dependency('shoes', required : false)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
260
42671
68cc8544b438 Remove the old Jabber/XMPP protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents: 42670
diff changeset
261 DEFAULT_PRPLS = ['demo', 'ircv3', 'xmpp']
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
262
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
263 dynamic_list = get_option('dynamic-prpls').split(',')
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
264 if dynamic_list == ['all']
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
265 dynamic_list = DEFAULT_PRPLS
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
266 endif
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
267 DYNAMIC_PRPLS = []
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
268 foreach prpl : dynamic_list
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
269 if prpl == ''
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
270 # The list was empty; do nothing.
42529
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
271 elif prpl == 'xmpp' and not xeme.found()
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
272 # Do nothing.
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
273 else
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
274 DYNAMIC_PRPLS += [prpl]
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
275 endif
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
276 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
277
41224
32a7796a2a36 Create a demo protocol plugin that right now just adds contacts and statuses.
Gary Kramlich <grim@reaperworld.com>
parents: 41217
diff changeset
278 DYNAMIC_DEMO = DYNAMIC_PRPLS.contains('demo')
41750
7ab7d79ac0c5 Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents: 41707
diff changeset
279 DYNAMIC_IRCV3 = DYNAMIC_PRPLS.contains('ircv3')
42529
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
280 DYNAMIC_XMPP = DYNAMIC_PRPLS.contains('xmpp')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
281
38524
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
282 add_project_arguments(
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
283 '-DPURPLE_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
284 '-DPIDGIN_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
285 '-DGNT_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
286 language : 'c')
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
287 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
288 # We enable -Wall later.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
289 # 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
290 # 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
291 # CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'`
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
292
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
293 # 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
294 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
295 # Future Possibilities
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
296 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
297 # Consider adding -Wbad-function-cast.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
298 # 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
299 # We'd need an intermediate variable.
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 foreach newflag : [
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
302 '-Waggregate-return',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
303 '-Wcast-align',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
304 '-Wdeclaration-after-statement',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
305 '-Wendif-labels',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
306 '-Werror-implicit-function-declaration',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
307 '-Wextra -Wno-unused-parameter',
39109
1bb4f9bcee45 meson: Silence -Wformat-security ignored without -Wformat warning
Mike Ruprecht <cmaiku@gmail.com>
parents: 39088
diff changeset
308 '-Wformat',
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
309 '-Wformat-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
310 '-Werror=format-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
311 '-Winit-self',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
312 '-Wmissing-declarations',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
313 '-Wmissing-noreturn',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
314 '-Wmissing-prototypes',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
315 '-Wpointer-arith',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
316 '-Wfloat-equal',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
317 '-Wundef']
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
318 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
319 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
320 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
321 endforeach
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
322 endif
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
323 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
324 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
325 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
326
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
327 pidgin3path = find_program('pidgin3', required : false)
38439
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 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
330 # 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
331 # 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
332 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
333 UNITY = [
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
334 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
335 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
336 ]
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
337 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
338 if enable_unity
38509
551e37963d38 Fix some missing substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38508
diff changeset
339 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
340 else
ba0c47533bb2 Fix Meson warning of undefined substitution.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38641
diff changeset
341 conf.set('USES_MM_CHAT_SECTION', '')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
342 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
343
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
344 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
345 # Check for Secret Service headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
346 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
347
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
348 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
349 libsecret = disabler()
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
350 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
351 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
352 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
353
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
354 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
355 # Check for KWallet headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
356 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
357
40999
9e5a5eb54a57 bump the minimum meson to 0.56.0 and fix the deprecations
Gary Kramlich <grim@reaperworld.com>
parents: 40989
diff changeset
358 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
359 kwallet = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
360 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
361 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
362 '-DDISPLAY_VERSION="@0@"'.format(meson.project_version()),
40481
65040053e80f Fix online help link.
Alejandro Garcia <>
parents: 40461
diff changeset
363 '-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
364 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
365 language : 'cpp')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
366
39923
f977be37ebc0 Get the kwallet plugin compiling again
Gary Kramlich <grim@reaperworld.com>
parents: 39830
diff changeset
367 qt5 = import('qt5')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
368
42373
7f7617773171 fix problem that Pidgin3 couldn't be run using broadway GDK_BACKEND anymore
Markus Fischer <ivanhoe@fiscari.de>
parents: 42372
diff changeset
369 qt5_dep = dependency('qt5', modules: ['Core'], required : get_option('kwallet'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
370
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
371 kwallet = dependency('KF5Wallet', required : get_option('kwallet'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
372 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
373
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
374 #######################################################################
40224
6b658d1458c8 Fix a handful of issues found in review
Gary Kramlich <grim@reaperworld.com>
parents: 40219
diff changeset
375 # Check for GPlugin
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
376 #######################################################################
42824
f28571c54666 Depend on GPlugin 0.44.0
Gary Kramlich <grim@reaperworld.com>
parents: 42814
diff changeset
377 gplugin_version = ['>=0.44.0', '<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
378 gplugin_dep = dependency('gplugin',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
379 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
380 fallback : ['gplugin', 'gplugin_dep'])
40216
bf78d5476c6a initial start of moving the plugins dialog to glade
Gary Kramlich <grim@reaperworld.com>
parents: 40207
diff changeset
381
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
382 if get_option('gtkui')
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
383 gplugin_gtk_dep = dependency('gplugin-gtk4',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
384 version : gplugin_version,
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
385 fallback : ['gplugin-gtk4', 'gplugin_gtk4_dep'])
39426
2e4f09a49404 Add fallback for gplugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39419
diff changeset
386 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
387
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
388 #######################################################################
42110
23dae27bd7ca Remove cyrus sasl as a dependency
Gary Kramlich <grim@reaperworld.com>
parents: 42094
diff changeset
389 # Check for Hasl
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
390 #######################################################################
42825
36fb7ca95acb Update our subprojects
Gary Kramlich <grim@reaperworld.com>
parents: 42824
diff changeset
391 hasl = dependency('hasl', version : '>= 0.3.0')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
392
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
393 #######################################################################
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
394 # Documentation
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
395 #######################################################################
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
396
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
397 if get_option('doc') and not get_option('introspection')
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
398 error('Documentation requires GObject Introspection.')
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
399 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
400
42372
ba3a49903905 Remove unused Meson variables
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42357
diff changeset
401 dependency(
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
402 'gi-docgen', version: '>= 2021.1',
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
403 fallback: ['gi-docgen', 'dummy_dep'],
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
404 required: get_option('doc')
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
405 )
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
406
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
407 gidocgen = find_program('gi-docgen', required : get_option('doc'))
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
408 docs_dir = get_option('prefix') / get_option('datadir') / 'doc'
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
409
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
410 #######################################################################
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
411 # 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
412 #######################################################################
42410
563e7a17c220 Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42405
diff changeset
413 # 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
414 toplevel_inc = include_directories('.')
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
415
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
416 # 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
417 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
418
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
419 subdir('libpurple')
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
420 subdir('purple-history')
38469
7e4faa3741ad Add Pidgin to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38468
diff changeset
421 subdir('pidgin')
42529
f00a798a38a6 Stub out our new modern XMPP implementation
Gary Kramlich <grim@reaperworld.com>
parents: 42520
diff changeset
422 subdir('protocols')
38515
2d4d3a8fd23c Add documentation to Meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38512
diff changeset
423 subdir('doc')
40461
25f653ee017e Change the logic for determining whether or not to install translations
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
424 subdir('po')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
425
42410
563e7a17c220 Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42405
diff changeset
426 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
427
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
428 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
429 if config_home == ''
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
430 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
431 endif
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
432 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
433
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
434 meson.add_devenv(devenv)
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
435
42183
865a36ca9b33 Add a custom target for running everything when landing a pull request
Gary Kramlich <grim@reaperworld.com>
parents: 42146
diff changeset
436 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
437 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
438 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
439 endif
865a36ca9b33 Add a custom target for running everything when landing a pull request
Gary Kramlich <grim@reaperworld.com>
parents: 42146
diff changeset
440
42847
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
441 # 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
442 # directories.
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
443 alias_target('doc', doc_targets)
fbb0d252bc35 Move the documentation into more appropriate places
Gary Kramlich <grim@reaperworld.com>
parents: 42846
diff changeset
444
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
445 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
446 'prefix': get_option('prefix'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
447 'bindir': get_option('bindir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
448 'libdir': get_option('libdir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
449 'datadir': get_option('datadir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
450 }, section : 'Directories')
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
451
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
452 # 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
453 # 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
454 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
455 'GTK': get_option('gtkui'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
456 }, section: 'User Interfaces', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
457
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
458 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
459 'Dynamic protocols': DYNAMIC_PRPLS,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
460 }, section: 'Protocol Support', bool_yn: true, list_sep: ', ')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
461
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
462 # 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
463 # 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
464 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
465 '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
466 'libsecret credential provider': libsecret.found(),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
467 '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
468 'WinCred credential provider': IS_WIN32,
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
469 }, section: 'Plugin support', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
470
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
471 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
472 '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
473 'Generate documentation': get_option('doc'),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
474 'Has you': true,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
475 }, section: 'Miscellaneous', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
476
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
477 if pidgin3path.found()
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
478 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
479 section: 'Warnings')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
480 endif

mercurial