diff options
| author | Yikai Zhao <yikai@z1k.dev> | 2021-12-15 00:02:02 +0800 |
|---|---|---|
| committer | Yikai Zhao <yikai@z1k.dev> | 2021-12-15 00:02:02 +0800 |
| commit | 0edf26d84f9f1cd9b4eb36edbb179ae6b94f0ff0 (patch) | |
| tree | 3f0715ef328f46c6a9f794aba16470860fbe4c35 | |
| parent | ed6e867cfab77c5a311a516d20af44f57526cfdc (diff) | |
Do not export unnecessary symbols in dynamic library
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | vterm-module.h | 19 |
2 files changed, 18 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index af4f2d5..e766884 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ endif() add_library(vterm-module MODULE vterm-module.c utf8.c elisp.c) set_target_properties(vterm-module PROPERTIES C_STANDARD 99 + C_VISIBILITY_PRESET "hidden" POSITION_INDEPENDENT_CODE ON PREFIX "" LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} diff --git a/vterm-module.h b/vterm-module.h index 5cb1f6d..96f538f 100644 --- a/vterm-module.h +++ b/vterm-module.h @@ -6,7 +6,22 @@ #include <stdbool.h> #include <vterm.h> -int plugin_is_GPL_compatible; +// https://gcc.gnu.org/wiki/Visibility +#if defined _WIN32 || defined __CYGWIN__ + #ifdef __GNUC__ + #define VTERM_EXPORT __attribute__ ((dllexport)) + #else + #define VTERM_EXPORT __declspec(dllexport) + #endif +#else + #if __GNUC__ >= 4 + #define VTERM_EXPORT __attribute__ ((visibility ("default"))) + #else + #define VTERM_EXPORT + #endif +#endif + +VTERM_EXPORT int plugin_is_GPL_compatible; #define SB_MAX 100000 // Maximum 'scrollback' value. @@ -147,6 +162,6 @@ emacs_value Fvterm_get_prompt_point(emacs_env *env, ptrdiff_t nargs, emacs_value Fvterm_reset_cursor_point(emacs_env *env, ptrdiff_t nargs, emacs_value args[], void *data); -int emacs_module_init(struct emacs_runtime *ert); +VTERM_EXPORT int emacs_module_init(struct emacs_runtime *ert); #endif /* VTERM_MODULE_H */ |
