meson.build

Sat, 01 Jul 2023 02:01:14 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 01 Jul 2023 02:01:14 -0500
changeset 42229
605f8cba9704
parent 42203
9cb78e799a79
child 42251
63639da06cbd
permissions
-rw-r--r--

Add gobject-introspection for ircv3

This includes a pkgconfig file and installs the header files as well as
purpleircv3.h to ${prefix}/include/purple-3/libpurple/protocols/ircv3.

This does not yet include the documentation as I assume that's going to touch
a bunch of files.

Testing Done:
Compiled against gplugin 0.41.0 locally without issue. Also installed to a local prefix and verified everything looked okie dokie.

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

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

mercurial