diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2022-07-26 00:43:48 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2022-07-26 00:43:48 +0300 |
commit | f081e76037432cb926be45e980eac201d337032c (patch) | |
tree | dd1225521c12ea21c0b0c3d51ec1ae3f8730755f /intern/wayland_dynload/intern/wayland_dynload_utils.h | |
parent | fa2084ae58a77b1201289b6bedac427f73c762d1 (diff) | |
parent | 462f99bf38648a08226b1fba423315aec2bc577b (diff) |
Merge branch 'master' into geometry-nodes-iterative-cachegeometry-nodes-rigid-body-integration
Diffstat (limited to 'intern/wayland_dynload/intern/wayland_dynload_utils.h')
-rw-r--r-- | intern/wayland_dynload/intern/wayland_dynload_utils.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/intern/wayland_dynload/intern/wayland_dynload_utils.h b/intern/wayland_dynload/intern/wayland_dynload_utils.h new file mode 100644 index 00000000000..785f32521e4 --- /dev/null +++ b/intern/wayland_dynload/intern/wayland_dynload_utils.h @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +/** \file + * \ingroup intern_wayland_dynload + * + * Utility defines. + */ + +#pragma once + +#include <dlfcn.h> /* Dynamic loading. */ +#include <stdbool.h> + +typedef void *DynamicLibrary; + +#define dynamic_library_open(path) dlopen(path, RTLD_NOW) +#define dynamic_library_close(lib) dlclose(lib) +#define dynamic_library_find(lib, symbol) dlsym(lib, symbol) + +/** Loads a library from an array, printing an error when the symbol isn't found. */ +DynamicLibrary dynamic_library_open_array_with_error(const char **paths, + int paths_num, + bool verbose, + int *r_path_index); + +/** Find a symbol, printing an error when the symbol isn't found. */ +void *dynamic_library_find_with_error(DynamicLibrary lib, + const char *symbol, + const char *path_lib); |