Commit Graph

301 Commits

Author SHA1 Message Date
Christian Clason
1f33b2b1e8 build(deps): bump tree-sitter to HEAD - 91e4d9401 (#23616) 2023-05-13 19:50:42 +02:00
dundargoc
1086016477 build: cmake cleanup
- Simplify error checking when using execute_process.
- Set BUILD_SHARED_LIBS to OFF when building dependencies.
  This is normally not needed, but msgpack interprets an unset
  BUILD_SHARED_LIBS to build a shared library, which is the opposite of
  the cmake behavior.
- Move function check_lua_module to Util.cmake.
- Remove unnecessary code.
- Make variable naming more consistent
2023-05-13 12:12:29 +02:00
dundargoc
30a0299bc6 build: make dependency URL variables non-cached (#23577)
Cmake won't rebuild with the new URL when bumping dependency version.
This is because the old URL is still cached, and won't be removed
automatically. The workaround for using non-cached variables, but also
let users specify an alternative URL is to only set the defined
variables in deps.txt if the corresponding variable hasn't already been
set by the user from the command line.

Also apply the CMAKE_CONFIFGURE_DEPENDS property to deps.txt, as we want
cmake to rebuild when changing this file.
2023-05-11 20:17:15 +02:00
Christian Clason
ac1aee99bc build(deps): bump LibUV to HEAD (#22833)
* build(deps): bump libuv to HEAD - 15e81386b
2023-05-10 19:14:39 +02:00
dundargoc
82bb7bbc48 build: add luajit runtime files when installing (#23514)
Closes https://github.com/neovim/neovim/issues/15543.
2023-05-09 17:25:49 +02:00
dundargoc
88366641ad build: remove USE_BUNDLED_BUSTED option
The previous logic made it possible to install bundled luarocks, but
also use external rocks, making the luarocks installation unnecessary.
Instead, let's assume that if the user wants to use the bundled
luarocks, then they also want to use it to install necessary rocks.
2023-05-08 17:24:19 +02:00
Enan Ajmain
1bf29a0ae1 build: add system lua include dir for lpeg
Problem: Lpeg requires Lua headers.  Currently the include directories
for Lpeg are set only to the bundled deps folder, so if the user wants
to use system Lua/Luajit, Lpeg will not find the system headers and will
fail to build.

Solution: Add system Lua/Luajit include directories when USE_BUNDLED_LUA
and USE_BUNDLED_LUAJIT are turned off.

Fixes #23469
2023-05-07 00:47:45 +02:00
dundargoc
a67b76943a build(deps): point dependencies to specific commit
This way older neovim builds will work if we bump the dependency
versions.
2023-05-06 12:14:23 +02:00
dundargoc
5abba97d77 build: download dependencies with unreliable mirrors from deps repo
Closes https://github.com/neovim/neovim/issues/23493.
2023-05-06 11:40:03 +02:00
dundargoc
9909668111 build: create a text file for specifying dependency information
The cmake.deps build will read this file and set the left part of the
text as the variable name and the right part as the variable value. The
benefit of doing this is that it becomes much easier to parse which
dependencies are required, as well as to bump dependencies with
scripts/bump_deps.lua.

Adjust bump_deps.lua script to work with this new format.
2023-05-03 00:31:07 +02:00
dundargoc
37bc73e9bc build: change dependency URLs to cache variables
This makes it possible to specify a different URL or file path from the
command line.

Closes https://github.com/neovim/neovim/issues/23366.
2023-05-01 07:52:23 +02:00
Christian Clason
7e3d6ff405 build(deps): bump LuaJIT to HEAD - 224129a8e (#23405) 2023-04-30 15:36:17 +02:00
dundargoc
1290121722 build: add CMakePresets for deps build to reduce verbosity 2023-04-29 01:48:36 +02:00
bfredl
45bcf83869 refactor(build): include lpeg as a library 2023-04-27 11:40:00 +02:00
dundargoc
801ac2accb build: drop diff.exe from windows builds
The shipped versions of xdiff already does everything diff does, so this
duplication of tools isn't necessary. Furthermore, this setup is more
consistent overall, as the 'diffopt=external' option should be for
external programs rather than programs we bundle neovim with.

Install diffutils for oldtests in CI to avoid needing to modify tests.
2023-04-22 18:36:33 +02:00
Christian Clason
0b24ab1892 build(deps): bump tree-sitter to HEAD - 321a65262 (#23261) 2023-04-22 12:58:35 +02:00
bfredl
1e60e8c040 refactor(build): use vendored versions of mpack and luabitop 2023-04-19 10:44:25 +02:00
Christian Clason
a30e61eb4d build(deps): bump tree-sitter to HEAD - af92bfc02 (#23151) 2023-04-17 11:39:57 +02:00
Christian Clason
0dbb0419f4 build(deps): bump LuaJIT to HEAD - 1c2791270 (#23140) 2023-04-17 09:08:43 +02:00
dundargoc
c8667c8756 build: various cmake fixes
- Remove unused function argument from GetBinaryDeps
- Remove unused variable LUA_LOAD_PACKAGE_MODULE_SOURCE
- Add LUA_FS_MODULE_SOURCE as a dependency of VIM_MODULE_FILE
2023-04-15 22:39:30 +02:00
dundargoc
5a7280ba68 build: create helper function for simplifying luarocks installation
The function keeps track of the previously installed rock, meaning we no
longer need to manually keep track of the dependency chain. This will
make adding or removing rocks much easier.
2023-04-12 21:26:06 +02:00
Carlo Cabrera
5d387c3388 build(ci): ensure correct headers are used on macOS
Currently, the release build picks up headers in
`/Library/Frameworks/Mono.framework/Headers`. You can verify this by
downloading the latest nightly build and checking the output of `nvim
--version`.

These headers are likely to be from a different version of `libintl` than the
one we link to. Let's avoid usage of them by setting `CMAKE_FIND_FRAMEWORK` to
`NEVER`.
2023-04-09 20:31:13 +02:00
dundargoc
2612930a09 build(Windows): allow building without custom md5sum
Follow-up to eb1da498d6. The workaround in
that case only works if md5sum is in users path. We work around this by
adding the directory with the md5sum shipped with luarocks to PATH.

Co-authored-by: erw7 <erw7.github@gmail.com>
2023-04-05 19:49:16 +02:00
Christian Clason
56e4d79b28 build(deps): switch vim parser to maintained fork (#22896)
Problem: tree-sitter-viml parser was not maintained and missing a
release, making it difficult for distros to package Neovim.

Solution: fork the parser under the neovim org, merge some outstanding
PRs, perform general cleanup, make a release, and use this for the
build.
2023-04-05 16:25:33 +02:00
dundargoc
81f2bce775 build: cmake cleanup
- Change libtermkeyCMakeLists.txt to LibtermkeyCMakeLists.txt
- Remove duplicate mark_as_advanced calls in FindLibuv.cmake
- Fix "Enabling Clang sanitizer" messages as it's no longer clang-only
- Simplify parser installation syntax
- Rename tree-sitter to treesitter
2023-04-04 19:27:21 +02:00
Christian Clason
b83f949fd9 build(deps): bump tree-sitter to v0.20.8 (#22882) 2023-04-04 12:16:26 +02:00
dundargoc
eb1da498d6 build(windows): work around luarocks not finding its own md5sum
Luarocks is unable to find its own md5sum due to these reasons listed in
the comment https://github.com/luarocks/luarocks/issues/1443.

The pull request https://github.com/luarocks/luarocks/pull/1498 resolves
this issue, but in the meantime we can work around it by resetting the
value of MD5sum to "md5sum".
2023-04-03 21:12:42 +02:00
Christian Clason
bc96bda5a2 build(deps): bump tree-sitter-vimdoc to v2.0.0 (#22870) 2023-04-03 14:08:00 +02:00
Christian Clason
9084948893 Merge pull request #22832 from clason/bump-Luv
build(deps): bump luv to HEAD
docs(luvref): update to version bump
2023-04-01 18:07:11 +02:00
Christian Clason
2d840b6b77 build(deps): bump Luv to HEAD - 093a977b8 2023-04-01 17:26:04 +02:00
Christian Clason
d7f7450017 refactor(treesitter)!: rename help parser to vimdoc 2023-04-01 15:07:16 +02:00
Christian Clason
dee559d744 build(deps): bump tree-sitter-viml to HEAD 2023-03-31 15:58:19 +02:00
Christian Clason
92005db760 build(deps): switch to Launchpad for libvterm and libtermkey (#22811)
Problem: www.leonerd.org.uk is sometimes unreachable

Solution: switch to Launchpad URLs for libvterm (official page) and
libtermkey (source mirror for Ubuntu package)
2023-03-29 14:39:11 +02:00
dundargoc
81abd5c5c7 build: download wintools executables separately
The wintools executables are stored in a zip file, making it
inconvenient to bump these during releases. Instead, unpack the
executables in the deps repository and download each executable
separately.
2023-03-28 16:18:13 +02:00
dundargoc
b155608bff build: set CMAKE_C_STANDARD to 99 for all dependencies
Older gcc versions (4.x) require passing --std=c99 compiler flag to
prevent warnings from being emitted. Instead of setting it for each
dependency, it's easier to just pass the CMAKE_C_STANDARD flag to all
dependencies. This also prevents the scenario of us forgetting to set it
if we add new dependencies.
2023-03-24 10:22:15 +01:00
Justin M. Keyes
5726f33e8c Merge #22691 build!: sanitizers for gcc 2023-03-19 13:42:25 -04:00
Christian Clason
ba8b564986 build(deps): bump win32yank to v0.1.1 (#22700) 2023-03-17 13:04:37 +01:00
ii14
17ce634b8f build!: rename sanitizer options from CLANG_* to ENABLE_* 2023-03-17 03:40:57 +01:00
Christian Clason
a5cf62e81c build(deps): bump mpack to 1.0.10 2023-03-17 01:03:56 +01:00
Christian Clason
8408405cb3 build(deps): bump luacheck to 1.1.0-1
also ignore two new warnings showing false positives
2023-03-15 19:23:27 +01:00
Christian Clason
17ff65f59a build(deps): bump coxpcall to 1.17.0-1 2023-03-15 18:37:08 +01:00
Christian Clason
46079c3396 build(deps): bump luarocks to v3.9.2
Changes from 3.8.0:
https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-392
2023-03-15 18:10:54 +01:00
Christian Clason
5a38e951ec build(deps): bump tree-sitter to HEAD - a318b42c8 2023-03-15 14:25:04 +01:00
Christian Clason
27b467bad2 build(deps): bump tree-sitter to v0.20.8 (#22663) 2023-03-14 09:29:56 +01:00
dundargoc
29a43ef8af build: explicitly add dependency include dir for header generation
Neovim and the generated headers needs to use the same include
directories to build correctly. However, we need to generate headers
before all target dependencies has been resolved, meaning that we cannot
rely on any target to determine the final list of include directories.
This may lead to a problems when bundling some, but not all or none,
dependencies as the dependency include directory won't be included.

Also remove the dependency path options as this assumes a specific
structure on the dependency build directory.
2023-03-10 22:40:41 +01:00
Christian Clason
8a3220ba49 build(deps): set query parser to release (#22603) 2023-03-10 10:05:47 +01:00
red
64d3f68c07 build: fix build warning when using gcc 4.9.2
Problem:
When building with gcc 4.9.2, tree-sitter throws warning: "for loop initial
declarations are only allowed in C99 or C11 mode"

Solution:
set CMAKE_C_STANDARD option to 99
2023-03-09 16:46:34 +01:00
dundargoc
5dcf544f8a build: fix USE_EXISTING_SRC_DIR option
Since 0007aa50bd the build unsets all URL
variable immediately when USE_EXISTING_SRC_DIR is TRUE, which is
correct. However, this causes the function BuildTSParser to break down
as cmake functions aren't traditionally equipped to deal with empty
variables. Using cmake_parse_arguments fixes this issue.
2023-03-05 18:45:34 +01:00
dundargoc
f4d83ac1e2 build: consistently use the provided option paths
We provide options such as "DEPS_BIN_DIR" for the user to set, but only
sometimes use them. This makes binaries and other files to be spread out
if the user defines a custom DEPS_BIN_DIR location.
2023-03-05 15:21:46 +01:00
Christian Clason
46c4cbced5 build(deps): bump msgpack-c to v6.0.0 (#22522)
* Remove C++ requirement if test is disabled
* Change CMake package name of C library to msgpack-c
* Unified all C package, library, cmake, tarball name become msgpack-c.
2023-03-04 17:26:24 +01:00