aboutsummaryrefslogtreecommitdiff
path: root/cmake
Commit message (Collapse)AuthorAge
* docs: small fixes (#26154)dundargoc2023-11-27
|
* fixup: quick update, squash laterdundargoc2023-11-20
|
* build: disable all compiler warnings from dependenciesdundargoc2023-11-20
|
* build: bump required minimum libvterm version to 0.3.3dundargoc2023-10-28
| | | | Also add detection for libvterm patch version.
* build: enable formatting during rebasedundargoc2023-10-23
| | | | Closes https://github.com/neovim/neovim/issues/25654
* build: adjust how find order is prioritizeddundargoc2023-10-16
| | | | | | | | | | | | | | | | | | | Ensure bundled libraries and include directories are always searched first before any others. This will provide a more consistent experience as the search order of the builtin find_ functions can vary depending on system. This should make the build process faster when building with bundled deps as we limit the search to only the .deps directory. Separating the search between .deps and everything makes debugging find_-related problems simpler if you need to check how dependencies are found. For libraries, we divide the search process into the following order: 1. Only search in .deps directory and only search for static libraries. 2. Only search in .deps directory and search for all libraries. 3. Search everywhere and search for all libraries. Make an exception for FindLibintl.cmake as changing the search order seems to break some tests on macos.
* fix(tests): set SHELL=sh #24941Sergey Slipchenko2023-09-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Some tests fail with $SHELL=fish #6172 Related: https://github.com/neovim/neovim/pull/6176 Solution: Replace "echo -n" with "printf", because "echo" in sh may be provided as a shell builtin, which does not accept an "-n" flag to avoid a trailing newline (e.g. on macos). "printf" is more portable (defined by POSIX) and it does not output a trailing newline by itself. Fixes #6172 TODO: Other test failures may be related to "session leader" issue: https://github.com/neovim/neovim/issues/2354 Checked by running `:terminal ./build/bin/tty-test` from Nvim with `shell=/bin/fish` (inherited from `$SHELL`) and it indeed complains about "process does not own the terminal". With `shell=sh` it doesn't complain. And unsetting `$SHELL` seems to make `nvim` to fall back to `shell=sh`. FAILED test/functional/terminal/tui_spec.lua @ 1017: TUI paste: terminal mode test/functional/terminal/tui_spec.lua:1024: Row 1 did not match. Expected: |*tty ready | |*{1: } | |* | | | |{5:^^^^^^^ }| |{3:-- TERMINAL --} | |{3:-- TERMINAL --} | Actual: |*process does not own the terminal | |* | |*[Process exited 2]{1: } | | | |{5:^^^^^^^ }| |{3:-- TERMINAL --} | |{3:-- TERMINAL --} | To print the expect() call that would assert the current screen state, use screen:snapshot_util(). In case of non-deterministic failures, use screen:redraw_debug() to show all intermediate screen states. stack traceback: test/functional/ui/screen.lua:622: in function '_wait' test/functional/ui/screen.lua:352: in function 'expect' test/functional/terminal/tui_spec.lua:1024: in function <test/functional/terminal/tui_spec.lua:1017> FAILED test/functional/terminal/tui_spec.lua @ 1551: TUI forwards :term palette colors with termguicolors test/functional/terminal/tui_spec.lua:1567: Row 1 did not match. Expected: |*{1:t}ty ready | | | |* | | | |{2:^^^^^^^ }| | | |{3:-- TERMINAL --} | Actual: |*{1:p}rocess does not own the terminal | | | |*[Process exited 2] | | | |{2:^^^^^^^ }| | | |{3:-- TERMINAL --} | To print the expect() call that would assert the current screen state, use screen:snapshot_util(). In case of non-deterministic failures, use screen:redraw_debug() to show all intermediate screen states. stack traceback: test/functional/ui/screen.lua:622: in function '_wait' test/functional/ui/screen.lua:352: in function 'expect' test/functional/terminal/tui_spec.lua:1567: in function <test/functional/terminal/tui_spec.lua:1551>
* build: remove luarocksdundargoc2023-09-10
| | | | | Luarocks is no longer needed after 25e51d393a420765d5efd44c1b4be823a5cf280a.
* build(lua): vendor coxpcallbfredl2023-09-10
| | | | Do not require luarocks on PUC lua CI just because of this single lua file
* fix(deps): make sure --force-config takes effectSergey Slipchenko2023-09-09
| | | | | | | | | | | | | | Fixes #24881 --force-config passed to luarocks' configure script is only taken into account in case "make install" is used afterwards. But if "make bootstrap" is used then this flag has no effect. And it can actually copy an existing config on the system to the new installation. That existing config can have a different version of Lua set by default. In which case luarocks will install packages for that version instead of the one used in tests. And trying to run tests then will fail because of missing packages.
* refactor(build): derocksify luacheckbfredl2023-09-07
|
* build: various fixesdundargoc2023-09-04
| | | | | | | | | - simplify lua interpreter search - fix incorrect variable name in BuildLua.cmake - build PUC Lua with -O2 - silence non-mandatory find_package search for libuv - simplify Find modules - Prefer using the explicitly set CI_BUILD over relying on the environment variable "CI".
* build: download busted from own neovim/deps repositorydundargoc2023-09-03
| | | | | | | | Downloading the necessary files all at once instead of doing dependency handling with luarocks speeds up installation immensely. We speed up the process even more by using luv as a replacement for the C modules in the busted dependencies, which allows us to skip costly compilation times. Co-authored-by: bfredl <bjorn.linse@gmail.com>
* feat(version): unverbose ":version", ":verbose version" #24195Justin M. Keyes2023-07-01
| | | | | | | | | Problem: `nvim -v` and `:version` prints system vimrc, fallback files, and compilation info by default, which most people don't care about and just clutters up the output. Solution: Omit extra info unless 'verbose' is set.
* ci: introduce CI_LINT optiondundargoc2023-06-24
| | | | | | This will abort if lint programs are not found, and is meant primarily for the lint job in CI. Supersedes the REQUIRED argument in add_glob_target as it's a superior replacement by being a built-in solution.
* feat: report "build" in vim.version() #23925treatybreaker2023-06-11
| | | | | | | | | | Problem: Nvim version string typically has a "build" component but vim.version() doesn't report it. Solution: Add the "build" field to vim.version(). Closes #23863
* build: move luarocks and rocks installation to main builddundargoc2023-05-21
| | | | | | This will ensure luacheck and busted are only installed when they're actually needed. This cuts total build time by over 50%. Closes https://github.com/neovim/neovim/issues/22797.
* build: don't format deleted filesdundargoc2023-05-18
| | | Trying to format deleted files will otherwise throw an error.
* build: bundle uncrustifydundargoc2023-05-18
| | | | | | Uncrustify is sensitive to version changes, which causes friction for contributors that doesn't have that exact version. It's also simpler to download and install the correct version than to have bespoke version checking.
* build: cmake cleanupdundargoc2023-05-13
| | | | | | | | | | - 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
* feat(treesitter): add support for setting query depthsLewis Russell2023-05-11
|
* build: make lpeg an imported librarydundargoc2023-04-30
| | | | | | | | | | | Cmake truncates the full link path to a shared library if it is missing an SONAME in some undocumented scenarios. This causes builds in some systems to fail if "lpeg" isn't a library on the system path. The path of imported libraries aren't modified by cmake, so we can use that as a workaround until a proper solution for this has been identified. Closes https://github.com/neovim/neovim/issues/23395.
* refactor(build): include lpeg as a librarybfredl2023-04-27
|
* build: find system luv on ubuntudundargoc2023-04-19
| | | Also use the system luv in CI for the with-external-deps job.
* build: cmake cleanupdundargoc2023-04-04
| | | | | | | - 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
* refactor(build): make installation of runtime/ more effectivebfredl2023-03-07
| | | | | | | | | | | | | | | | | | | Currently files to install in runtime/ is detected by recursive glob pattern which has two problems: - cmake needs to do a of work at config time and build/runtime/cmake_install.cmake becomes HUGE (2.5MB, biggest config file) - we need to explicitly specify each file suffix used in the entire runtime, which is duplication of information. These globs specify every single file in a subdirectory. Thus, we can just install every runtime/ subdirectory as a single install command. Furthermore, at the top-level, only .vim and .lua files need to be installed. Further possible refactor: we could move files which does not belong in $PREFIX/runtime out of $REPO/runtime. Then runtime could be installed with a single install_helper(DIRECTORY ...) command.
* build: remove workaround for incorrectly packaged libluvdundargoc2023-03-05
| | | | | | This removes a workaround for incorrectly packaged libluv in 90e44ecf1144cb32195da00e24d23afb111ea680 as it should not be needed anymore.
* build: silence git describe error outputBiswapriyo Nath2023-03-05
| | | | | This change will silence the warning from git describe command when the project is built using source tarball. The warning is fatal: not a git repository: 'neovim/.git'
* build(deps): bump msgpack-c to v6.0.0 (#22522)Christian Clason2023-03-04
| | | | | * 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.
* refactor(build): graduate unibilium VAR_FROM feature from 2017bfredl2023-03-03
|
* refactor(build): graduate msgpack-c FLOAT32 "feature" since foreverbfredl2023-03-03
|
* refactor(build): graduate libtreesitter features which are 1+ years oldbfredl2023-03-03
|
* build: cmake cleanup (#22251)dundargoc2023-03-02
| | | | | | | | - Remove unused code - Use consistent casing. Variable names such as LibLuV_LIBRARIES is needlessly jarring, even if the name might be technically correct. - Use title casing for packages. find_package(unibilium) requires the find_module to be named "Findunibilium.cmake", which makes it harder to spot when scanning the files. Instead, use "Unibilium".
* build: remove libfindmacros library (#22423)dundargoc2023-03-02
| | | | | | Large parts the library weren't being used, and the parts that were was overly abstracted for our use case. Additionally, part of its use case was to abstract pkgconfig boilerplate, which is no longer needed as pkgconfig has been removed in favor of relying on cmake alone in 09118052cee5aef978d6075db5287c1b6c27381a.
* build: remove pkgconfig-related code (#22422)dundargoc2023-02-26
| | | Cmake should already be able to find everything on its own.
* docs: fix typos (#21961)dundargoc2023-02-20
| | | Co-authored-by: Ben Morgan <cassava@iexu.de>
* build: use libuv config file (#22209)ii142023-02-16
| | | | | | | | | Libuv's recent changes in their pc file breaks cmake; they are using -l:libuv.a for the linker, and it seems cmake can't resolve that. Prefer using their cmake config file instead instead, and use the find module as a fall-back in case it fails. Closes https://github.com/neovim/neovim/issues/22271.
* ci: print DLL copy messages only in CI environment (#22260)Enan Ajmain2023-02-14
| | | In Windows, library DLL's are copied in the building process, and a message for each copy is printed. This is useful to have in the log of CI, but annoying to see when you're building and rebuilding nvim constantly. Work around this issue by only enabling the messages on CI.
* build: don't check environment variable to detect CI (#22234)dundargoc2023-02-12
| | | | Instead use the cmake option, which should act as the definitive source to determine whether we use CI or not.
* Merge pull request #22077 from bfredl/neolua_clientbfredl2023-02-10
|\ | | | | refactor(tests): integrate lua-client into core and use core for functionaltests
| * refactor(tests): move lua-client into core and use it for functionaltestsbfredl2023-02-10
| | | | | | | | | | | | | | | | Eliminates lua-client and non-static libluv as test time dependencies Note: the API for a public lua-client is not yet finished. The interface needs to be adjusted to work in the embedded loop of a nvim instance (to use it to talk between instances)
* | build: mark uninteresting variables as advanced (#22208)dundargoc2023-02-10
|/ | | Only the most important variables should be shown by default.
* build(deps): bump libuv to HEAD - 62c2374a8 (#22166)Christian Clason2023-02-08
|
* build: prefer -D <variable>=<value> over -D<variable>=<value> (#22164)dundargoc2023-02-08
| | | | | 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.
* build: remove duplicate INTERFACE keyword (#22106)dundargoc2023-02-07
|
* build: stop relying on CMAKE_BUILD_TYPE to determine the build type (#22051)dundargoc2023-02-03
| | | | | | | | | | | | Any logic involving CMAKE_BUILD_TYPE is automatically broken as it won't work with multi-config generators. The only exception is if we explicitly check whether the current generator is single-config as well. Instead, use generator expressions or cmake variables that allows to set options for certain build types only such as INTERPROCEDURAL_OPTIMIZATION_<CONFIG>. Opt to generate all headers with optimization level O2 with no debug information for all build types as that is the simplest way to make it behave the same for all generators.
* refactor(tests): run unittests using main nvim binary in interpreter modebfredl2023-01-31
| | | | This allows us to get rid of the separate "nvim-test" target
* build: fix dependencies in find modules (#22017)dundargoc2023-01-27
| | | | Find modules should only link to libraries defined in the find module, and not the main project. This helps the find modules be more self-contained and easier to understand.
* build: find unibilium without relying on libfindmacros (#22015)dundargoc2023-01-27
| | | | This will remove the warning about the find module not providing a version.
* build: check if libvterm version meets requirement (#22010)dundargoc2023-01-26
| | | | The vterm.h file only specifies major and minor version, but not patch, meaning that requiring a specific patch number isn't currently possible.