summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/internal.h2
-rw-r--r--lib/library.c12
-rw-r--r--lib/renderers/curses/curses.c2
-rw-r--r--lib/renderers/wayland/wayland.c2
-rw-r--r--lib/version.h.in1
5 files changed, 12 insertions, 7 deletions
diff --git a/lib/internal.h b/lib/internal.h
index fe392a1..6613cef 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -73,7 +73,7 @@ struct render_api {
/**
* Version of the plugin.
- * Should match BM_VERSION or failure.
+ * Should match BM_PLUGIN_VERSION or failure.
*/
const char *version;
diff --git a/lib/library.c b/lib/library.c
index c7f5e60..7fca099 100644
--- a/lib/library.c
+++ b/lib/library.c
@@ -34,24 +34,28 @@ load(const char *file, struct bm_renderer *renderer)
const char* (*regfun)(struct render_api*);
if (!(regfun = chckDlLoadSymbol(handle, "register_renderer", &error)))
- goto fail;
+ goto load_fail;
const char *name;
if (!(name = regfun(&renderer->api)))
goto fail;
- if (strcmp(renderer->api.version, BM_VERSION))
- goto fail;
+ if (strcmp(renderer->api.version, BM_PLUGIN_VERSION))
+ goto mismatch_fail;
renderer->handle = handle;
renderer->name = bm_strdup(name);
renderer->file = bm_strdup(file);
return true;
+load_fail:
+ fprintf(stderr, "%s\n", error);
+ goto fail;
+mismatch_fail:
+ fprintf(stderr, "%s: version mismatch (%s != %s)\n", name, renderer->api.version, BM_PLUGIN_VERSION);
fail:
if (handle)
chckDlUnload(handle);
- fprintf(stderr, "%s\n", error);
return false;
}
diff --git a/lib/renderers/curses/curses.c b/lib/renderers/curses/curses.c
index 42212b6..c40e833 100644
--- a/lib/renderers/curses/curses.c
+++ b/lib/renderers/curses/curses.c
@@ -343,7 +343,7 @@ register_renderer(struct render_api *api)
api->poll_key = poll_key;
api->render = render;
api->prioritory = BM_PRIO_TERMINAL;
- api->version = BM_VERSION;
+ api->version = BM_PLUGIN_VERSION;
return "curses";
}
diff --git a/lib/renderers/wayland/wayland.c b/lib/renderers/wayland/wayland.c
index 289fa5a..0d5fcde 100644
--- a/lib/renderers/wayland/wayland.c
+++ b/lib/renderers/wayland/wayland.c
@@ -144,7 +144,7 @@ register_renderer(struct render_api *api)
api->poll_key = poll_key;
api->render = render;
api->prioritory = BM_PRIO_GUI;
- api->version = BM_VERSION;
+ api->version = BM_PLUGIN_VERSION;
return "wayland";
}
diff --git a/lib/version.h.in b/lib/version.h.in
index ad82a1a..a6b287c 100644
--- a/lib/version.h.in
+++ b/lib/version.h.in
@@ -1,4 +1,5 @@
#define INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
#define BM_VERSION "@BEMENU_VERSION@"
+#define BM_PLUGIN_VERSION "@BEMENU_VERSION@-@GIT_SHA1@"
/* vim: set ts=8 sw=4 tw=0 :*/