Commit Graph

120 Commits

Author SHA1 Message Date
dundargoc
b62c0c8d9c
docs: fix typos (#21961)
Co-authored-by: Ben Morgan <cassava@iexu.de>
2023-02-20 15:12:59 +08:00
dundargoc
5ffd3d035d
build: build all dependencies in parallel (#22329)
Previously, all targets were connected in one main target called
third-party in order to remove any potentially conflicting shared
library. We can make each dependency target independent of each other by
only removing shared libraries from luajit and msgpack in their own
targets, as only these has unwanted shared libraries.
2023-02-19 21:11:27 +01:00
Christian Clason
f905ab0450
build(deps): bump tree-sitter to HEAD - c51896d32 (#22296) 2023-02-17 12:53:09 +01:00
Christian Clason
464b7b1e77
Merge pull request #22165 from clason/bump-Luv
build(deps): bump Luv to HEAD - e8e7b7e13
docs(luvref): update to latest version
2023-02-08 14:37:50 +01:00
Christian Clason
07a6bc2be3
build(deps): bump libuv to HEAD - 62c2374a8 (#22166) 2023-02-08 14:37:04 +01:00
dundargoc
4d2c1004e9
build: prefer -D <variable>=<value> over -D<variable>=<value> (#22164)
This makes it easier to see that -D is referring to the entire
"<variable>=<value>", rather than only <variable>. It also help syntax
highlighters highlight built-in variables.
2023-02-08 11:00:16 +01:00
Christian Clason
893c7b9bb1 build(deps): bump Luv to HEAD - e8e7b7e13 2023-02-08 10:58:39 +01:00
Enan Ajmain
645daaf5e9
build(Windows): make bundling nvim-qt optional (#21866)
Closes https://github.com/neovim/neovim/issues/14552.
2023-02-08 10:08:18 +01:00
Christian Clason
37da48cabd build(deps): bump tree-sitter-vimdoc to v1.3.0 2023-02-01 11:34:51 +01:00
Christian Clason
2cde6a18b5
build(deps): bump unibilium to d72c3598e7ac5d1ebf86ee268b8b4ed95c0fa628 (#22019)
actually use build system improvements
2023-01-27 14:53:53 +01:00
dundargoc
b8288df99b
build: introduce default build variables (#21991)
There are a number of cmake variables and cache variables that need to
be passed to all dependencies. This is not only cumbersome, but also
fragile as it's easy to miss adding or removing a flag from a dependency
by accident. Introducing a global variable that controls all builds
makes it much easier to handle our dependencies.

Also fixes the currently broken release workflow as we need to pass the
CMAKE_OSX_ARCHITECTURES variable to all dependencies built with cmake.
2023-01-25 14:36:17 +01:00
dundargoc
39630265c4
build: remove GNU make check (#21977)
The entire thing is incorrect. It checks the wrong variable and tries to
unset a cache variable without using the CACHE keyword, which doesn't work.
2023-01-24 10:40:50 +01:00
dundargoc
4c5c6ca800
build: various cmake fixes (#21902)
* build: various cmake refactors and simplifications

- Add STATUS keyword to message to ensure messages are shown in the
  correct order.
- Remove DEPS_CXX_COMPILER as we don't rely on C++ for any of our
  dependencies.
- Simplify how msgpack and luv configure options are constructed.
- Rely on the default installation for luv instead of manually passing
  configure, build and install commands.
- Simplify return code conditional.

* build: remove CMAKE_OSX_ARCHITECTURES_ALT_SEP workaround

CMAKE_OSX_ARCHITECTURES_ALT_SEP was defined as a workaround to prevent
the shell from interpreting `;`, which CMake uses as a list separator.
However, the same thing can be achieved by instead passing
CMAKE_OSX_ARCHITECTURES as a cache variable instead, which is a more
idiomatic way of achieving the same thing.

* build: define CMAKE_BUILD_TYPE before adding it to BUILD_TYPE_STRING

The problem with the current setup is that CMAKE_BUILD_TYPE is defined
after BUILD_TYPE_STRING. BUILD_TYPE_STRING will then be empty on the
first run, meaning that dependencies are built without a build type.
However, since CMAKE_BUILD_TYPE is a cache variable its value will
persist in subsequent runs. On the second run BUILD_TYPE_STRING will
have the correct value, but it's a different value from the ones the
dependencies were built with. This will force some dependencies to be
built again.

Fixes https://github.com/neovim/neovim/issues/21672.
2023-01-20 23:48:46 +01:00
Christian Clason
2d71ed9929
build(deps): bump tree-sitter to HEAD - eb970a83a (#21858)
includes efd22e452b which fixes some errors around infinite loops with injections
2023-01-17 12:57:06 +01:00
Christian Clason
d8eb99e363
Merge pull request #21828 from clason/bump-libvterm
build(deps): bump libvterm to v0.3.1
2023-01-16 19:04:24 +01:00
Christian Clason
7295ed1f6f build(deps): bump libvterm to v0.3.1
Included patches:

821. By Paul "LeoNerd" Evans on 2022-12-29
Don't bother to emit the unrecognised sequence in DECRQSS response as it provides an echo roundtrip possibility

820. By Paul "LeoNerd" Evans on 2022-11-26
erase_internal() should only set fg/bg colour, resetting other attributes (especially RV)

819. By Paul "LeoNerd" Evans on 2022-11-09
Added vterm_screen_set_default_colors(), which repaints the cells in the buffer(s)

818. By Paul "LeoNerd" Evans on 2022-11-09
Permit either colour argument to be NULL to vterm_state_set_default_colors()

817. By Paul "LeoNerd" Evans on 2022-10-01
Delete the mk_wcswidth functions as they're not used; guard the CJK-wide one with an ifdef as by default we don't use it

816. By Paul "LeoNerd" Evans on 2022-10-01
Make sure to supply empty (void) prototype to functions that take no arguments in bin/vterm-ctrl.c
2023-01-16 18:40:19 +01:00
Raphael
9e1d2e2ca7
build(deps): bump LuaJIT to HEAD - d0e88930d
build(deps): bump LuaJIT to HEAD-d0e88930d

 Don't fail for Clang builds, which pretend to be an ancient GCC.
 Fix compiler warning.
2023-01-16 12:10:42 +00:00
Christian Clason
39ea662824
build(deps): bump LuaJIT to HEAD - a04480e31 (#21500) 2022-12-22 11:34:26 +01:00
Christian Clason
07e6296520
Merge pull request #21154 from clason/vimdoc-injections
feat(help): highlighted codeblocks
2022-12-02 16:45:39 +01:00
Christian Clason
805c83f43e
build(deps): bump LuaJIT to HEAD - 564147f51 (#21257) 2022-12-02 10:20:53 +01:00
Christian Clason
5093f38c9f feat(help): highlighted codeblocks 2022-11-29 13:32:46 +01:00
Christian Clason
915891f28c
build(deps): update viml parser and queries (#21158) 2022-11-22 21:25:51 +01:00
Christian Clason
582c044dbe
build(deps): bump lua parser to v0.0.14 (#20897) 2022-11-01 13:38:47 +01:00
Christian Clason
dab07be4d1
build(deps): bump vimdoc parser to v1.2.5 (#20829) 2022-10-27 09:16:16 +02:00
Christian Clason
29fe3348ba
build(deps): bump vimdoc parser and queries to v1.2.4 (#20788) 2022-10-24 09:35:00 +02:00
Justin M. Keyes
e6917306f6
docs: update vimdoc parser #20747
Remove the user-manual ToC from help.txt, because:
1. it duplicates usr_toc.txt
2. it is not what most readers are looking for in the main help page.

fix https://github.com/neovim/tree-sitter-vimdoc/issues/49
fix https://github.com/neovim/tree-sitter-vimdoc/issues/50
fix https://github.com/neovim/tree-sitter-vimdoc/issues/51
2022-10-20 06:20:02 -07:00
Justin M. Keyes
ef4c339fb9
feat(docs): update parser, HTML gen #20720
Note: although the tolerance in help_spec.lua increased, the actual
error count with the new parser decreased by about 20%. The difference
is that the old ignore_parse_error() ignored many more errors with the
old parser.

fix https://github.com/neovim/tree-sitter-vimdoc/issues/37
fix https://github.com/neovim/tree-sitter-vimdoc/issues/44
fix https://github.com/neovim/tree-sitter-vimdoc/issues/47
2022-10-18 07:18:44 -07:00
Justin M. Keyes
d339b4aad7
build(deps): bump vimdoc (help) parser to v1.2.1 #20642 2022-10-13 18:36:25 -07:00
Christian Clason
2bce99b978
build(deps): bump vimdoc parser to v1.2.0 #20557 2022-10-09 14:06:32 -07:00
Justin M. Keyes
f7b175e049
fix(docs-html): keycodes, taglinks, column_heading #20498
Problem:
- Docs HTML: "foo ~" headings (column_heading) are not aligned with
  their table columns/contents because the leading whitespace is not
  emitted.
- taglinks starting with hyphen like |-x| were not recognized.
- keycodes like `<foo>` and `CTRL-x` were not recognized.
- ToC is not scrollable.

Solution:
- Add ws() to the column_heading case.
- Update help parser to latest version
  - supports `keycode`
  - fixes for taglink, argument
- Update .toc CSS. https://github.com/neovim/neovim.github.io/issues/297

fix https://github.com/neovim/neovim.github.io/issues/297
2022-10-06 06:16:00 -07:00
James McCoy
61da959bb4
build(deps): restore support for USE_EXISTING_SRC_DIR (#20491)
59d5f692f removed cmake.deps/cmake/DownloadAndExtractFile.cmake and
support for USE_EXISTING_SRC_DIR.  The Ubuntu nightly PPA still relies
on USE_EXISTING_SRC_DIR functionality since it can't access the network
during the build.

Supplying an empty value for ExternalProject_Add()'s URL value appears
to provide the needed mechanism to avoid re-downloading when the sources
are already present.  This is undocumented behavior, though, so it may
break in the future.

Now, if USE_EXISTING_SRC_DIR is set, the ExternalProject's URL variable
is unset, preventing the download and erroring out if the source doesn't
actually exist.
2022-10-06 15:14:38 +02:00
Justin M. Keyes
088abbeb6e feat(docs): nested lists in HTML, update :help parser
- Docs HTML: improvements in https://github.com/neovim/tree-sitter-vimdoc
  allow us to many hacks in `gen_help_html.lua`.
- Docs HTML: support nested lists.
- Docs HTML: avoid extra newlines (too much whitespace) in old
  (preformatted) layout.
- Docs HTML: disable golden-grid for narrow viewport.
- Workaround for https://github.com/neovim/neovim/issues/20404

closes https://github.com/neovim/neovim/issues/20404
2022-10-04 16:49:17 +02:00
Christian Clason
04f763b208
build(deps): bump LuaJIT to HEAD - 6c4826f12 (#20478) 2022-10-04 14:00:27 +02:00
dundargoc
fbc66d798c build: define EP_PREFIX property
This is just to avoid the boilerplate of definining PREFIX for
each dependency.
2022-10-02 12:47:14 +02:00
dundargoc
59d5f692f8 build: rely on builtin cmake downloading rather than custom script
DownloadAndExtractFile.cmake was initially introduced as a workaround to
avoid the massive amounts of logs generated by the download progress.
This is not a problem anymore as ExternalProject_Add has had the
DOWNLOAD_NO_PROGRESS option since cmake version 3.1.
2022-10-02 12:39:48 +02:00
dundargoc
543f939773 build: remove url for 32-bit winyank
We don't support 32bit Windows anymore, so it's not needed. Also remove
TargetArch.cmake and related code as we don't need architecture
detection for the same reason.
2022-10-02 12:39:20 +02:00
dundargoc
3ce325cfa2 build: remove code for cross-compilation
We don't support cross-compilation at the moment, so these can be safely
removed.
2022-10-02 12:39:20 +02:00
dundargoc
06addcfaa9 build: remove unused variable CMAKE_C_COMPILER_ARG1
It was set in file cmake/i386-linux-gnu.toolchain.cmake which has been
removed since we don't use Travis anymore.
2022-10-02 12:39:20 +02:00
Christian Clason
dd35bc2840
build(deps): bump Luv to HEAD - 80c8c00ba (#20433) 2022-10-02 12:19:42 +02:00
Christian Clason
816026ba10
build(deps): bump libuv to HEAD - f610339f7 (#20445)
also remove libuv-disable-shared patch
2022-10-02 12:08:29 +02:00
Justin M. Keyes
892da763bb
fix(dist): update neovim-qt, win32tools.zip #20413
- fix regression by #20411
  - `diff.exe` is required for non-default 'diffopt' (diffopt=filler, diffopt=context, …)
  - the names of some required nvim-qt DLLs changed
2022-09-30 07:53:10 -07:00
Justin M. Keyes
ad6af3c1a9
dist(win): update neovim-qt, win32tools.zip #20411
- update curl.exe (+ ca bundle), tee.exe, xxd.exe
- remove diff.exe because `diffopt=internal` is now the default
- update neovim-qt
2022-09-30 04:24:46 -07:00
Justin M. Keyes
561c99c86a feat(treesitter): update :help parser 2022-09-29 13:08:43 +02:00
Justin M. Keyes
d9ed8d1110 feat(treesitter): update :help parser and queries 2022-09-28 17:31:56 +02:00
Christian Clason
cd96fe06e1
build(deps): bump treesitter-vimdoc to v1.0.0 2022-09-28 16:39:42 +02:00
Christian Clason
a5effcedd2
build(deps): bump help parser and queries (#20388) 2022-09-28 16:29:35 +02:00
Justin M. Keyes
bde6176c91 feat(treesitter): bundle :help parser and queries
parser from https://github.com/vigoux/tree-sitter-vimdoc
queries from nvim-treesitter
2022-09-22 15:36:27 +02:00
Christian Clason
6cc03b9c90
build(deps): bump libvterm to v0.3 (#20222) 2022-09-16 19:30:04 +02:00
Christian Clason
279c7b11fb
build(deps): bump tree-sitter-lua to v0.0.13 (#20210) 2022-09-16 09:26:37 +02:00
Christian Clason
22a88c425e
build(deps): bump Luv to 1.44.2-1 (#20128)
https://github.com/luvit/luv/releases/tag/1.44.2-1
2022-09-09 09:44:16 +02:00
Christian Clason
79a9b00671
build(deps): bump tree-sitter-viml to 0.2.0 (#20121) 2022-09-08 19:46:40 +02:00
Christian Clason
694ac26946
Merge pull request #17329 from cryptomilk/asn-vterm-0-2
build(deps): bump libvterm to 0.3-RC1
2022-09-06 22:41:37 +02:00
Andreas Schneider
9ecaa35f55 build(deps): use libvterm 0.3-rc1 2022-09-06 21:48:14 +02:00
dundargoc
6e3a69b4cf
build: consistently set build type regardless of generator or platform #19760
Change the default build type to always be Debug, and allow only four
predefined build types: Debug, Release, RelWithDebInfo and MinRelSize.
Furthermore, flags meant for single-configuration generator (make,
ninja) will not be used for multi-configuration generators (visual
studio, Xcode), and flags meant for multi-configuration generators will
not be used for single-configuration generators.

This will allow Debug builds to be built with MSVC which requires that
all dependencies are also built with the Debug build type to avoid
runtime library mismatch.

The correct way to specify build type (for example Release) for
single-configuration generators (Make and Ninja) is to run

cmake -B build -D CMAKE_BUILD_TYPE=Release
cmake --build build

while for multi-configuration generators (Visual Studio, Xcode and Ninja
Multi-Config) is to run

cmake -B build
cmake --build build --config Release

Passing CMAKE_BUILD_TYPE for multi-config generators will now not only
not be used, but also generate a warning for the user.

Co-authored-by: dundargoc <gocundar@gmail.com>
2022-09-06 07:52:39 -07:00
Christian Clason
e85b8aa768 feat(treesitter): add viml parser and queries 2022-09-06 07:57:46 +02:00
Thomas Vigouroux
905dd49fec feat(treesitter): bundle Lua parser and queries
parser from https://github.com/MunifTanjim/tree-sitter-lua
queries from nvim-treesitter
2022-09-06 07:57:46 +02:00
Christian Clason
24fbda04b9
build(deps): bump tree-sitter-c to v0.20.2 (#20079) 2022-09-04 12:09:04 +02:00
Christian Clason
5296e9407d
build(deps): bump tree-sitter to v0.20.7 (#20067) 2022-09-03 11:30:24 +02:00
dundargoc
11837e9b29 build: only use CMAKE_BUILD_TYPE for single-config generators
CMAKE_BUILD_TYPE is ignored for multi-config generators and creates a
warning that it's unused.
2022-08-13 21:22:07 +02:00
Lewis Russell
e23c5fda0a
build libuv cmake (#19632)
Co-authored-by: Daniel Hahler <git@thequod.de>
2022-08-12 16:59:40 +01:00
Christian Clason
252dea5927
build(deps): bump LuaJIT to HEAD - 633f265f6 (#19703) 2022-08-11 08:53:15 +02:00
Christian Clason
468b1a689a
build(deps): bump LuaJIT to HEAD - a7d026548 (#19565) 2022-07-28 18:02:26 +02:00
Christian Clason
b971547c54
build(deps): bump LuaJIT to HEAD - e1339aed3 (#19536) 2022-07-28 09:18:22 +02:00
Christian Clason
9e15bdde3b
build(macos): use consistent MACOSX_DEPLOYMENT_TARGET (#19430)
Use the same logic for both deps (including LuaJIT, for which setting
this variable is mandatory) and Nvim: either the eponymous environment
variable if set, or the current software version if not.

Removes annoying warnings when building locally on macOS.
2022-07-19 16:10:59 +02:00
James McCoy
0a716fc776
build: bump minimum CMake version in cmake.deps
The minimum version for the main project was bumped in 035d82e0d3.
Align cmake.deps to the same version for consistency.
2022-07-19 07:02:51 -04:00
Christian Clason
b41f2bcae7
build(deps): bump LuaJIT to HEAD - 50936d784 (#19343) 2022-07-14 12:30:46 +02:00
Christian Clason
b81d1eb265
build(deps): bump tree-sitter to HEAD - 1f1b1eb45 (#19347) 2022-07-14 09:21:02 +02:00
Christian Clason
685d6ab6ca
build(deps): bump Luv to 1.44.2-0 (#19346) 2022-07-14 09:20:47 +02:00
Christian Clason
b1e0197a14
build(deps): bump libuv to v1.44.2 (#19338) 2022-07-12 20:45:24 +02:00
Justin M. Keyes
f05a2891d3 build: rename build-related dirs
Problem:
Dirs "config", "packaging", and "third-party" are all closely related
but this is not obvious from the layout. This adds friction for new
contributors.

Solution:
- rename config/ to cmake.config/
- rename test/config/ to test/cmakeconfig/ because it is used in Lua
  tests: require('test.cmakeconfig.paths').
- rename packaging/ to cmake.packaging/
- rename third-party/ to cmake.deps/ (parallel with .deps/)
2022-06-28 04:02:29 -07:00