diff options
author | luukvbaal <31730729+luukvbaal@users.noreply.github.com> | 2023-03-23 12:58:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-23 04:58:50 -0700 |
commit | b02880593e281ce44661ce22e9391edfe921e47e (patch) | |
tree | b0a9d5b0222f0184bd53f80193654060de3da46f | |
parent | 4e4203f71b0b9bb2ca4ad9abd2fbf4ea1deaf9a6 (diff) | |
download | rneovim-b02880593e281ce44661ce22e9391edfe921e47e.tar.gz rneovim-b02880593e281ce44661ce22e9391edfe921e47e.tar.bz2 rneovim-b02880593e281ce44661ce22e9391edfe921e47e.zip |
build(win): export extern symbols for use in FFI #22756
Makes `extern` variables accessible through ffi on Windows.
Follow-up to https://github.com/neovim/neovim/pull/15999
-rw-r--r-- | src/nvim/main.c | 7 | ||||
-rw-r--r-- | test/functional/lua/ffi_spec.lua | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c index ea5f511fc6..a16badc1a0 100644 --- a/src/nvim/main.c +++ b/src/nvim/main.c @@ -1,7 +1,12 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#define EXTERN +// Make sure extern symbols are exported on Windows +#ifdef WIN32 +# define EXTERN __declspec(dllexport) +#else +# define EXTERN +#endif #include <assert.h> #include <limits.h> #include <msgpack/pack.h> diff --git a/test/functional/lua/ffi_spec.lua b/test/functional/lua/ffi_spec.lua index 18b13a8959..c492c1e765 100644 --- a/test/functional/lua/ffi_spec.lua +++ b/test/functional/lua/ffi_spec.lua @@ -63,5 +63,14 @@ describe('ffi.cdef', function() nil ) ]=]) + + -- Check that extern symbols are exported and accessible + eq(true, exec_lua[[ + local ffi = require('ffi') + + ffi.cdef('uint64_t display_tick;') + + return ffi.C.display_tick >= 0 + ]]) end) end) |