The new MinGW fails to build libuv due to a typedef conflict between
mstcpip.h and src/win/winapi.h. This change avoids conflicts by disabling
typedef in the MinGW header.
* build(cmake): update cmake min version to 3.10
* ci: test cmake minimum required version
* build(cmake): remove some legacy includes
* Since version 3.5 cmake_parse_arguments is implemented natively.
Switch libuv from https://github.com/neovim/libuv fork to upstream for WIN32.
Upstream at 1.42.0 is now used for all platforms.
BREAKING CHANGE: removes Windows 7 support
BREAKING CHANGE: removes support for mouse and alternate buffers in TUI for
Windows 8 and 8.1
This bumps the bundled LibLUV to 1.34.1 in order to make the newly introduced `uv.fs_mkstemp` available in the official builds. (The minimum required version remains at 1.30.1.)
The bump of lua-compat-53 to 0.9 is needed to build with the updated LibLUV.
Neovim should not bundle external tools
that are not needed in the runtime environment.
cat.exe is meant for tests only.
Install a mingw/msys2/busybox environment which bundle cat.exe.
tidy.exe was never used in tests and is not required in Neovim runtime.
busybox and tidy.exe can be installed via scoop.
Ref: https://github.com/neovim/neovim/issues/14078
LuaJIT build now requires specifying a deployment target, so use the
same baseline as our nightly builds.
Co-authored-by: Christian Clason <christian.clason@uni-due.de>
Fixes:
% rm -rf .deps
% cmake -DUSE_BUNDLED_LUV=ON -DUSE_BUNDLED=OFF -S third-party -B .deps
% cmake --build .deps
...
[ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o
/home/daniel/Vcs/neovim/.deps/build/src/luv/src/luv.c:20:10: fatal error: c-api/compat-5.3.h: No such file or directory
20 | #include "c-api/compat-5.3.h"
| ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
This was broken since 78f1eccc8, where apparently the `LUA_COMPAT53_DIR`
was defined in a wrong location.
The cmake file for libvterm had an empty CONFIGURE_COMMAND "", which tells cmake to skip the configure step for this dependency (even though a later patch added another, actual, CONFIGURE_COMMAND two lines below). Evidently the recently released cmake 3.18.0 is pickier about this than previous versions, causing the build to fail. Removing this line makes the build successful again.
- Fix an issue where CMAKE_BUILD_TYPE was not reflected during
construction.
- Remove the switch that uses the static library(-MTd, -MT) because it was
specified in the CMakeLists.txt of luv when building on MSVC.
related: https://github.com/luvit/luv/pull/461
clean-shared-libraries does nothing useful in MSVC build. Nevertheless,
it deletes ${DEPS_INSTALL_DIR}/lib/nvim/parser/c.dll and causes build
failure in CI.
Avoids having CMakeCache.txt etc in https://github.com/neovim/deps, where it can cause trouble for Ubuntu PPA builds such as:
> CMake Error: The source "/<<BUILDDIR>>/neovim-0.5.0+ubuntu1+git202002090924-1f479ff-00e710e/.deps/build/src/treesitter-c/CMakeLists.txt" does not match the source "/home/travis/build/neovim/bot-ci/build/deps-src/build/src/treesitter-c/CMakeLists.txt" used to generate cache. Re-run cmake with a different source directory.
if USE_BUNDLED_TS_PARSERS is set to off, don't try to install the
parser.
Distribs can install treesitter parsers directly into $CMAKE_LIBRARY_PATH/nvim
(and users anywhere in rtp).
Also fix the URL.