--- a/gplugin-purple2/gplugin-purple2-core.c Sat Feb 02 03:18:30 2019 -0600
+++ b/gplugin-purple2/gplugin-purple2-core.c Tue Jan 21 21:21:22 2020 -0600
@@ -3,6 +3,7 @@
#include "gplugin-purple2-loader.h"
#include "gplugin-purple2-plugin.h"
+#include "gplugin-purple2-purple3.h" #include <libpurple/core.h>
@@ -35,6 +36,8 @@
gplugin_load(GPluginNativePlugin *plugin,
G_GNUC_UNUSED GError **error)
+ gplugin_purple2_purple3_load_symbols(); gplugin_purple2_loader_register(plugin);
gplugin_purple2_plugin_register(plugin);
--- a/gplugin-purple2/gplugin-purple2-loader.c Sat Feb 02 03:18:30 2019 -0600
+++ b/gplugin-purple2/gplugin-purple2-loader.c Tue Jan 21 21:21:22 2020 -0600
@@ -1,6 +1,7 @@
#include "gplugin-purple2-loader.h"
#include "gplugin-purple2-core.h"
#include "gplugin-purple2-plugin.h"
+#include "gplugin-purple2-purple3.h" #include "purple2/gplugin-purple2-stubs-purple.h"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gplugin-purple2/gplugin-purple2-purple3.c Tue Jan 21 21:21:22 2020 -0600
@@ -0,0 +1,16 @@
+#include "gplugin-purple2-purple3.h" +Purple3PluginInfoNewFunc purple3_plugin_info_new = NULL; +gplugin_purple2_purple3_load_symbols(void) { + GModule *module = g_module_open(NULL, 0); + g_module_symbol(module, "purple_plugin_info_new", &symbol); + purple3_plugin_info_new = symbol; + g_module_close(module); --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gplugin-purple2/gplugin-purple2-purple3.h Tue Jan 21 21:21:22 2020 -0600
@@ -0,0 +1,20 @@
+#ifndef GPLUGIN_PURPLE2_PURPLE3_H +#define GPLUGIN_PURPLE2_PURPLE3_H +typedef struct _Purple3PluginInfo Purple3PluginInfo; +void gplugin_purple2_purple3_load_symbols(void); +typedef Purple3PluginInfo *(*Purple3PluginInfoNewFunc)(const gchar *first_property, ...) G_GNUC_NULL_TERMINATED; +//Purple3PluginInfoNewFunc purple3_plugin_info_new = NULL; +Purple3PluginInfo *purple3_plugin_info_new(const gchar *first_property, ...) G_GNUC_NULL_TERMINATED; +#endif /* GPLUGIN_PURPLE2_PURPLE3_H */ --- a/gplugin-purple2/meson.build Sat Feb 02 03:18:30 2019 -0600
+++ b/gplugin-purple2/meson.build Tue Jan 21 21:21:22 2020 -0600
@@ -7,6 +7,7 @@
'gplugin-purple2-core.h',
'gplugin-purple2-loader.h',
'gplugin-purple2-plugin.h',
+ 'gplugin-purple2-purple3.h', 'purple2/gplugin-purple2-stubs-purple.h',
@@ -14,19 +15,19 @@
'gplugin-purple2-core.c',
'gplugin-purple2-loader.c',
'gplugin-purple2-plugin.c',
+ 'gplugin-purple2-purple3.c', 'purple2/gplugin-purple2-stubs-purple.c',
###############################################################################
###############################################################################
-shared_library('gplugin-purple2',
+shared_module('gplugin-purple2', - c_args : ['-DGPLUGIN_PURPLE2_COMPILATION', '-DG_LOG_DOMAIN="GPluginPurple2"'],
- include_directories : toplevel_inc,
dependencies : [GLIB, GOBJECT, GMODULE, GPLUGIN, PURPLE3],
- version : GPLUGIN_PURPLE2_LIBRARY_VERSION,
+ install_dir : join_paths(get_option('libdir'), 'gplugin'),