meson.build

Tue, 17 Jan 2023 02:29:19 -0600

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Tue, 17 Jan 2023 02:29:19 -0600
changeset 42028
f3090252de57
parent 42027
b1826d4885af
child 42032
aa90ee3e8ad5
permissions
-rw-r--r--

Re-design account manager as a GtkListBox

Moves to a nicely spaced `GtkListBox`. The avatar is implemented using `AdwAvatar` solely for the autogenerated colour for accounts without an icon to give them some uniqueness, but it could be moved to `PidginAvatar`.

As a followup, I'd probably move the Account Editors from a separate dialog to stack within the manager, similar to how the Plugin dialog works. Neither the previous manager nor this one prevents you from opening two editors for an account, but this would remove that issue as well.

Testing Done:
Toggled enabled/disabled to check that account status worked and was displayed. Added a few bogus accounts to confirm that errors are shown. Activated a row to show the editor. Hit the delete button and cancelled/approved and confirmed that account was kept/removed.

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

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 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
8 # If any functions have been added to libpurple, Pidgin, or Finch:
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 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
12 # If backwards compatibility has been broken in libpurple, Pidgin, or Finch:
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',
41142
a9f32316d828 Fix includes for the introspection targets that I thought weren't needed during the gi-docgen conversation
Gary Kramlich <grim@reaperworld.com>
parents: 41112
diff changeset
25 meson_version : '>=0.58.0')
42010
3820d0d16092 Change the soname of libpurple to libpurple3
Gary Kramlich <grim@reaperworld.com>
parents: 41921
diff changeset
26 purple_soversion = 0
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
27
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
28 parts = meson.project_version().split('-')
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
29 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
30 purple_extra_version = parts[1]
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
31 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
32 purple_extra_version = ''
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
33 endif
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
34
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
35 parts = parts[0].split('.')
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
36 purple_major_version = parts[0]
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
37 purple_minor_version = parts[1]
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
38 purple_micro_version = parts[2]
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
39
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
40 GETTEXT_PACKAGE=meson.project_name()
41485
74a04628357f Remove some no longer necessary meson options
Gary Kramlich <grim@reaperworld.com>
parents: 41402
diff changeset
41 find_program('gettext')
74a04628357f Remove some no longer necessary meson options
Gary Kramlich <grim@reaperworld.com>
parents: 41402
diff changeset
42 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
43
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 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
45 '-DHAVE_CONFIG_H=1',
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)
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
56 conf.set_quoted('PACKAGE', meson.project_name())
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
57 conf.set_quoted('PACKAGE_NAME', meson.project_name())
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
58 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
59 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
60
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
61 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
62 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
63 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
64 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
65 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
66 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
67
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
68 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
69
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
70 package_revision = vcs_tag(
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
71 input : 'package_revision.h.in',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
72 output : 'package_revision.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
73 fallback : meson.project_version())
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
74
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
75 # For running `meson devenv`.
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
76 devenv = environment()
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
77
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
78 # For man pages.
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
79 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
80 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
81
38783
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
82 # Used for pkg-config files.
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
83 pkgconfig = import('pkgconfig')
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
84
38538
b542a6787116 Add meson arguments to About dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38537
diff changeset
85 # Storing build arguments
39947
f551e29dba6b Bump minimum Meson to 0.47.0.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39932
diff changeset
86 meson.add_postconf_script('mkmesonconf.py')
f551e29dba6b Bump minimum Meson to 0.47.0.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39932
diff changeset
87 conf.set('HAVE_MESON_CONFIG', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
88
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
89 # Checks for programs.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
90 compiler = meson.get_compiler('c')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
91
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
92 # Check for Sun compiler
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
93 SUNCC = compiler.compiles('void main() {__SUNPRO_C;};')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
94
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
95 # Check for Win32
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
96 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
97 windows = import('windows')
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38486
diff changeset
98
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
99 IS_WIN32 = true
38486
046f00bc7f33 Properly search for Windows DNS/socket libraries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38485
diff changeset
100 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
101 dnsapi = compiler.find_library('dnsapi')
38528
419900052fb1 Correctly set IS_WIN32_CROSS_COMPILED.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38527
diff changeset
102 if build_machine.system() != 'windows'
419900052fb1 Correctly set IS_WIN32_CROSS_COMPILED.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38527
diff changeset
103 conf.set('IS_WIN32_CROSS_COMPILED', true)
419900052fb1 Correctly set IS_WIN32_CROSS_COMPILED.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38527
diff changeset
104 endif
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
105 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
106
ac9849be4a10 win32: Define libpidgin DLL name in meson to avoid needing to change it
Mike Ruprecht <cmaiku@gmail.com>
parents: 39084
diff changeset
107 conf.set('LIBPIDGIN_DLL_NAMEW',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
108 f'L"libpidgin3-@purple_soversion@.dll"')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
109 else
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
110 IS_WIN32 = false
38499
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
111 ws2_32 = []
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
112 dnsapi = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
113 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
114
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
115 # Checks for header files.
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
116 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
117
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
118 # Checks for typedefs, structures, and compiler characteristics.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
119 time_t_size = compiler.sizeof('time_t',
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
120 prefix : '''
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
121 #include <stdio.h>
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
122 #include <time.h>
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
123 ''')
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
124 conf.set('SIZEOF_TIME_T', time_t_size)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
125
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
126 # Check for directories
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
127 if IS_WIN32
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
128 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
129 path = get_option('prefix') / get_option(dir + 'dir')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
130 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
131 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
132
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
133 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
134 f'wpurple_lib_dir("purple-@purple_major_version@")')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
135 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
136 f'wpurple_lib_dir("pidgin-@purple_major_version@")')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
137 conf.set('FINCH_LIBDIR',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
138 f'wpurple_lib_dir("finch-@purple_major_version@")')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
139
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
140 conf.set('PURPLE_DATADIR', 'wpurple_data_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
141 conf.set('PURPLE_SYSCONFDIR', 'wpurple_sysconf_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
142 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
143 else
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
144 foreach dir : ['data', 'sysconf', 'locale']
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
145 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
146 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
147 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
148
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
149 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
150 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
151 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
152 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
153 common_libdir / f'pidgin-@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('FINCH_LIBDIR',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
155 common_libdir / f'finch-@purple_major_version@')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
156 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
157
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
158 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
159 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
160 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
161 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
162 conf.set_quoted('PIDGIN_PLUGINDIR', PIDGIN_PLUGINDIR)
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
163 FINCH_PLUGINDIR = abslibdir / f'finch-@purple_major_version@'
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
164 conf.set_quoted('FINCH_PLUGINDIR', FINCH_PLUGINDIR)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
165
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
166 # Check for socklen_t (in Unix98)
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
167 if IS_WIN32
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
168 socket_header = 'ws2tcpip.h'
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
169 else
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
170 socket_header = 'sys/socket.h'
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
171 endif
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
172 if not compiler.has_header_symbol(socket_header, 'socklen_t')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
173 code = '''
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
174 #include <sys/types.h>
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
175 #include <@0@>
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
176 int accept(int, struct sockaddr *, size_t *);
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
177 int main() {}
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
178 '''.format(socket_header)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
179 if compiler.compiles(code, name : 'socklen_t is size_t')
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
180 conf.set('socklen_t', 'size_t')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
181 else
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
182 conf.set('socklen_t', 'int')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
183 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
184 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
185
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
186 # Some systems do not have sa_len field for struct sockaddr.
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
187 conf.set('HAVE_STRUCT_SOCKADDR_SA_LEN',
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
188 compiler.has_member('struct sockaddr', 'sa_len',
41888
9db0b73c8fab Take advantage of f-strings in Meson
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41887
diff changeset
189 prefix : f'#include <@socket_header@>'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
190
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
191 # 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
192 # of the C library
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
193 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
194
38508
d2fd9608f691 Properly add Apple Frameworks to build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38507
diff changeset
195 IOKIT = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
196 if host_machine.system() == 'darwin'
41173
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
197 IOKIT = dependency('appleframeworks',
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
198 modules : ['IOKit', 'CoreFoundation'])
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
199
41173
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
200 conf.set('HAVE_IOKIT', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
201 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
202
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
203 #######################################################################
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
204 # 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
205 #######################################################################
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
206 # 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
207 # libpurple/core.c.
41217
f79d8f49abe8 Require glib-2.70
Gary Kramlich <grim@reaperworld.com>
parents: 41210
diff changeset
208 glib = dependency('glib-2.0', version : '>= 2.70.0')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
209 gio = dependency('gio-2.0')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
210 gobject = dependency('gobject-2.0')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
211 gthread = dependency('gthread-2.0')
38485
1e6d05a66fd2 Fix several undefined variables when things are disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38483
diff changeset
212 gnome = import('gnome')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
213
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
214 add_project_arguments(
41217
f79d8f49abe8 Require glib-2.70
Gary Kramlich <grim@reaperworld.com>
parents: 41210
diff changeset
215 '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_70',
f79d8f49abe8 Require glib-2.70
Gary Kramlich <grim@reaperworld.com>
parents: 41210
diff changeset
216 '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_70',
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
217 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
218
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
219 #######################################################################
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
220 # 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
221 #######################################################################
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
222 gdk_pixbuf = dependency('gdk-pixbuf-2.0')
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
223
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
224 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
225 # Check for GObject Introspection
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
226 #######################################################################
40640
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
227 if get_option('introspection')
41175
372df64f6b1a Bump minimum requirements to match GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41173
diff changeset
228 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
229 else
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
230 enable_introspection = false
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
231 endif
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
232 conf.set('ENABLE_INTROSPECTION', enable_introspection)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
233
40197
75ffd76260fc Bump the gtk minimum to 3.22 and remove gtk3compat.h
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
234 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
235 # 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
236 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
237 if get_option('gtkui')
42011
bb38b9441073 Create a new PidginContactList widget that shows the PurplePersons that PurpleContactManager is tracking
Gary Kramlich <grim@reaperworld.com>
parents: 42010
diff changeset
238 gtk = dependency('gtk4', version : '>= 4.6.0')
41852
cde17b22217f Update to libadwaita 1.2
Gary Kramlich <grim@reaperworld.com>
parents: 41848
diff changeset
239 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
240
41060
965750033e86 Move the talkatu subproject to a fallback subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41057
diff changeset
241 talkatu_dep = dependency('talkatu',
965750033e86 Move the talkatu subproject to a fallback subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41057
diff changeset
242 version: '>=0.1.0',
965750033e86 Move the talkatu subproject to a fallback subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41057
diff changeset
243 fallback: ['talkatu', 'talkatu_dep'])
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
244 endif # GTK
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
245
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
246 ENABLE_GTK = get_option('gtkui')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
247
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 #######################################################################
38865
a62a8251e350 Use correct X flag when configuring GNT plugins.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38851
diff changeset
250 # Check if we should compile with X support
a62a8251e350 Use correct X flag when configuring GNT plugins.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38851
diff changeset
251 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
252 if IS_WIN32
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
253 x11 = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
254 else
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
255 x11 = dependency('x11', required : get_option('x'))
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
256 endif
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
257 conf.set('HAVE_X11', x11.found())
38865
a62a8251e350 Use correct X flag when configuring GNT plugins.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38851
diff changeset
258
a62a8251e350 Use correct X flag when configuring GNT plugins.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38851
diff changeset
259 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
260 # Check for LibXML2 (required)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
261 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
262 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
263 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
264 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
265 endif
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 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
268 # Check for JSON-GLib (required)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
269 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
270
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
271 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
272
41828
023b57b090f6 Remove the upnp API
Gary Kramlich <grim@reaperworld.com>
parents: 41827
diff changeset
273 ######################################################################
39989
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
274 # Check for libsoup (required)
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
275 #######################################################################
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
276
41921
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
277 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
278 add_project_arguments(
24e5305ebcb6 Remove soupcompat.h since we require libsoup3 now
Gary Kramlich <grim@reaperworld.com>
parents: 41913
diff changeset
279 '-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
280 '-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
281 language : 'c')
39989
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
282
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
283 #######################################################################
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
284 # Check for sqlite3 (required)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
285 #######################################################################
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
286 sqlite3 = dependency('sqlite3', version : '>= 3.27.0')
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
287
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
288 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
289 # Check for GStreamer
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
290 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
291
40547
86e0c5080a58 vv: Switch to GTK sinks by default.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40536
diff changeset
292 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
293
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 # 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
296 #######################################################################
41490
2b1695327414 Make VV libraries required
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41488
diff changeset
297 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
298
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
299 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
300 # Check for Native Avahi headers (for Bonjour)
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
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
303 if IS_WIN32
38497
fcf50c9e4138 Remove non-pkg-config fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38496
diff changeset
304 # Just keep enabled.
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
305 enable_avahi = get_option('avahi').enabled() or get_option('avahi').auto()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
306 avahi = []
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
307 else
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
308 # Attempt to autodetect Avahi
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
309 avahi_client = dependency('avahi-client', required : get_option('avahi'))
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
310 avahi_glib = dependency('avahi-glib', required : get_option('avahi'))
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
311 avahi = [avahi_client, avahi_glib]
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
312 enable_avahi = avahi_client.found() and avahi_glib.found()
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
313 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
314
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 # Check for Gadu-Gadu protocol library (libgadu)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
317 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
318
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
319 libgadu = dependency('libgadu', version : '>= 1.12.0', required : get_option('libgadu'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
320
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
321 if libgadu.found()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
322 if not compiler.has_function('gg_is_gpl_compliant', dependencies : libgadu)
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
323 if get_option('libgadu').auto()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
324 libgadu = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
325 else
38482
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
326 message('''
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
327 libgadu is not compatible with the GPL when compiled with OpenSSL support.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
328
38532
ce789b341027 Fix a few inconsistencies between build systems.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38531
diff changeset
329 To link against libgadu, please recompile it using:
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
330 ./configure --with-openssl=no
38532
ce789b341027 Fix a few inconsistencies between build systems.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38531
diff changeset
331 Then rerun this Meson build
38482
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
332 ''')
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
333 endif
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
334 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
335 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
336
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
337
41913
8bdccbde0536 Remove the Sametime protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents: 41912
diff changeset
338 DEFAULT_PRPLS = ['bonjour', 'demo', 'facebook', 'gg', 'irc', 'ircv3', 'jabber']
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
339
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
340 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
341 if dynamic_list == ['all']
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
342 dynamic_list = DEFAULT_PRPLS
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
343 endif
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
344 DYNAMIC_PRPLS = []
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
345 foreach prpl : dynamic_list
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
346 if prpl == ''
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
347 # The list was empty; do nothing.
38485
1e6d05a66fd2 Fix several undefined variables when things are disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38483
diff changeset
348 elif prpl == 'bonjour' and not enable_avahi
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
349 # Do nothing.
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
350 elif prpl == 'gg' and not libgadu.found()
38482
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
351 # Do nothing.
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
352 else
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
353 DYNAMIC_PRPLS += [prpl]
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
354 endif
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
355 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
356
38443
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
357 DYNAMIC_BONJOUR = DYNAMIC_PRPLS.contains('bonjour')
41224
32a7796a2a36 Create a demo protocol plugin that right now just adds contacts and statuses.
Gary Kramlich <grim@reaperworld.com>
parents: 41217
diff changeset
358 DYNAMIC_DEMO = DYNAMIC_PRPLS.contains('demo')
38443
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
359 DYNAMIC_FACEBOOK = DYNAMIC_PRPLS.contains('facebook')
38784
d003e9305e58 Fix broken gg enabling.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38783
diff changeset
360 DYNAMIC_GG = DYNAMIC_PRPLS.contains('gg')
38443
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
361 DYNAMIC_IRC = DYNAMIC_PRPLS.contains('irc')
41750
7ab7d79ac0c5 Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents: 41707
diff changeset
362 DYNAMIC_IRCV3 = DYNAMIC_PRPLS.contains('ircv3')
38443
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
363 DYNAMIC_JABBER = DYNAMIC_PRPLS.contains('jabber')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
364
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
365 conf.set('HAVE_SYS_UTSNAME_H',
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
366 compiler.has_header('sys/utsname.h'))
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
367 conf.set('HAVE_UNAME',
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
368 compiler.has_function('uname'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
369
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
370
38524
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
371 add_project_arguments(
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
372 '-DPURPLE_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
373 '-DPIDGIN_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
374 '-DFINCH_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
375 '-DGNT_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
376 language : 'c')
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
377 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
378 # We enable -Wall later.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
379 # 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
380 # 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
381 # CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'`
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
382
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
383 # 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
384 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
385 # Future Possibilities
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
386 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
387 # Consider adding -Wbad-function-cast.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
388 # 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
389 # We'd need an intermediate variable.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
390 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
391 foreach newflag : [
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
392 '-Waggregate-return',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
393 '-Wcast-align',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
394 '-Wdeclaration-after-statement',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
395 '-Wendif-labels',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
396 '-Werror-implicit-function-declaration',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
397 '-Wextra -Wno-unused-parameter',
39109
1bb4f9bcee45 meson: Silence -Wformat-security ignored without -Wformat warning
Mike Ruprecht <cmaiku@gmail.com>
parents: 39088
diff changeset
398 '-Wformat',
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
399 '-Wformat-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
400 '-Werror=format-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
401 '-Winit-self',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
402 '-Wmissing-declarations',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
403 '-Wmissing-noreturn',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
404 '-Wmissing-prototypes',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
405 '-Wpointer-arith',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
406 '-Wfloat-equal',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
407 '-Wundef']
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
408 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
409 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
410 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
411 endforeach
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
412 endif
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
413 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
414 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
415 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
416
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
417 pidgin3path = find_program('pidgin3', required : false)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
418
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
419 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
420 # 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
421 # 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
422 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
423 UNITY = [
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
424 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
425 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
426 ]
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
427 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
428 if enable_unity
38509
551e37963d38 Fix some missing substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38508
diff changeset
429 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
430 else
ba0c47533bb2 Fix Meson warning of undefined substitution.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38641
diff changeset
431 conf.set('USES_MM_CHAT_SECTION', '')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
432 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
433
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
434 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
435 # Check for Secret Service headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
436 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
437
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
438 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
439 libsecret = disabler()
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
440 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
441 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
442 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
443
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
444 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
445 # Check for KWallet headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
446 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
447
40999
9e5a5eb54a57 bump the minimum meson to 0.56.0 and fix the deprecations
Gary Kramlich <grim@reaperworld.com>
parents: 40989
diff changeset
448 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
449 kwallet = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
450 else
40568
0f0215662de5 Don't require C++ compiler if kwallet is not required.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40566
diff changeset
451 # Use C++ compiler
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
452 cxx_compiler = meson.get_compiler('cpp')
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
453 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
454 '-DHAVE_CONFIG_H=1',
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
455 '-DDISPLAY_VERSION="@0@"'.format(meson.project_version()),
40481
65040053e80f Fix online help link.
Alejandro Garcia <>
parents: 40461
diff changeset
456 '-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
457 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
458 language : 'cpp')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
459
39923
f977be37ebc0 Get the kwallet plugin compiling again
Gary Kramlich <grim@reaperworld.com>
parents: 39830
diff changeset
460 qt5 = import('qt5')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
461
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
462 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
463
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
464 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
465 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
466
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
467 #######################################################################
40224
6b658d1458c8 Fix a handful of issues found in review
Gary Kramlich <grim@reaperworld.com>
parents: 40219
diff changeset
468 # Check for GPlugin
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
469 #######################################################################
41848
cc8bddbd1b82 Update to gplugin 0.39.0
Gary Kramlich <grim@reaperworld.com>
parents: 41847
diff changeset
470 gplugin_version = ['>=0.39.0', '<0.40.0']
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
471 gplugin_dep = dependency('gplugin',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
472 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
473 fallback : ['gplugin', 'gplugin_dep'])
40216
bf78d5476c6a initial start of moving the plugins dialog to glade
Gary Kramlich <grim@reaperworld.com>
parents: 40207
diff changeset
474
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
475 if get_option('gtkui')
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
476 gplugin_gtk_dep = dependency('gplugin-gtk4',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
477 version : gplugin_version,
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
478 fallback : ['gplugin-gtk4', 'gplugin_gtk4_dep'])
39426
2e4f09a49404 Add fallback for gplugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39419
diff changeset
479 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
480
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
481 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
482 # Check for Cyrus-SASL (for xmpp/irc)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
483 #######################################################################
41488
95f59c2bc50d Make cyrus-sasl required
Gary Kramlich <grim@reaperworld.com>
parents: 41485
diff changeset
484 sasl = dependency('libsasl2', version : '>= 2.0')
39058
c189b8dbd56e meson: Update Cyrus SASL dependency to use pkg-config
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
485
42027
b1826d4885af Support gsasl version 1.10.0 as fedora and openbsd don't have 2.0.0
Gary Kramlich <grim@reaperworld.com>
parents: 42023
diff changeset
486 gsasl = dependency('libgsasl', version : '>= 1.10.0')
42023
5bda87b90d8d Implement SASL for IRCv3 using GSASL
Gary Kramlich <grim@reaperworld.com>
parents: 42011
diff changeset
487
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
488 #AC_MSG_CHECKING(for me pot o' gold)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
489 #AC_MSG_RESULT(no)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
490
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
491 # OpenBSD 6.7 and FreeBSD 12 require including sys/types.h before sys/sysctl.h.
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
492 # NetBSD 9.0 doesn't care.
41317
fa45763d9c71 Use correct check for host system
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41247
diff changeset
493 if host_machine.system() in ['freebsd', 'openbsd']
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
494 prefix = '''
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
495 #include <sys/types.h>
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
496 '''
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
497
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
498 conf.set('HAVE_SYS_SYSCTL_H',
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
499 compiler.has_header('sys/sysctl.h', prefix : prefix))
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
500 conf.set('HAVE_SYS_SOCKET_H',
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
501 compiler.has_header('sys/socket.h'))
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
502 endif
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
503
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
504 #######################################################################
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
505 # 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
506 #######################################################################
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
507
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
508 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
509 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
510 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
511
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
512 gidocgen_dep = dependency(
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
513 '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
514 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
515 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
516 )
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
517
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
518 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
519 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
520
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
521 #######################################################################
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
522 # 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
523 #######################################################################
41082
d19ef491d1aa Fix console logging and turn it on unconditionally if we're doing a debug build
Gary Kramlich <grim@reaperworld.com>
parents: 41078
diff changeset
524 if ['debug', 'debugoptimize'].contains(get_option('buildtype'))
d19ef491d1aa Fix console logging and turn it on unconditionally if we're doing a debug build
Gary Kramlich <grim@reaperworld.com>
parents: 41078
diff changeset
525 enable_debug = true
d19ef491d1aa Fix console logging and turn it on unconditionally if we're doing a debug build
Gary Kramlich <grim@reaperworld.com>
parents: 41078
diff changeset
526 else
d19ef491d1aa Fix console logging and turn it on unconditionally if we're doing a debug build
Gary Kramlich <grim@reaperworld.com>
parents: 41078
diff changeset
527 enable_debug = get_option('console-logging')
d19ef491d1aa Fix console logging and turn it on unconditionally if we're doing a debug build
Gary Kramlich <grim@reaperworld.com>
parents: 41078
diff changeset
528 endif
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
529 conf.set('DEBUG', enable_debug)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
530
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
531 # So that config.h may be found.
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
532 toplevel_inc = include_directories('.')
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
533
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
534 subdir('libpurple')
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
535 subdir('purple-history')
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
536 subdir('finch')
38469
7e4faa3741ad Add Pidgin to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38468
diff changeset
537 subdir('pidgin')
38515
2d4d3a8fd23c Add documentation to Meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38512
diff changeset
538 subdir('doc')
40461
25f653ee017e Change the logic for determining whether or not to install translations
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
539 subdir('po')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
540
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
541 configure_file(output : 'config.h',
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
542 configuration : conf)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
543
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
544 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
545 if config_home == ''
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
546 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
547 endif
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
548 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
549
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
550 meson.add_devenv(devenv)
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
551
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
552 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
553 'prefix': get_option('prefix'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
554 'bindir': get_option('bindir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
555 'libdir': get_option('libdir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
556 'datadir': get_option('datadir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
557 }, section : 'Directories')
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
558
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
559 # 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
560 # 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
561 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
562 'GTK': get_option('gtkui'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
563 'console': enable_consoleui,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
564 'X11 support': x11.found(),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
565 }, section: 'User Interfaces', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
566
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
567 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
568 'Dynamic protocols': DYNAMIC_PRPLS,
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
569 'Cyrus SASL support (IRC and XMPP)': sasl,
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
570 }, 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
571
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41826
diff changeset
572 # 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
573 # 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
574 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
575 '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
576 'libsecret credential provider': libsecret.found(),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
577 'Unity integration': enable_unity,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
578 }, section: 'Plugin support', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
579
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
580 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
581 '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
582 'Generate documentation': get_option('doc'),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
583 'Has you': true,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
584 'Print debugging messages': enable_debug,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
585 }, section: 'Miscellaneous', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
586
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
587 if pidgin3path.found()
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
588 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
589 section: 'Warnings')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
590 endif

mercurial