mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-17 21:13:48 -07:00
Plugin API: Add version query (#3545)
This commit is contained in:
@@ -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);
|
||||
};
|
||||
|
||||
/*
|
||||
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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user