libpurple/reference/tut_c_plugins.md

Thu, 08 Aug 2024 21:34:07 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 08 Aug 2024 21:34:07 -0500
changeset 42847
fbb0d252bc35
parent 42782
doc/reference/libpurple/tut_c_plugins.md@9271f4acf563
child 42875
e13c0a30d6e9
permissions
-rw-r--r--

Move the documentation into more appropriate places

This moves the libpurple documentation into the libpurple directory, the Pidgin
documentation into the pidgin directory, and removes the old protocols
documentation remnants.

Testing Done:
Ran the `doc` target and had the turtles check in on things.

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

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
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
4 ## C Plugin Tutorial
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
6 ### Introduction
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
7
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
8 C plugins are native plugins. They have complete access to all of the API,
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
9 and can do basically whatever they want. All of the protocol plugins are
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
10 also written in C.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
11
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
12 ### Getting Started
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
14 To develop a plugin you need to have the libpurple and (for UI plugins) the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
15 Pidgin/Finch source code or development headers. It is generally a good idea
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
16 to compile against the same version of Pidgin that you are running. You may
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
17 also want to develop against the code in our Mercurial repository if you need
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
18 to use a new feature. Please do not abuse our Mercurial repository, however.
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
19
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
20 ### An Example
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
21
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
22 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
23 different?
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
24
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
25 ```c
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
26 #include <purple.h>
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27
40933
60f4b2a6d66a Update the C plugin tutorial to use the gplugin macros
Gary Kramlich <grim@reaperworld.com>
parents: 39413
diff changeset
28 static GPluginPluginInfo *
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
29 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
30 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
31 "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
32 NULL
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
33 };
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
34
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
35 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
36 "id", "hello_world",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
37 "name", "Hello World!",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
38 "version", "1.0",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
39 "category", "Example",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
40 "summary", "Hello World Plugin",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
41 "description", "Displays a \"Hello World!\" message when loaded",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
42 "authors", authors,
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
43 "website", "http://helloworld.tld",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
44 "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
45 NULL
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
46 );
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
47 }
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49 static gboolean
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
50 hello_world_load(GPluginPlugin *plugin, GError **error) {
16260
3e2e3df543f0 Effect the rename in the C-HOWTO and clean it up.
Richard Laager <rlaager@pidgin.im>
parents: 15864
diff changeset
51 purple_notify_message(plugin, PURPLE_NOTIFY_MSG_INFO, "Hello World!",
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
52 "This is the Hello World! plugin :)",
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
53 NULL, NULL, NULL, NULL);
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 return TRUE;
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 }
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57
36796
ebb632962d4e Updated C-HOWTO.dox according to the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36793
diff changeset
58 static gboolean
42782
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
59 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
60 return TRUE;
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 }
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62
40933
60f4b2a6d66a Update the C plugin tutorial to use the gplugin macros
Gary Kramlich <grim@reaperworld.com>
parents: 39413
diff changeset
63 GPLUGIN_NATIVE_PLUGIN_DECLARE(hello_world)
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
64 ```
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
66 Okay, so what does all this mean? We start off by including purple.h. This
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
67 file includes all the libpurple header files.
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
69 `hello_world_query`, `hello_world_load` and `hello_world_unload` are functions
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
70 that must be implemented in every plugin. These functions are named according
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
71 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
72 below.
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
74 `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
75 and returns various information about the plugin in form of a newly created
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
76 instance of `GPluginPluginInfo` or a subclass. For a list of all available
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
77 properties, see `purple_plugin_info_new()`.
10468
a991d3324b36 [gaim-migrate @ 11750]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
79 If anything should go wrong during the query you can return an error by using
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
80 `g_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
81
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
82 `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
83 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
84 You can initialize any variables, register dynamic types, and so on in this
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
85 function. Plugins may also want to add their preferences to the pref
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
86 tree--more about that later. In this plugin we'll just use it to display a
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
87 message. Just like `hello_world_query` if there are any errors that arise, you
41165
24e2c88a7fc2 Ran codespell on the libpurple docs that were converted to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 41164
diff changeset
88 can call `g_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
41638
abc29c6a3e59 fix the missing argument in the C plugin tutorial
William Goodspeed <>
parents: 41165
diff changeset
92 use it to wrap up everything, and free our variables. If the program is shutting
abc29c6a3e59 fix the missing argument in the C plugin tutorial
William Goodspeed <>
parents: 41165
diff changeset
93 down, the `shutdown` argument will be `TRUE`. Again, if there are any errors, you
abc29c6a3e59 fix the missing argument in the C plugin tutorial
William Goodspeed <>
parents: 41165
diff changeset
94 can call `g_set_error()` on the `error` argument and return `FALSE`.
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
95
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40933
diff changeset
96 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
97 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
98 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
99
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
100 ### Building
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
101
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
102 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
103 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
104 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
105 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
106
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
107 ```python
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
108 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
109
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
110 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
111
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
112 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
113
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
114 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
115 c_args : [
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
116 '-DG_LOG_USE_STRUCTURED',
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
117 '-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
118 ],
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
119 dependencies : [libpurple_dep],
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
120 name_prefix : '',
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
121 install : true,
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
122 install_dir : PURPLE_PLUGINDIR)
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
123 ```
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 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
126 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
127
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
128 If you're using this example to compile your own plugin. You
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
129 should change the project name at the beginning of the file and change the
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
130 library name which in this case is `libhelloworld`. You will also need to
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
131 change the `G_LOG_DOMAIN` macro to your own log domain.
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
132
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
133 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
134
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 meson setup build
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
137 meson compile -C build
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
138 meson install -C build
9271f4acf563 Fix a number of issues with the C plugin tutorial
Gary Kramlich <grim@reaperworld.com>
parents: 41638
diff changeset
139 ```

mercurial