protocols/ircv3/meson.build

Mon, 03 Jun 2024 20:17:06 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 03 Jun 2024 20:17:06 -0500
changeset 42772
4103b1b41a29
parent 42769
c488d7af2923
child 42786
8bbe6478d623
permissions
-rw-r--r--

IRCv3: Require Ibis 0.1.0 and wire up SASL

Testing Done:
Connected to my local ergo instance and verified it authenticated correctly by looking at the sniffed traffic.
Verified the sasl-login-name account property was set when sasl auth was successful.
Ran the turtles.

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

41750
7ab7d79ac0c5 Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 IRCV3_SOURCES = [
41783
5ea6c18ef7a8 Add the ability to connect to IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41774
diff changeset
2 'purpleircv3connection.c',
41916
4ee9cb957595 Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41822
diff changeset
3 'purpleircv3core.c',
4ee9cb957595 Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41822
diff changeset
4 'purpleircv3messagehandlers.c',
4ee9cb957595 Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41822
diff changeset
5 'purpleircv3protocol.c',
42320
21cab78fb7d2 IRCv3: Move from ProtocolIM to ProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42229
diff changeset
6 'purpleircv3protocolconversation.c',
41916
4ee9cb957595 Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41822
diff changeset
7 ]
4ee9cb957595 Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41822
diff changeset
8
4ee9cb957595 Implement sending im's for IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41822
diff changeset
9 IRCV3_HEADERS = [
41783
5ea6c18ef7a8 Add the ability to connect to IRCv3
Gary Kramlich <grim@reaperworld.com>
parents: 41774
diff changeset
10 'purpleircv3connection.h',
41774
170078e728c0 Implement a parser for ircv3 and add unit tests to it.
Gary Kramlich <grim@reaperworld.com>
parents: 41750
diff changeset
11 'purpleircv3core.h',
41796
ebe4ff278b02 Use the parser on ircv3 messages and handle pings
Gary Kramlich <grim@reaperworld.com>
parents: 41783
diff changeset
12 'purpleircv3messagehandlers.h',
41750
7ab7d79ac0c5 Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 'purpleircv3protocol.h',
42320
21cab78fb7d2 IRCv3: Move from ProtocolIM to ProtocolConversation
Gary Kramlich <grim@reaperworld.com>
parents: 42229
diff changeset
14 'purpleircv3protocolconversation.h',
41750
7ab7d79ac0c5 Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 ]
7ab7d79ac0c5 Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
17 if not DYNAMIC_IRCV3
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
18 subdir_done()
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
19 endif
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
20
42772
4103b1b41a29 IRCv3: Require Ibis 0.1.0 and wire up SASL
Gary Kramlich <grim@reaperworld.com>
parents: 42769
diff changeset
21 ibis_dep = dependency('ibis', version : '>= 0.1.0')
42769
c488d7af2923 Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents: 42652
diff changeset
22
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
23 ircv3_filebase = f'purple-@purple_major_version@-ircv3'
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
24
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
25 ircv3_includes = include_directories('.')
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
26 ircv3_include_base = purple_include_base / 'protocols/ircv3'
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
27
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
28
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
29 ircv3_resources = gnome.compile_resources('ircv3resource',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
30 'resources/ircv3.gresource.xml',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
31 source_dir : 'resources',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
32 c_name : 'purple_ircv3')
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
33 IRCV3_SOURCES += ircv3_resources
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
34
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
35 ircv3_h_includes = []
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
36 foreach header : IRCV3_HEADERS
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
37 ircv3_h_includes += f'#include <@header@>'
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
38 endforeach
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
39 ircv3_h_conf = configuration_data()
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
40 ircv3_h_conf.set('IRCV3_H_INCLUDES', '\n'.join(ircv3_h_includes))
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
41
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
42 ircv3_h = configure_file(input : 'purpleircv3.h.in',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
43 output : 'purpleircv3.h',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
44 configuration : ircv3_h_conf,
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
45 install : true,
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
46 install_dir : get_option('includedir') / ircv3_include_base)
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
47
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
48 install_headers(IRCV3_HEADERS,
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
49 subdir : ircv3_include_base)
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
50
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
51 ircv3_prpl = shared_library('ircv3', IRCV3_SOURCES + IRCV3_HEADERS + [ircv3_h],
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
52 c_args : ['-DPURPLE_IRCV3_COMPILATION', '-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Purple-IRCv3"'],
42472
409148c5c5b7 Add symbol visibility on IRCv3 protocol plugin
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42372
diff changeset
53 gnu_symbol_visibility : 'hidden',
42769
c488d7af2923 Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents: 42652
diff changeset
54 dependencies : [birb_dep, libpurple_dep, glib, gio, hasl, ibis_dep],
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
55 install : true,
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
56 install_dir : PURPLE_PLUGINDIR)
41750
7ab7d79ac0c5 Create a skeleton for the IRCv3 protocol plugin
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
58 ircv3_dep = declare_dependency(
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
59 sources : [IRCV3_SOURCES, IRCV3_HEADERS],
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
60 include_directories : ircv3_includes,
42769
c488d7af2923 Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents: 42652
diff changeset
61 dependencies : [birb_dep, libpurple_dep, glib, gio, hasl, ibis_dep])
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
62
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
63 pkgconfig.generate(
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
64 # we purposely don't put the library here because you should not be
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
65 # linking to the plugin, everything will be resolved during runtime.
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
66 name : 'ircv3',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
67 description : 'a purple3 protocol plugin for IRCv3',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
68 version : meson.project_version(),
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
69 subdirs : [ircv3_include_base],
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
70 filebase : ircv3_filebase,
42489
0edea2beaa95 Use libraries when generating pkgconfig files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42472
diff changeset
71 libraries : [gio, glib, hasl, libpurple])
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
72
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
73 meson.override_dependency(ircv3_filebase, ircv3_dep)
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
74
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
75 devenv.append('PURPLE_PLUGIN_PATH', meson.current_build_dir())
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
76
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
77 if get_option('introspection')
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
78 GPLUGIN_INTROSPECTION = dependency('gplugin-introspection')
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
79
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
80 plugin_filename = ircv3_prpl.full_path()
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
81
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
82 ircv3_introspection_stub = executable('ircv3generategir',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
83 sources : 'ircv3generategir.c',
42533
c4ea929fde6f Remove unused winsock linkage
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42530
diff changeset
84 dependencies : [ircv3_dep, libpurple_dep, glib, gio, hasl, GPLUGIN_INTROSPECTION],
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
85 c_args : ['-DPURPLE_IRCV3_COMPILATION', f'-DPLUGIN_FILENAME="@plugin_filename@"'],
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
86 install : false)
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
87
42372
ba3a49903905 Remove unused Meson variables
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42336
diff changeset
88 gnome.generate_gir(
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
89 ircv3_introspection_stub,
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
90 sources : [IRCV3_SOURCES, IRCV3_HEADERS],
42769
c488d7af2923 Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents: 42652
diff changeset
91 includes : ['Birb-1.0', 'GLib-2.0', 'GObject-2.0', 'GPlugin-1.0', 'Ibis-1.0', libpurple_gir[0]],
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
92 namespace : 'PurpleIRCv3',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
93 symbol_prefix : 'purple_ircv3',
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
94 nsversion : '1.0',
41941
355bd17297f0 Set the C standard to C99 and set warning_level to 2 for the IRCv3 Protocol Plugin
Gary Kramlich <grim@reaperworld.com>
parents: 41916
diff changeset
95 install : true,
42769
c488d7af2923 Move the IRCv3 protocol plugin to our new Ibis library
Gary Kramlich <grim@reaperworld.com>
parents: 42652
diff changeset
96 dependencies: [birb_dep, gplugin_dep, ibis_dep],
42229
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
97 export_packages : ['ircv3'],
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
98 extra_args : ['-DPURPLE_IRCV3_COMPILATION', '--verbose'])
605f8cba9704 Add gobject-introspection for ircv3
Gary Kramlich <grim@reaperworld.com>
parents: 42081
diff changeset
99 endif

mercurial