libpurple/reference/tut_c_plugins.md

Tue, 15 Oct 2024 00:47:42 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Tue, 15 Oct 2024 00:47:42 -0500
changeset 43011
ce3144e2bc33
parent 42988
c2357ee36551
permissions
-rw-r--r--

Port prefs to AdwSwitchRow

Now that we depend on Adwaita 1.4, we can flip the switch on using these (pun intended).

This also simplifies some extra tracking we needed to do for activations and focus, since the Adwaita widgets do that for us.

Testing Done:
Opened prefs, confirmed all the switches were there, and toggled them all without any warnings.

Also used the mnemonics to toggle the switches from the keyboard.

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

41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
1 Title: C Plugin Tutorial
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
2 Slug: c-plugin-tutorial
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
3
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
4 C plugins are native plugins. They have complete access to all of the API,
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
5 and can do basically whatever they want.
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
6
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
7 # Getting Started
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
8
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
9 To develop a plugin you need to have the libpurple source code or development
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
10 headers for your platform. It is generally a good idea to compile against the
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
11 same version of libpurple that you are running. You may also want to develop
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
12 against the code in our Mercurial repository if you need to use a new feature.
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
14 # An Example
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
16 I know every tutorial has a hello world, so why should libpurple be any
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
17 different?
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
18
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
19 ```c
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
20 #include <purple.h>
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
21
40933
60f4b2a6d66a Update the C plugin tutorial to use the gplugin macros
Gary Kramlich <grim@reaperworld.com>
parents: 39413
diff changeset
22 static GPluginPluginInfo *
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
23 hello_world_query(GError **error) {
36796
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
24 const gchar * const authors[] = {
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
25 "Author Name <aname@example.com>",
36796
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
26 NULL
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
27 };
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
28
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
29 return purple_plugin_info_new (
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
30 "id", "hello_world",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
31 "name", "Hello World!",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
32 "version", "1.0",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
33 "category", "Example",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
34 "summary", "Hello World Plugin",
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
35 "description", "Creates a \"Hello World!\" notification when loaded",
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
36 "authors", authors,
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
37 "website", "http://helloworld.tld",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
38 "abi-version", PURPLE_ABI_VERSION,
36796
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
39 NULL
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
40 );
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
41 }
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
42
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
43 static gboolean
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
44 hello_world_load(GPluginPlugin *plugin, GError **error) {
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
45 PurpleNotification *notification = NULL;
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
46 PurpleNotificationManager *manager = NULL;
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
47
42988
c2357ee36551 Replace Purple.Notification.new_generic with Purple.Notification.new
Gary Kramlich <grim@reaperworld.com>
parents: 42931
diff changeset
48 notification = purple_notification_new(NULL, "Hello World!");
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
49 purple_notification_set_subtitle(notification,
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
50 "This is the Hello World! plugin :)");
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
51
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
52 manager = purple_notification_manager_get_default();
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
53 purple_notification_manager_add(manager, notification);
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
54 g_clear_object(&notification);
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 return TRUE;
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57 }
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58
36796
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
59 static gboolean
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
60 hello_world_unload(GPluginPlugin *plugin, gboolean shutdown, GError **error) {
36796
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
61 return TRUE;
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62 }
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63
40933
60f4b2a6d66a Update the C plugin tutorial to use the gplugin macros
Gary Kramlich <grim@reaperworld.com>
parents: 39413
diff changeset
64 GPLUGIN_NATIVE_PLUGIN_DECLARE(hello_world)
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
65 ```
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
67 Okay, so what does all this mean? We start off by including `purple.h`. This
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
68 file includes all the libpurple header files.
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
70 `hello_world_query`, `hello_world_load` and `hello_world_unload` are functions
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
71 that must be implemented in every plugin. These functions are named according
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
72 to the value passed to `GPLUGIN_NATIVE_PLUGIN_DECLARE` which is described
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
73 below.
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
75 `hello_world_query` is called when the plugin is queried by the plugin system,
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
76 and returns various information about the plugin in form of a newly created
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
77 instance of [class@GPlugin.PluginInfo] or a subclass. For a list of all
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
78 available properties, see [ctor@PluginInfo.new].
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
80 If anything should go wrong during the query you can return an error by using
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
81 [func@GLib.set_error] on the `error` argument.
40933
60f4b2a6d66a Update the C plugin tutorial to use the gplugin macros
Gary Kramlich <grim@reaperworld.com>
parents: 39413
diff changeset
82
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
83 `hello_world_load` is called when the plugin is loaded. That is the user has
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
84 enabled the plugin or libpurple is loading a plugin that was previously loaded.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
85 You can initialize any variables, register dynamic types, and so on in this
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
86 function. In this plugin we'll just use it to create and display a
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
87 notification. Just like `hello_world_query` if there are any errors that arise,
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
88 you can call [func@GLib.set_error] on the `error` argument and return `FALSE`.
36905
d256e7a2ec4c Changed dox files to xml files for gtk-doc, and included them in the top-level XMLs.
Ankit Vani <a@nevitus.org>
parents: 36900
diff changeset
89
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
90 `hello_world_unload` is called when the plugin is unloaded. That is, when the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
91 user has manually unloaded the plugin or the program is shutting down. We can
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
92 use it to wrap up everything, and free our variables. If the program is
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
93 shutting down, the `shutdown` argument will be `TRUE`. Again, if there are any
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
94 errors, you can call [func@GLib.set_error] on the `error` argument and return
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
95 `FALSE`.
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
96
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
97 Finally we have `GPLUGIN_NATIVE_PLUGIN_DECLARE()`. It is a helper macro that
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
98 makes creating plugins easier. It has a single argument which is the prefix
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
99 used for the `_query`, `_load`, and `_unload` functions.
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
100
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
101 # Building
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
102
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
103 You may want to compile your plugin by using your libpurple from the packages
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
104 on your system. You can easily do this with meson build system. Let's say
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
105 you've already wrote the hello world plugin and saved it as `hello_world.c`.
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
106 Create a file named `meson.build`:
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
107
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
108 ```python
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
109 project('hello_world_plugin', 'c')
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
110
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
111 libpurple_dep = dependency('purple-3')
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
112
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
113 PURPLE_PLUGINDIR = libpurple_dep.get_pkgconfig_variable('plugindir')
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
114
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
115 library('libhelloworld', 'hello_world.c',
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
116 c_args : [
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
117 '-DG_LOG_USE_STRUCTURED',
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
118 '-DG_LOG_DOMAIN="PurplePlugin-HelloWorld"'
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
119 ],
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
120 dependencies : [libpurple_dep],
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
121 name_prefix : '',
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
122 install : true,
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
123 install_dir : PURPLE_PLUGINDIR)
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
124 ```
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
125
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
126 This `meson.build` file will build your plugin and install it into the right
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
127 location for libpurple to find it.
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
128
42875
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
129 If you are using this example to compile your own plugin. You should change the
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
130 project name at the beginning of the file as well as the library name which in
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
131 this case is `libhelloworld`. You will also need to change the `G_LOG_DOMAIN`
e13c0a30d6e9 Update the C plugin how to
Gary Kramlich <grim@reaperworld.com>
parents: 42847
diff changeset
132 macro to your own log domain.
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
133
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
134 Now, you can quickly build your plugin with the following commands:
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
135
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
136 ```
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
137 meson setup build
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
138 meson compile -C build
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
139 meson install -C build
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
140 ```

mercurial