34 lines
866 B
Markdown
34 lines
866 B
Markdown
# C plugins
|
|
|
|
learning how to write a dynamic plugin loader in C!
|
|
|
|
## how does it work?
|
|
|
|
the core application will scan a nearby `plugins` directory for plugins.
|
|
the core expects this directory structure:
|
|
|
|
- `pluginhost`
|
|
- `plugins`
|
|
- `plugin1`
|
|
- `plugin1.so`
|
|
- `plugin2`
|
|
- `plugin2.so`
|
|
|
|
each plugin must minimally contain two functions:
|
|
- `int ari_plugin_load(void)`
|
|
- `int ari_plugin_unload(void)`
|
|
|
|
once loading all plugins, the core will call these functions within each
|
|
detected plugin, and exit.
|
|
|
|
## how to use
|
|
|
|
> [!WARNING]
|
|
> this software only supports linux at the moment. no plans to support other
|
|
> platforms at this time!
|
|
|
|
- `make` to build the core application
|
|
- `make all_plugins` to build all plugins
|
|
- `make all` to build both!
|
|
- `make clean` to tidy up the environment
|
|
- once built, run `./pluginhost` to test the application.
|