| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| | |
also ignore two new warnings showing false positives
|
|/ |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Since 0007aa50bd3d54259bb4ae717c114f5524ec59fa 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.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
This will reduce required boilerplate, but more importantly it will
automatically unset variables ending on URL. This will help people
needing to avoid to unset the URL variable each time a new dependency is
added.
It is possible that this may remove a non-download variable ending on
"URL" in the future, however, the risk of this is likely much lower than
the risk of someone forgetting to unset the variable.
|
|
|
| |
skip injections for now
|
|
|
|
|
|
|
|
| |
- 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".
|
|
|
|
| |
This will prevent cmake from failing the build if a C++ compiler isn't
found.
|
|
|
| |
Add -j flag to the make command for luajit. Cuts down dependency build time by 40% when using the Ninja generator.
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
Also remove Libvterm-tbl2inc_c.cmake as it's not required. It's used to
generate files that are already provided by the Libvterm project by
default. It's also not really something we need to concern ourselves
with as it's more of an authoring tool for the Libvterm creator as
mentioned in
https://github.com/neovim/neovim/pull/21986#issuecomment-1403733054.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
| |
This reduces platform-specific differences and the amount of code.
|
|
|
|
|
|
| |
The dependencies aren't set up properly meaning that this will cause a
failure on some systems such as void linux.
Closes https://github.com/neovim/neovim/issues/21982.
|
|
|
| |
Also remove UnibiliumCMakeLists.txt as it's not necessary anymore.
|
| |
|
|
|
|
| |
It's simpler to rely on the same build file, especially if there aren't
any platform-specific workarounds like in this case.
|
|
|
|
|
|
|
| |
It's simpler to let cmake figure out what flags to add to each platforms
to create position independent code rather than handling it ourselves.
Also remove code that sets POSITION_INDEPENDENT_CODE property on SHARED
and MODULE libraries, as it's already on by default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
| |
The default cmake installation process for dependencies that use cmake
on all platforms is in general more robust and less verbose, so we rely
on that if possible.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
build(deps): disable shared library for libvterm
Problem:
Cannot build both static and share libraries for libvterm under Windows.
The static and shared library would have the same name "vterm.lib", thus there would be multiple rules to build the same target.
Solution:
Disable shared library for libvterm.
This makes it possible to use Ninja on Windows to build dependencies (2x speedup!).
But not for Release builds yet.
Co-authored-by: Wei Tang <gauchyler@uestc.edu.cn>
|
|
|
|
|
|
|
| |
Problem:
Build type is not set in BuildLibuv.cmake, so libuv is always built for Debug type.
Solution:
Add build type for libuv.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This is just to avoid the boilerplate of definining PREFIX for
each dependency.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We don't support cross-compilation at the moment, so these can be safely
removed.
|
|
|
|
|
| |
It was set in file cmake/i386-linux-gnu.toolchain.cmake which has been
removed since we don't use Travis anymore.
|
|
|
| |
also remove libuv-disable-shared patch
|
|
|
|
| |
Build tree-sitter parsers for arm64 as well as x86
Check that all created binaries contain both architectures
|
|
|
|
|
| |
parser from https://github.com/vigoux/tree-sitter-vimdoc
queries from nvim-treesitter
|
|
|
|
|
| |
These functions serve no purpose if they're only used as intermediary
functions that passes on arguments to ExternalProject_Add.
|
|
|
|
|
| |
It's a command that doesn't do anything, kept only for compatibility
reasons.
|
| |
|
|\
| |
| | |
build(deps): bump libvterm to 0.3-RC1
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
The @error capture is used for tree-sitter's ERROR node, which indicates
a parsing error -- which can be quite frequent (and jarring) while typing.
Users can still manually `hi link @error Error` in their config.
|
| |
|
|
|
|
|
| |
parser from https://github.com/MunifTanjim/tree-sitter-lua
queries from nvim-treesitter
|
|
|
|
|
| |
CMAKE_BUILD_TYPE is ignored for multi-config generators and creates a
warning that it's unused.
|
|
|
|
|
| |
This will prevent warnings of the type "ignoring unknown option '-fPIC'"
when using MSVC.
|
|
|
|
|
| |
This removes cmake policy warning for CMP0053 on windows and ensures the
build works correctly for newer cmake policies.
|