summaryrefslogtreecommitdiff
path: root/src/plugins/PluginAPI.hpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2023-10-14 18:47:43 +0100
committerGitHub <noreply@github.com>2023-10-14 18:47:43 +0100
commitd5a572bd39e5b29af8a17af792a43b409ae1cb06 (patch)
tree04f711b5e5f8639e20a07c78593ae81ca9815425 /src/plugins/PluginAPI.hpp
parent424c9a7e704590db5c823557e5e388e366f7b1cd (diff)
Plugin API: Add version query (#3545)
Diffstat (limited to 'src/plugins/PluginAPI.hpp')
-rw-r--r--src/plugins/PluginAPI.hpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/plugins/PluginAPI.hpp b/src/plugins/PluginAPI.hpp
index c14c820a..2809c3f6 100644
--- a/src/plugins/PluginAPI.hpp
+++ b/src/plugins/PluginAPI.hpp
@@ -42,6 +42,14 @@ struct SFunctionMatch {
std::string demangled;
};
+struct SVersionInfo {
+ std::string hash;
+ std::string tag;
+ bool dirty = false;
+ std::string branch;
+ std::string message;
+};
+
#define APICALL extern "C"
#define EXPORT __attribute__((visibility("default")))
#define REQUIRED
@@ -250,4 +258,20 @@ namespace HyprlandAPI {
Empty means either none found or handle was invalid
*/
APICALL std::vector<SFunctionMatch> findFunctionsByName(HANDLE handle, const std::string& name);
-}; \ No newline at end of file
+
+ /*
+ Returns the hyprland version data. It's highly advised to not run plugins compiled
+ for a different hash.
+ */
+ APICALL SVersionInfo getHyprlandVersion(HANDLE handle);
+};
+
+/*
+ Get the hash this plugin/server was compiled with.
+
+ This function will end up in both hyprland and any/all plugins,
+ and can be found by a simple dlsym()
+*/
+APICALL inline EXPORT const char* __hyprland_api_get_hash() {
+ return GIT_COMMIT_HASH;
+}