aboutsummaryrefslogtreecommitdiff
path: root/cmake.deps/cmake
Commit message (Collapse)AuthorAge
* fix: deps build for ARM64 MSVCJohnny Shaw2024-10-08
| | | | | | | | | | | Problem: Neovim will not build for ARM64 using MSVC due to misconfigured gettext dependency build settings. Solution: Fix the dependency build settings for gettext when building with MSVC.
* build: use treesitter's CMakeLists.txtdundargoc2024-09-22
|
* build: bump minimum cmake version to 3.16dundargoc2024-09-21
|
* feat(treesitter): add support for wasm parsersLewis Russell2024-08-26
| | | | | | | | | | | | | | | | | | | | Problem: Installing treesitter parser is hard (harder than climbing to heaven). Solution: Add optional support for wasm parsers with `wasmtime`. Notes: * Needs to be enabled by setting `ENABLE_WASMTIME` for tree-sitter and Neovim. Build with `make CMAKE_EXTRA_FLAGS=-DENABLE_WASMTIME=ON DEPS_CMAKE_FLAGS=-DENABLE_WASMTIME=ON` * Adds optional Rust (obviously) and C11 dependencies. * Wasmtime comes with a lot of features that can negatively affect Neovim performance due to library and symbol table size. Make sure to build with minimal features and full LTO. * To reduce re-compilation times, install `sccache` and build with `RUSTC_WRAPPER=<path/to/sccache> make ...`
* build(deps): vendor libvterm at v0.3.3Christian Clason2024-08-10
| | | | | | | | Problem: Adding support for modern Nvim features (reflow, OSC 8, full utf8/emoji support) requires coupling libvterm to Nvim internals (e.g., utf8proc). Solution: Vendor libvterm at v0.3.3.
* build(deps): remove msgpack-c dependencybfredl2024-08-05
|
* build(deps): drop unused bundled bash, python parsers and queriesChristian Clason2024-07-09
| | | | | | | | | | Problem: Neovim bundles treesitter parsers for bash and python but does not use them by default. This dilutes the messaging about the bundled parsers being required for functionality or reasonable out-of-the-box experience. It also increases the risk of query incompatibilities for no gain. Solution: Stop bundling bash and python parser and queries.
* build: add utf8proc as dependencydundargoc2024-06-28
| | | | | | | | | utf8proc contains all the data which is currently in unicode_tables.generated.h internally, but in quite a different format. Ideally unicode_tables.generated.h should be removed as well so we rely solely on utf8proc. We want to avoid a situation where the possibility of unicode mismatch occurs, e.g a distro using both unicode 12 and unicode 13.
* build: use libvterm commit with generated *.inc filesdundargoc2024-05-05
| | | | This allows us to skip generating them during our build process.
* build: simplify policy-setting for dependenciesdundargoc2024-05-03
| | | | | Passing `CMAKE_POLICY_DEFAULT_CMP0092=NEW` to all dependencies is simpler than setting it manually in each file.
* docs: fix typos (#27868)dundargoc2024-03-28
| | | | | | | | | Co-authored-by: ite-usagi <77563904+ite-usagi@users.noreply.github.com> Co-authored-by: v-sim <56476039+v-sim@users.noreply.github.com> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Quico Augustijn <quico.public@gmail.com> Co-authored-by: nhld <nahnera@gmail.com> Co-authored-by: francisco souza <108725+fsouza@users.noreply.github.com>
* ci: provide separate macos releases for intel and armdundargoc2024-03-24
| | | | | | This will immensely reduce the complexity required to support both architectures, reduce overall lines of code and unblock follow-up simplifications.
* build: use `GIT_REPOSITORY` for local URLsdundargoc2024-03-23
| | | | | | | `GIT_REPOSITORY` will cause cmake to rebuild if local dependency changes, which isn't the case for `URL`. Also document how to test a different commits of a dependency.
* build: introduce variable DEPS_IGNORE_SHA for skipping dependency hash checkdundargoc2024-03-19
| | | | | | | | This will reduce friction as developers no longer need to provide a hash when testing out different commits. To skip the hash check, set `DEPS_IGNORE_SHA` to `TRUE` in `cmake.deps/CMakeLists.txt`.
* build: stop installing parser.h from treesitterdundargoc2024-02-09
|
* build: various build improvementsdundargoc2024-01-24
| | | | | | | | | | | | | | | | | | - remove "ran-" prefix from touch files as it's redundant since the they're already in the directory named `touches`. - Include `contrib` when formatting with `make formatlua`. - Use TARGET_FILE generator expression instead of assuming the executable location. - reuse logic that determines whether to use lua or luajit. - add translations to the `nvim` target. Makefile improvements: - rename variable `CMAKE_PRG` to `CMAKE` to make it more consistent with the builtin `MAKE` variable. - stop propagating flags to generator. Users should use cmake for non-standard use cases. - remove `+` prefix from targets. If the user for whatever reason wants to dry-run a target then they should be able to.
* build: cmake fixesdundargoc2023-12-16
| | | | | | | | | | | | | | - add EXTERNALPROJECT_OPTIONS variable to main build - use `REQUIRED` keyword for IWYU. - remove check_c_compiler_flag checks when `ENABLE_COMPILER_SUGGESTIONS` is `ON`. If we explicitly enable it then we probably want it to give an error if it doesn't exist, rather than silently skip it. - Move dependency interface libraries to their find module and use them as a pseudo-imported target. - Remove BUSTED_OUTPUT_TYPE. It's not used and we can reintroduce it again if something similar is needed. - Use LINK_OPTIONS intead of LINK_FLAGS when generating the `--version` output.
* build: bump minimum cmake version to 3.13dundargoc2023-12-16
| | | | | | | | | | | The benefits are primarily being able to use FetchContent, which allows for a more flexible dependency handling. Other various quality-of-life features such as `-B` and `-S` flags are also included. This also removes broken `--version` generation as it does not work for version 3.10 and 3.11 due to the `JOIN` generator expression. Reference: https://github.com/neovim/neovim/issues/24004
* build: fix universal mac buildsdundargoc2023-12-16
| | | | | | | | | | | | Cmake 3.28+ will fail if two projects download the same file to prevent scheduling problems. This can be circumvented by downloading luajit to a unique location for each target. This is theoretically non-optimal since we need to download the same file three times for universal builds, but universal builds are rare and the convenience of this method outweighs setting up the dependencies optimally. This fixes the currently broken release workflow for mac. Closes https://github.com/neovim/neovim/issues/26526.
* build: vendor libtermkeydundargoc2023-11-30
| | | | | This is a proof of concept/WIP to evaluate the viability of vendoring libtermkey as it's been deprecated.
* fixup: quick update, squash laterdundargoc2023-11-20
|
* build: disable all compiler warnings from dependenciesdundargoc2023-11-20
|
* build: various cmake fixesdundargoc2023-11-18
| | | | | | | | | | - Correct MSVC warning suppression. The C4003 warning is issued during file generation and not for the actual source files. - Remove non-existent "scripts/pvscheck.sh" file from `lintsh` target. - Remove spaces inside for loops with uncrustify. - Point dependencies to use a git tag rather than releases, as releases might have changes that deviate from the actual source code. - Automatically update uncrustify config before formatting or linting.
* build: various cmake fixesdundargoc2023-11-04
| | | | | | | - silence false warnings on MSVC - merge `clang-tidy` cmake target into `lintc` and remove the corresponding make target - use cmake's built-in endianness detection
* build: use neovim/libvterm instead of neovim/deps for libvtermdundargoc2023-10-29
| | | | | Using a mirror makes it easier to test patches as well as reducing maintenance when a new version is released.
* build: use neovim/libtermkey instead of neovim/deps for libtermkeydundargoc2023-10-28
| | | | | Using a mirror makes it easier to test patches as well as reducing maintenance when a new version is released.
* 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.
* 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(deps): bump luajit to HEAD - 03c31124cChristian Clason2023-08-23
| | | | | | Switch to a rolling release, so the `0-beta3` suffix is dropped in favor of the date. Remove the custom UNIX command as the symlink is now created by the LuaJIT Makefile.
* feat(treesitter): add bash parser and queriesChristian Clason2023-07-01
|
* feat(treesitter): add python parser and queriesChristian Clason2023-07-01
|
* feat(treesitter): bundle markdown parser and queries (#22481)Christian Clason2023-07-01
| | | | | | | * bundle split Markdown parser from https://github.com/MDeiml/tree-sitter-markdown * add queries from https://github.com/nvim-treesitter/nvim-treesitter/tree/main * upstream `#trim!` and `#inject-language!` directives Co-authored-by: dundargoc <gocdundar@gmail.com>
* 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: 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
* build: add luajit runtime files when installing (#23514)dundargoc2023-05-09
| | | Closes https://github.com/neovim/neovim/issues/15543.
* build: remove USE_BUNDLED_BUSTED optiondundargoc2023-05-08
| | | | | | 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.
* build: add system lua include dir for lpegEnan Ajmain2023-05-07
| | | | | | | | | | | 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
* refactor(build): include lpeg as a librarybfredl2023-04-27
|
* refactor(build): use vendored versions of mpack and luabitopbfredl2023-04-19
|
* build: various cmake fixesdundargoc2023-04-15
| | | | | - 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
* build: create helper function for simplifying luarocks installationdundargoc2023-04-12
| | | | | 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.
* build(Windows): allow building without custom md5sumdundargoc2023-04-05
| | | | | | | Follow-up to eb1da498d6af79b7856418d7df51ce584c621340. 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>
* 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
* build(windows): work around luarocks not finding its own md5sumdundargoc2023-04-03
| | | | | | | | 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".
* refactor(treesitter)!: rename help parser to vimdocChristian Clason2023-04-01
|
* build: download wintools executables separatelydundargoc2023-03-28
| | | | | | | 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.
* build: set CMAKE_C_STANDARD to 99 for all dependenciesdundargoc2023-03-24
| | | | | | | 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.
* Merge #22691 build!: sanitizers for gccJustin M. Keyes2023-03-19
|\
| * build!: rename sanitizer options from CLANG_* to ENABLE_*ii142023-03-17
| |
* | build(deps): bump mpack to 1.0.10Christian Clason2023-03-17
| |