meson.build

Tue, 23 Aug 2022 04:29:09 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 23 Aug 2022 04:29:09 -0500
branch
gtk4
changeset 41582
4ee4a8ddc190
parent 41520
a5dd595361b4
child 41682
289867067994
permissions
-rw-r--r--

Explicitly set show-menubar so our menubars are shown

Testing Done:
Ran and verified the menus are displayed. Shortcut keys aren't working either so that might be part of the issue why they're not showing up with the ui file being set?

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

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')
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
26 purple_soversion = 20
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/"',
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
49 '-DGETTEXT_PACKAGE="@0@"'.format(GETTEXT_PACKAGE)],
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
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
68 PURPLE_LIB_VERSION = '@0@.@1@.@2@'.format(purple_soversion,
38518
1c2e969922b8 Fix versioning of libraries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38515
diff changeset
69 purple_minor_version,
1c2e969922b8 Fix versioning of libraries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38515
diff changeset
70 purple_micro_version)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
71
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
72 package_revision = vcs_tag(
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
73 input : 'package_revision.h.in',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
74 output : 'package_revision.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
75 fallback : meson.project_version())
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
76
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
77 # For running `meson devenv`.
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
78 devenv = environment()
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
79
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
80 # For man pages.
39443
5cffc7a8c5e7 Move project version into meson init.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39428
diff changeset
81 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
82 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
83
38783
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
84 # Used for pkg-config files.
93d9173b62c8 Use meson pkgconfig generator.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38704
diff changeset
85 pkgconfig = import('pkgconfig')
38512
a8ee459a518c Fix bugs in pkgconfig and man page substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38510
diff changeset
86
38538
b542a6787116 Add meson arguments to About dialog.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38537
diff changeset
87 # Storing build arguments
39947
f551e29dba6b Bump minimum Meson to 0.47.0.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39932
diff changeset
88 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
89 conf.set('HAVE_MESON_CONFIG', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
90
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
91 # Checks for programs.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
92 compiler = meson.get_compiler('c')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
93
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
94 # Check for Sun compiler
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
95 SUNCC = compiler.compiles('void main() {__SUNPRO_C;};')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
96
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
97 # Check for Win32
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
98 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
99 windows = import('windows')
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38486
diff changeset
100
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
101 IS_WIN32 = true
38486
046f00bc7f33 Properly search for Windows DNS/socket libraries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38485
diff changeset
102 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
103 dnsapi = compiler.find_library('dnsapi')
38528
419900052fb1 Correctly set IS_WIN32_CROSS_COMPILED.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38527
diff changeset
104 if build_machine.system() != 'windows'
419900052fb1 Correctly set IS_WIN32_CROSS_COMPILED.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38527
diff changeset
105 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
106 endif
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
107 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
108
ac9849be4a10 win32: Define libpidgin DLL name in meson to avoid needing to change it
Mike Ruprecht <cmaiku@gmail.com>
parents: 39084
diff changeset
109 conf.set('LIBPIDGIN_DLL_NAMEW',
40091
ff90f032afe4 Fix name of DLL loaded on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40076
diff changeset
110 'L"libpidgin3-@0@.dll"'.format(purple_soversion))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
111 else
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
112 IS_WIN32 = false
38499
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
113 ws2_32 = []
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
114 dnsapi = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
115 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
116
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
117 # Checks for header files.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
118 # AC_HEADER_SYS_WAIT:
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
119 conf.set('HAVE_SYS_WAIT_H', compiler.has_header('sys/wait.h'))
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
120 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
121
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
122 foreach h : ['fcntl.h', 'stdint.h']
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
123 if compiler.has_header(h)
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
124 conf.set('HAVE_' + h.to_upper().underscorify(), true)
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
125 else
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
126 error(h + ' is required.')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
127 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
128 endforeach
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
129
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
130 # Checks for typedefs, structures, and compiler characteristics.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
131 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
132 prefix : '''
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
133 #include <stdio.h>
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
134 #include <time.h>
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
135 ''')
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
136 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
137
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
138 conf.set('WORDS_BIGENDIAN', host_machine.endian() != 'little')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
139
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
140 # Check for directories
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
141 if IS_WIN32
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
142 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
143 path = get_option('prefix') / get_option(dir + 'dir')
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
144 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
145 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
146
39084
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
147 conf.set('PURPLE_LIBDIR',
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
148 'wpurple_lib_dir("purple-@0@")'.format(purple_major_version))
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
149 conf.set('PIDGIN_LIBDIR',
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
150 'wpurple_lib_dir("pidgin-@0@")'.format(purple_major_version))
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
151 conf.set('FINCH_LIBDIR',
b3aeca5f3dac Remove win32-dirs option
Mike Ruprecht <cmaiku@gmail.com>
parents: 39049
diff changeset
152 'wpurple_lib_dir("finch-@0@")'.format(purple_major_version))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
153
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
154 conf.set('PURPLE_DATADIR', 'wpurple_data_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
155 conf.set('PURPLE_SYSCONFDIR', 'wpurple_sysconf_dir()')
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
156 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
157 else
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
158 foreach dir : ['data', 'sysconf', 'locale']
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
159 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
160 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
161 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
162
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
163 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
164 conf.set_quoted('PURPLE_LIBDIR',
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
165 common_libdir / 'purple-@0@'.format(purple_major_version))
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
166 conf.set_quoted('PIDGIN_LIBDIR',
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
167 common_libdir / 'pidgin-@0@'.format(purple_major_version))
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
168 conf.set_quoted('FINCH_LIBDIR',
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
169 common_libdir / 'finch-@0@'.format(purple_major_version))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
170 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
171
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
172 abslibdir = get_option('prefix') / get_option('libdir')
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
173 PURPLE_PLUGINDIR = abslibdir / 'purple-@0@'.format(purple_major_version)
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
174 conf.set_quoted('PURPLE_PLUGINDIR', PURPLE_PLUGINDIR)
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
175 PIDGIN_PLUGINDIR = abslibdir / 'pidgin-@0@'.format(purple_major_version)
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
176 conf.set_quoted('PIDGIN_PLUGINDIR', PIDGIN_PLUGINDIR)
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40523
diff changeset
177 FINCH_PLUGINDIR = abslibdir / 'finch-@0@'.format(purple_major_version)
38537
cc15d8626c0d Fix quoting in configuration data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38536
diff changeset
178 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
179
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
180 # Check for socklen_t (in Unix98)
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
181 if IS_WIN32
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
182 socket_header = 'ws2tcpip.h'
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
183 else
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
184 socket_header = 'sys/socket.h'
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
185 endif
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
186 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
187 code = '''
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
188 #include <sys/types.h>
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
189 #include <@0@>
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
190 int accept(int, struct sockaddr *, size_t *);
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
191 int main() {}
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
192 '''.format(socket_header)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
193 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
194 conf.set('socklen_t', 'size_t')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
195 else
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
196 conf.set('socklen_t', 'int')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
197 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
198 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
199
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
200 # 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
201 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
202 compiler.has_member('struct sockaddr', 'sa_len',
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
203 prefix : '#include <@0@>'.format(socket_header)))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
204
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
205 # 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
206 # of the C library
40669
48dfed6f4f1f Fix Windows builds and tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40668
diff changeset
207 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
208
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
209 # before gettexting, in case iconv matters
41173
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
210
38508
d2fd9608f691 Properly add Apple Frameworks to build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38507
diff changeset
211 IOKIT = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
212 if host_machine.system() == 'darwin'
41173
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
213 IOKIT = dependency('appleframeworks',
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
214 modules : ['IOKit', 'CoreFoundation'])
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
215
41173
7ecbf09e5ec7 Add a new CredentialProvider for macOS Keychain Access
Gary Kramlich <grim@reaperworld.com>
parents: 41172
diff changeset
216 conf.set('HAVE_IOKIT', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
217 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
218
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
219 #######################################################################
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 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
221 #######################################################################
41217
f79d8f49abe8 Require glib-2.70
Gary Kramlich <grim@reaperworld.com>
parents: 41210
diff changeset
222 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
223 gio = dependency('gio-2.0')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
224 gobject = dependency('gobject-2.0')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
225 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
226 gnome = import('gnome')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
227
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
228 add_project_arguments(
41217
f79d8f49abe8 Require glib-2.70
Gary Kramlich <grim@reaperworld.com>
parents: 41210
diff changeset
229 '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_70',
f79d8f49abe8 Require glib-2.70
Gary Kramlich <grim@reaperworld.com>
parents: 41210
diff changeset
230 '-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
231 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
232
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
233 #######################################################################
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
234 # 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
235 #######################################################################
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
236 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
237
04d027ed3d63 Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
Gary Kramlich <grim@reaperworld.com>
parents: 41317
diff changeset
238 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
239 # Check for GObject Introspection
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
240 #######################################################################
40640
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
241 if get_option('introspection')
41175
372df64f6b1a Bump minimum requirements to match GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41173
diff changeset
242 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
243 else
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
244 enable_introspection = false
ce42c0efab90 Fix introspection meson option.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40619
diff changeset
245 endif
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
246 conf.set('ENABLE_INTROSPECTION', enable_introspection)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
247
40197
75ffd76260fc Bump the gtk minimum to 3.22 and remove gtk3compat.h
Gary Kramlich <grim@reaperworld.com>
parents: 40193
diff changeset
248 #######################################################################
40617
3e8d3f5d6b01 Depend on libnice as farstream already pulled it in and replace purple_network_get_all_local_system_ips with nice_interfaces_get_local_ips.
Gary Kramlich <grim@reaperworld.com>
parents: 40609
diff changeset
249 # Check for libnice
3e8d3f5d6b01 Depend on libnice as farstream already pulled it in and replace purple_network_get_all_local_system_ips with nice_interfaces_get_local_ips.
Gary Kramlich <grim@reaperworld.com>
parents: 40609
diff changeset
250 #######################################################################
41331
4ad6f96d2aca Add a wrap file for libnice that is only used if -Dbuild-dependencies=true is passed to meson
Gary Kramlich <grim@reaperworld.com>
parents: 41319
diff changeset
251 nice = dependency('nice',
4ad6f96d2aca Add a wrap file for libnice that is only used if -Dbuild-dependencies=true is passed to meson
Gary Kramlich <grim@reaperworld.com>
parents: 41319
diff changeset
252 version : '>=0.1.13',
4ad6f96d2aca Add a wrap file for libnice that is only used if -Dbuild-dependencies=true is passed to meson
Gary Kramlich <grim@reaperworld.com>
parents: 41319
diff changeset
253 allow_fallback : get_option('build-dependencies'))
40617
3e8d3f5d6b01 Depend on libnice as farstream already pulled it in and replace purple_network_get_all_local_system_ips with nice_interfaces_get_local_ips.
Gary Kramlich <grim@reaperworld.com>
parents: 40609
diff changeset
254
3e8d3f5d6b01 Depend on libnice as farstream already pulled it in and replace purple_network_get_all_local_system_ips with nice_interfaces_get_local_ips.
Gary Kramlich <grim@reaperworld.com>
parents: 40609
diff changeset
255 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
256 # 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
257 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
258 if get_option('gtkui')
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
259 gtk = dependency('gtk4', version : '>= 4.0.0')
41520
a5dd595361b4 Replace libhandy with libadwaita
Gary Kramlich <grim@reaperworld.com>
parents: 41518
diff changeset
260 libadwaita = dependency('libadwaita-1', version : '>= 1')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
261
41060
965750033e86 Move the talkatu subproject to a fallback subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41057
diff changeset
262 talkatu_dep = dependency('talkatu',
965750033e86 Move the talkatu subproject to a fallback subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41057
diff changeset
263 version: '>=0.1.0',
965750033e86 Move the talkatu subproject to a fallback subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41057
diff changeset
264 fallback: ['talkatu', 'talkatu_dep'])
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
265 endif # GTK
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 ENABLE_GTK = get_option('gtkui')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
268
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
269
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
270 #######################################################################
38865
a62a8251e350 Use correct X flag when configuring GNT plugins.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38851
diff changeset
271 # 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
272 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
273 if IS_WIN32
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
274 x11 = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
275 else
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
276 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
277 endif
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
278 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
279
a62a8251e350 Use correct X flag when configuring GNT plugins.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38851
diff changeset
280 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
281 # Check for LibXML2 (required)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
282 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
283 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
284 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
285 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
286 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
287
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
288 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
289 # Check for JSON-GLib (required)
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
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
292 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
293
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
294 #######################################################################
39989
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
295 # Check for libsoup (required)
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
296 #######################################################################
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
297
41233
a944f57bacd1 Add an option to build against libsoup3
Gary Kramlich <grim@reaperworld.com>
parents: 41224
diff changeset
298 libsoup = disabler()
a944f57bacd1 Add an option to build against libsoup3
Gary Kramlich <grim@reaperworld.com>
parents: 41224
diff changeset
299 if get_option('soup3')
a944f57bacd1 Add an option to build against libsoup3
Gary Kramlich <grim@reaperworld.com>
parents: 41224
diff changeset
300 libsoup = dependency('libsoup-3.0', version : '>= 3')
41210
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
301 add_project_arguments(
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
302 '-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_3_0',
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
303 '-DSOUP_VERSION_MAX_ALLOWED=SOUP_VERSION_3_0',
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
304 language : 'c')
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
305 else
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
306 libsoup = dependency('libsoup-2.4', version : '>= 2.42')
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
307 add_project_arguments(
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
308 '-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_42',
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
309 '-DSOUP_VERSION_MAX_ALLOWED=SOUP_VERSION_2_42',
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
310 language : 'c')
c083249ce49d Enable building with libsoup 3
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41194
diff changeset
311 endif
39989
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
312
e557e081686c Check for libsoup as a dependency.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39951
diff changeset
313 #######################################################################
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
314 # Check for sqlite3 (required)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
315 #######################################################################
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
316 sqlite3 = dependency('sqlite3', version : '>= 3.27.0')
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
317
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
318 #######################################################################
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
319 # Check for GStreamer
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
320 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
321
40547
86e0c5080a58 vv: Switch to GTK sinks by default.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40536
diff changeset
322 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
323
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
324 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
325 # 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
326 #######################################################################
41490
2b1695327414 Make VV libraries required
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41488
diff changeset
327 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
328
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
329 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
330 # Check for Meanwhile headers (for Sametime)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
331 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
332 meanwhile = dependency('meanwhile', version : ['>= 1.0.0', '< 2.0.0'], required : get_option('meanwhile'))
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
333 gmime = dependency('gmime-3.0', version : '>= 3.0.0', required : get_option('meanwhile'))
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
334 enable_meanwhile = meanwhile.found() and gmime.found()
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
335
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 # Check for Native Avahi headers (for Bonjour)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
338 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
339
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
340 if IS_WIN32
38497
fcf50c9e4138 Remove non-pkg-config fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38496
diff changeset
341 # Just keep enabled.
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
342 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
343 avahi = []
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
344 else
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
345 # Attempt to autodetect Avahi
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
346 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
347 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
348 avahi = [avahi_client, avahi_glib]
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
349 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
350 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
351
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
352
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
353 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
354 # Check for SILC client includes and libraries
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
355 #######################################################################
40113
cfe7bb06fd11 Require silc >= 1.1.1.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40091
diff changeset
356 silc = dependency('silcclient', version : '>= 1.1.1', required : get_option('silc'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
357
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
358 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
359 # Check for Gadu-Gadu protocol library (libgadu)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
360 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
361
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
362 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
363
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
364 if libgadu.found()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
365 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
366 if get_option('libgadu').auto()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
367 libgadu = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
368 else
38482
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
369 message('''
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
370 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
371
38532
ce789b341027 Fix a few inconsistencies between build systems.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38531
diff changeset
372 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
373 ./configure --with-openssl=no
38532
ce789b341027 Fix a few inconsistencies between build systems.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38531
diff changeset
374 Then rerun this Meson build
38482
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
375 ''')
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
376 endif
aeed00394acf Update meson build to match autotools.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38480
diff changeset
377 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
378 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
379
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
380
41224
32a7796a2a36 Create a demo protocol plugin that right now just adds contacts and statuses.
Gary Kramlich <grim@reaperworld.com>
parents: 41217
diff changeset
381 DEFAULT_PRPLS = ['bonjour', 'demo', 'facebook', 'gg', 'irc', 'jabber',
32a7796a2a36 Create a demo protocol plugin that right now just adds contacts and statuses.
Gary Kramlich <grim@reaperworld.com>
parents: 41217
diff changeset
382 'novell', 'null', 'sametime', 'silc', 'zephyr']
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
383 ALL_PRPLS = DEFAULT_PRPLS + ['null']
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
384
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
385 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
386 if dynamic_list == ['all']
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
387 dynamic_list = DEFAULT_PRPLS
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
388 endif
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
389 DYNAMIC_PRPLS = []
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
390 foreach prpl : dynamic_list
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
391 if prpl == ''
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
392 # 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
393 elif prpl == 'sametime' and not enable_meanwhile
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
394 # Do nothing.
38485
1e6d05a66fd2 Fix several undefined variables when things are disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38483
diff changeset
395 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
396 # Do nothing.
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
397 elif prpl == 'silc' and not silc.found()
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
398 # Do nothing.
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
399 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
400 # Do nothing.
38505
34ec73e49cd8 Remove duplicate is_win32 variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38503
diff changeset
401 elif prpl == 'zephyr' and IS_WIN32
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
402 # Do nothing.
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
403 else
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
404 DYNAMIC_PRPLS += [prpl]
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
405 endif
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
406 endforeach
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
407
38443
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
408 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
409 DYNAMIC_DEMO = DYNAMIC_PRPLS.contains('demo')
38443
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
410 DYNAMIC_FACEBOOK = DYNAMIC_PRPLS.contains('facebook')
38784
d003e9305e58 Fix broken gg enabling.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38783
diff changeset
411 DYNAMIC_GG = DYNAMIC_PRPLS.contains('gg')
38443
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
412 DYNAMIC_IRC = DYNAMIC_PRPLS.contains('irc')
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
413 DYNAMIC_JABBER = DYNAMIC_PRPLS.contains('jabber')
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
414 DYNAMIC_NOVELL = DYNAMIC_PRPLS.contains('novell')
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
415 DYNAMIC_NULL = DYNAMIC_PRPLS.contains('null')
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
416 DYNAMIC_SAMETIME = DYNAMIC_PRPLS.contains('sametime')
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
417 DYNAMIC_SILC = DYNAMIC_PRPLS.contains('silc')
86f66bcb3d62 Add bonjour to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38442
diff changeset
418 DYNAMIC_ZEPHYR = DYNAMIC_PRPLS.contains('zephyr')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
419
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
420 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
421 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
422 conf.set('HAVE_UNAME',
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
423 compiler.has_function('uname'))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
424
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
425
38524
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
426 add_project_arguments(
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
427 '-DPURPLE_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
428 '-DPIDGIN_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
429 '-DFINCH_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
430 '-DGNT_DISABLE_DEPRECATED',
4b665cbc6aa7 Actually apply deprecation flags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38523
diff changeset
431 language : 'c')
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
432 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
433 # We enable -Wall later.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
434 # 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
435 # 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
436 # CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'`
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
437
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
438 # 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
439 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
440 # Future Possibilities
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
441 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
442 # Consider adding -Wbad-function-cast.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
443 # 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
444 # We'd need an intermediate variable.
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
445 #
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
446 foreach newflag : [
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
447 '-Waggregate-return',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
448 '-Wcast-align',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
449 '-Wdeclaration-after-statement',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
450 '-Wendif-labels',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
451 '-Werror-implicit-function-declaration',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
452 '-Wextra -Wno-unused-parameter',
39109
1bb4f9bcee45 meson: Silence -Wformat-security ignored without -Wformat warning
Mike Ruprecht <cmaiku@gmail.com>
parents: 39088
diff changeset
453 '-Wformat',
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
454 '-Wformat-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
455 '-Werror=format-security',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
456 '-Winit-self',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
457 '-Wmissing-declarations',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
458 '-Wmissing-noreturn',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
459 '-Wmissing-prototypes',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
460 '-Wpointer-arith',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
461 '-Wfloat-equal',
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
462 '-Wundef']
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
463 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
464 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
465 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
466 endforeach
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
467 endif
39247
ee65e9be3a5f Don't mess with flags when using plain buildtype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39206
diff changeset
468 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
469 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
470 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
471
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
472 pidgin3path = find_program('pidgin3', required : false)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
473
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
474 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
475 # 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
476 # 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
477 #######################################################################
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
478 UNITY = [
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
479 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
480 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
481 ]
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
482 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
483 if enable_unity
38509
551e37963d38 Fix some missing substitutions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38508
diff changeset
484 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
485 else
ba0c47533bb2 Fix Meson warning of undefined substitution.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38641
diff changeset
486 conf.set('USES_MM_CHAT_SECTION', '')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
487 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
488
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
489 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
490 # Check for Secret Service headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
491 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
492
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
493 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
494 libsecret = disabler()
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
495 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
496 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
497 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
498
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
499 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
500 # Check for KWallet headers
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
501 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
502
40999
9e5a5eb54a57 bump the minimum meson to 0.56.0 and fix the deprecations
Gary Kramlich <grim@reaperworld.com>
parents: 40989
diff changeset
503 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
504 kwallet = disabler()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
505 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
506 # Use C++ compiler
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
507 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
508 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
509 '-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
510 '-DDISPLAY_VERSION="@0@"'.format(meson.project_version()),
40481
65040053e80f Fix online help link.
Alejandro Garcia <>
parents: 40461
diff changeset
511 '-DPURPLE_WEBSITE="https://pidgin.im/"',
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
512 '-DGETTEXT_PACKAGE="@0@"'.format(GETTEXT_PACKAGE)],
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
513 language : 'cpp')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
514
39923
f977be37ebc0 Get the kwallet plugin compiling again
Gary Kramlich <grim@reaperworld.com>
parents: 39830
diff changeset
515 qt5 = import('qt5')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
516
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
517 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
518
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
519 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
520 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
521
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
522 #######################################################################
40224
6b658d1458c8 Fix a handful of issues found in review
Gary Kramlich <grim@reaperworld.com>
parents: 40219
diff changeset
523 # Check for GPlugin
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
524 #######################################################################
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
525 gplugin_version = ['>=0.38.0', '<0.39.0']
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
526 gplugin_dep = dependency('gplugin',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
527 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
528 fallback : ['gplugin', 'gplugin_dep'])
40216
bf78d5476c6a initial start of moving the plugins dialog to glade
Gary Kramlich <grim@reaperworld.com>
parents: 40207
diff changeset
529
41056
a9447c1653a5 Convert the gplugin subproject to use the auto fallback stuff of dependency.
Gary Kramlich <grim@reaperworld.com>
parents: 41040
diff changeset
530 if get_option('gtkui')
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
531 gplugin_gtk_dep = dependency('gplugin-gtk4',
41402
4f7076b8234a Update gplugin to 0.38
Gary Kramlich <grim@reaperworld.com>
parents: 41331
diff changeset
532 version : gplugin_version,
41518
31072565a926 And so begins the start of the GTK4 port
Gary Kramlich <grim@reaperworld.com>
parents: 41490
diff changeset
533 fallback : ['gplugin-gtk4', 'gplugin_gtk4_dep'])
39426
2e4f09a49404 Add fallback for gplugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39419
diff changeset
534 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
535
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
536 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
537 # Check for Cyrus-SASL (for xmpp/irc)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
538 #######################################################################
40668
4be4ea8a8dca Delete some now-unused networking bits
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40665
diff changeset
539 foreach func : ['snprintf']
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
540 conf.set('HAVE_' + func.to_upper(),
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
541 compiler.has_function(func))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
542 endforeach
41488
95f59c2bc50d Make cyrus-sasl required
Gary Kramlich <grim@reaperworld.com>
parents: 41485
diff changeset
543 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
544
39951
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
545 #######################################################################
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
546 # Check for external libzephyr
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
547 #######################################################################
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
548 ext_zephyr = dependency('zephyr', required : get_option('zephyr'))
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
549 EXTERNAL_LIBZEPHYR = ext_zephyr.found()
e9eaaff671c9 Convert optional dependencies into Meson features.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39950
diff changeset
550 conf.set('LIBZEPHYR_EXT', EXTERNAL_LIBZEPHYR)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
551
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
552 #######################################################################
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
553 # Check for Kerberos (for Zephyr)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
554 #######################################################################
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
555 conf.set('ZEPHYR_INT32', 'long')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
556 #AC_SUBST(KRB4_CFLAGS)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
557 #AC_SUBST(KRB4_LDFLAGS)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
558 #AC_SUBST(KRB4_LIBS)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
559 kerberos = get_option('krb4')
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
560 if kerberos
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
561 if kerberos != 'yes'
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
562 # KRB4_CFLAGS='-I${kerberos}/include'
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
563 # if test -d '$kerberos/include/kerberosIV' ; then
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
564 # KRB4_CFLAGS='$KRB4_CFLAGS -I${kerberos}/include/kerberosIV'
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
565 # fi
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
566 # KRB4_LDFLAGS='-L${kerberos}/lib'
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
567 elif run_command('test', '-d', '/usr/local/include/kerberosIV').returncode() == 0
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
568 # KRB4_CFLAGS='-I/usr/local/include/kerberosIV'
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
569 elif run_command('test', '-d', '/usr/include/kerberosIV').returncode() == 0
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
570 # KRB4_CFLAGS='-I/usr/include/kerberosIV'
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
571 endif
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
572 conf.set('ZEPHYR_USES_KERBEROS', true)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
573
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
574 # AC_CHECK_LIB(krb4, krb_rd_req,
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
575 # [KRB4_LIBS='-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err'],
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
576 # [AC_CHECK_LIB(krb, krb_rd_req,
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
577 # [KRB4_LIBS='-lkrb -ldes'],
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
578 # [AC_MSG_ERROR([Kerberos 4 libraries not found])],
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
579 # -ldes)],
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
580 # -ldes425 -lkrb5 -lk5crypto -lcom_err)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
581 # AC_CHECK_FUNCS(krb_set_key krb_rd_req krb_get_lrealm)
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
582 # AC_CHECK_FUNCS(krb_get_err_text krb_log)
38499
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
583 krb4 = []
38456
43e01a578957 Add zephyr to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38453
diff changeset
584 endif
43e01a578957 Add zephyr to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38453
diff changeset
585 if not kerberos
38499
4f6cafbbf4f1 Replace declare_dependency() with [].
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38497
diff changeset
586 krb4 = []
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
587 endif
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
588
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
589 #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
590 #AC_MSG_RESULT(no)
39830
c6fc1928c22c zephyr: Remove unused defines and headers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39710
diff changeset
591 foreach func : ['timegm']
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
592 conf.set('HAVE_' + func.to_upper(),
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
593 compiler.has_function(func))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
594 endforeach
40773
75794647db18 Remove unused Windows ioctl wrapper.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40678
diff changeset
595 foreach header : 'sgtty.h sys/cdefs.h sys/file.h sys/filio.h sys/msgbuf.h sys/select.h sys/wait.h termios.h'.split()
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
596 conf.set('HAVE_' + header.to_upper().underscorify(),
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
597 compiler.has_header(header))
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
598 endforeach
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
599
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
600 # 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
601 # 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
602 if host_machine.system() in ['freebsd', 'openbsd']
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
603 prefix = '''
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
604 #include <sys/types.h>
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
605 '''
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
606
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
607 conf.set('HAVE_SYS_SYSCTL_H',
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
608 compiler.has_header('sys/sysctl.h', prefix : prefix))
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
609 conf.set('HAVE_SYS_SOCKET_H',
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
610 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
611 endif
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
612
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
613 #AC_VAR_TIMEZONE_EXTERNALS
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
614
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
615 #######################################################################
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
616 # 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
617 #######################################################################
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
618
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
619 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
620 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
621 endif
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
622
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
623 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
624 '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
625 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
626 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
627 )
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
628
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
629 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
630 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
631
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
632 #######################################################################
02c3569bc32b Add gi-docgen as a subproject so we can convert the documentation to it
Gary Kramlich <grim@reaperworld.com>
parents: 41103
diff changeset
633 # 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
634 #######################################################################
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
635 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
636 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
637 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
638 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
639 endif
38441
f8a1733e22bf Move everything to config.h as originally intended.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38440
diff changeset
640 conf.set('DEBUG', enable_debug)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
641
38440
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
642 # 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
643 toplevel_inc = include_directories('.')
98da84139485 Fix config.h usage with meson.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38439
diff changeset
644
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
645 subdir('libpurple')
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents: 41082
diff changeset
646 subdir('purple-history')
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38461
diff changeset
647 subdir('finch')
38469
7e4faa3741ad Add Pidgin to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38468
diff changeset
648 subdir('pidgin')
38515
2d4d3a8fd23c Add documentation to Meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38512
diff changeset
649 subdir('doc')
40461
25f653ee017e Change the logic for determining whether or not to install translations
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
650 subdir('po')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
651
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
652 configure_file(output : 'config.h',
38464
fbd38fefb3b3 Clean up several archaic configuration attempts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38463
diff changeset
653 configuration : conf)
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
654
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
655 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
656 if config_home == ''
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
657 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
658 endif
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
659 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
660
41194
8c2b4f1de39c Remove a no longer necessary meson version check
Gary Kramlich <grim@reaperworld.com>
parents: 41192
diff changeset
661 meson.add_devenv(devenv)
41066
00e6bda3ef95 Add a Meson devenv configuration.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41060
diff changeset
662
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
663 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
664 'prefix': get_option('prefix'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
665 'bindir': get_option('bindir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
666 'libdir': get_option('libdir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
667 'datadir': get_option('datadir'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
668 }, section : 'Directories')
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
669
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
670 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
671 'GTK': get_option('gtkui'),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
672 'console': enable_consoleui,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
673 'X11 support': x11.found(),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
674 }, section: 'User Interfaces', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
675
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
676 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
677 'Dynamic protocols': DYNAMIC_PRPLS,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
678 'Cyrus SASL support (IRC and XMPP)': sasl.found(),
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
679 'External libzephyr': EXTERNAL_LIBZEPHYR,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
680 'Use kerberos 4 with zephyr': kerberos,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
681 }, 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
682
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
683 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
684 '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
685 'libsecret credential provider': libsecret.found(),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
686 'Unity integration': enable_unity,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
687 }, section: 'Plugin support', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
688
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
689 summary({
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
690 '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
691 'Generate documentation': get_option('doc'),
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
692 'Has you': true,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
693 'Print debugging messages': enable_debug,
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
694 }, section: 'Miscellaneous', bool_yn: true)
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
695
40989
f77cf4694364 We should be checking for the pidgin3 executable not pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 40988
diff changeset
696 if pidgin3path.found()
41000
cb640ea0f315 Use Meson summary() function.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40999
diff changeset
697 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
698 section: 'Warnings')
38439
03f1a1642a68 Add meson build for libpurple only.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
699 endif

mercurial