In Windows we build using the toolchain provided by MSYS2 - the resulting binaries DO NOT link against the MSYS2 runtime.
Start by installing the necessary dependencies
Before you start you need a Mingw-w64 toolchain for Linux, try installing the mingw-w64 package (Ubuntu, Suse, Fedora?) or get it from the Mingw-w64 website.
$ mkdir deps-mingw $ cd deps-mingw $ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/mingw32-w64-cross-travis.toolchain.cmake ../third-party/ $ make $ cd ..
It's been a while since I did this, so .... lets see what happens.
For starters we have this setup
Just to establish that we have everything we need to build neovim, I'm going to take the long route using cmake
So we still have some issues with the GUI clipboard.
My hypothesis is that because nvim is caching the has_clipboard static variable then the clipboard will always be considered as invalid and can NEVER be enabled.
First I'm going to start nvim in a way that prevents any clipboard for working by changing the PATH.
Vim's system('string') interface is not always straightforward in Windows,
its behaviour can be downright unexpected involves an intricate set of options. Its primary purpose its to execute
a command in the shell (see
&shell) in simple terms we can think that calling
system('some command') is equivalent
to spawning a process with the following arguments
[&shell, &shellcmdflag, 'some command']
and sometimes this might be true but it also might not. Consider the following examples (I'm running in gVim 7.4/Windows 8)
... even if packages for lua and all deps(mpack, bitop, lpeg) are installed. This seems to be a problem with the lua binary name in OpenBSD its called lua51, lua52, luajit51 - instead of the expected lua5.1 or just lua.
The workaround for this is to specify the binary