aboutsummaryrefslogtreecommitdiff
path: root/cmake
Commit message (Collapse)AuthorAge
* build: prevent in-tree builds for the time being, as it's not supportedJohn Szakmeister2016-10-11
|
* functionaltest: Create lua helper for os.tmpname()Rui Abreu Ferreira2016-08-31
| | | | | | | | | | | | | | | In Windows Lua's os.tmpname() returns relative paths starting with \s, prepend them with $TEMP to generate a valid path. In OS X os.tmpname() returns paths in '/tmp' but they should be in '/private/tmp'. We cannot use os_name() for platform detection because some tests use tempname() before nvim is spawned, instead use one of the following: 1. Set SYSTEM_NAME environment variable before calling the tests, it is set from CMAKE_SYSTEM_NAME(i.e. uname -s or 'Windows') 2. Call uname -s 3. Assume windows
* tests: Set env variables in RunTests.cmakeTommy Allen2016-08-17
| | | | | | - NVIM_RPLUGIN_MANIFEST - XDG_CONFIG_HOME - XDG_DATA_HOME
* MSVC: Build third-party dependencies as release DLLsRui Abreu Ferreira2016-08-07
| | | | | | | | | | | | | | | | | | | | | | Using /MT was causing issues when building luarocks, revert it, use the dynammic runtime and generate release DLLs for the dependencies. Some refactoring was required because for linking cmake looks for the import libraries (.lib) but on runtime executables we need the .dll files to be in the same folder. The DLLs are placed in the bin/ folder in order for nvim.exe to run during the build and tests. The install target installs the DLLs with the nvim binary - uses GetPrerequisites to find runtime DLLs. Some minor issues that required adjustments: - [MSVC] FindMsgpack.cmake now looks for msgpack_import.lib instead of msgpack.lib - The lua-client fails to find libuv.lib, instead it looks for uv.lib, added second copy of the file to the install command. - [MSVC] CMAKE_BUILD_TYPE affects the output paths, default to Release. Part of these changes are credited to @jasonwilliams200OK who fixed the third-party recipes to consistently use the same build type.
* Pass busted the path to the detected Lua interpreterJosh Triplett2016-07-13
| | | | | | | Otherwise, busted may run a different interpreter than the one we detected, without the capabilities we expect. (For instance, we might have detected the luajit interpreter, but busted might run the lua interpreter, without the ffi module.)
* cmake: Allow building without LuajitRui Abreu Ferreira2016-05-19
| | | | | | | | | | | | | By default Neovim searched a Luajit instalation and linked against the luajit library. In practice Neovim only requires luajit to run the unit tests. All other targets only require lua and the correct lua modules. This commit: 1. Remove the strict dependency on Luajit 2. Makes the unittest target depend on the lua 'ffi' module. If the module is not available the target is not enabled and a message is displayed.
* Satisfy testlint.KillTheMule2016-04-28
| | | | For that, make luatest ignore the preload.lua files.
* cmake: allow linting a specific fileBjörn Linse2016-02-25
| | | | | For instance to only lint "edit.c" make lint LINT_FILE="src/nvim/edit.c"
* cmake: Use find_package(Msgpack)'s version in pkg_search_moduleJames McCoy2016-02-05
| | | | | Avoid duplicating information by using the Msgpack_FIND_VERSION variable exported by find_package() inside FindMsgpack's pkg_search_module call.
* cmake: msgpack: Check all lib names per directoryJames McCoy2016-02-05
| | | | | | | By default, find_library() searches all directories for one possible name and then looks for the next name. To make sure we're building against the same headers and libraries, look for all names in a directory before moving to the next one.
* cmake: msgpack: Add more thorough version checkJames McCoy2016-02-05
| | | | | | | | | | In 33bc332, version constraints were added to pkg_search_module(), but that only affects the set of directories searched by find_library()/find_path(). Once the header directory is found, parse the version from version_master.h so it can be checked by the find_package() call in the root CMakeLists.txt.
* cmake: msgpack: Ensure at least version 1.0 is foundJames McCoy2016-01-28
| | | | | | Neovim's code relies on functionality introduced in msgpack-c 1.0.0 (at least MSGPACK_OBJECT_FLOAT enum value), so enforce that minimum version.
* cmake: Search for both libmsgpackc and libmsgpack #4075James McCoy2016-01-22
| | | | | | | | | | | | | | | libmsgpack was the old C++ library provided by msgpack-c. The C library is libmsgpackc. The C++ support became header-only, but there was a bug (msgpack/msgpack-c#395) wherein using msgpack-c's CMake build system would only install libmsgpack instead of libmsgpackc. Searching for both libraries, but preferring libmsgpackc, allows for building against older msgpack-c releases and prepares for the upcoming msgpack-c release which fixes the aforementioned issues. Signed-off-by: James McCoy <jamessan@jamessan.com>
* MinGW: Add libluajit-5.1 lib name to FindLuaJitRui Abreu Ferreira2015-12-02
|
* cmake: Don't use check_library_exists for Win32 API librariesRui Abreu Ferreira2015-11-29
| | | | | | | | When building for X86 the CMake check_library_exists always fails to find functions from the Win32 API due to name mangling conventions. The convention for API functions is __stdcall and the CMake test code assumes __cdecl. Since these are libraries from the Windows API we can simply link against the libraries without checking for the functions.
* Tests: add luacheck for linting testsMarco Hinz2015-11-23
| | | | | | | Source: https://github.com/mpeterv/luacheck Docs: http://luacheck.readthedocs.org/en/0.12.0/index.html Run via "make testlint".
* Be more explicit about the lack of X11 integrationMichael Reed2015-11-10
| | | | | I don't want anyone getting the idea that the `-X` flag they might have used has anything to do with why the `+` is working for them
* CMake: Force use of project directory to look for Git data.Florian Walch2015-11-01
| | | | | | | | | | Before this change, building Neovim would recursively search parent directories for a .git directory. If Neovim was downloaded as a tarball (i.e. without a .git directory), but placed in a subdirectory of a Git repository, this caused a CMake error. Such a situation could occur when packaging Neovim, for example. Unfortunately, the previous attempt in #3317 did not fix this problem.
* Windows: Link against libraries libuv needs on Windows.Rui Abreu Ferreira2015-09-09
|
* MSCV: FindLibUV: fix libname. #3261Rui Abreu Ferreira2015-08-31
|
* Windows: FindLuaJit: fix libname. #3262Rui Abreu Ferreira2015-08-31
|
* ci: Use error suppression in place of ignored files list. #3185ZyX2015-08-20
| | | | Fixes #3174
* Travis: Refactor CI files, use container infrastructure.Florian Walch2015-07-08
| | | | | | | | | | | | | | | | | | | | | * Split build steps to utilize the Travis build lifecycle. * Move shell code from `.travis.yml` into Bash files in `.ci/`, one file for each step of the Travis build lifecycle. * Use configuration variables in `.travis.yml` to change build behavior (e.g. build 32-bit with `BUILD_32BIT=ON`). * Keep all configuration in environment variables in `.travis.yml`. In scripts, concatenate environment variables according to configuration to change to different behavior. * Add GCC 5 builds for Linux. * Use Travis's caching feature [1] for third-party dependencies and pip packages. * Allow failures MSan, as the errors it reports have to be fixed first. Valgrind is still disabled, but can be enabled by setting `env: VALGRIND=ON` for a job in `.travis.yml`. [1] http://docs.travis-ci.com/user/caching
* cmake: Make `make lint` less verboseMichael Reed2015-06-27
| | | | | It unnecessarily complicates spotting linter errors, as they're usually surrounded by a bunch of lines saying "Done processing ... ".
* CMake: Fix helptags generation when prefix is not /usr. #2741Thomas Anderson2015-06-09
|
* CMake: Workaround for hanging helptags generation. #2801Florian Walch2015-06-06
| | | | | | | | | | | | | | | | | | | | | | | Piping input into nvim causes the helptags generation to hang. For example, the following does not work: yes | nvim -c "helptags ." The helptags are generated during installation with a command similar to the one above, using CMake's execute_process to call nvim. As execute_process does not use an intermediate shell, the following will cause the installation to hang: yes | make install pacaur, an Arch Linux package helper, uses a similar command to install packages [1], and thus can currently not be used to install Neovim. This commit adds a workaround to GenerateHelptags.cmake to circumvent this problem. [1] https://github.com/rmarquis/pacaur/blob/22c00a3d05f6504b44dfbc2f3cbd6ab1291e3c9c/pacaur#L825
* Build: Use GNUInstallDirs, install man pages #2649Michael Reed2015-05-17
| | | | | | | | | | | For now, only install man pages matching "nvim*.1": we don't want to install xxd.1 as it might conflict with that of a user's Vim installation. closes #1826 Reviewed-by: Florian Walch <florian@fwalch.com> Helped-by: John Szakmeister <john@szakmeister.net>
* Travis: Add Mingw third-party buildsRui Abreu Ferreira2015-05-15
| | | | | - Build third-party/ in Travis using mingw - Import mingw-w64 cmake toolchain
* CMake: Remove duplicate PkgConfig lookups.Florian Walch2015-04-29
|
* CMake: Refer to Unibilium instead of LibUnibilium.Florian Walch2015-04-29
|
* build: Improve GenerateHelptags.cmake failure messageThiago de Arruda2015-04-13
| | | | | Some errors during helptags can be caused by duplicate/wrong tags after documentation cleanup. Suggest the removal of the "doc" directory.
* deps: Add jemalloc as an optional dependencyThiago de Arruda2015-04-13
| | | | | | | | | | | | Jemalloc will be used if the cmake option `USE_JEMALLOC` is enabled(which is the default). To avoid trouble with clang's ASAN, it is disabled by default if the `SANITIZE` option is enabled. Since jemalloc has thread cache for small objects, it fills the gap created by removing klib memory pools. The `xstrdup` funciton(memory.c) had to be reimplemented on top of `xmalloc` to make it work with a custom allocator.
* test: Improve functional test debuggability and efficiencyThiago de Arruda2015-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Read TEST_TAG/TEST_FILTER env vars from cmake/RunTests.cmake. Setting these environment variables will pass --tags/--filter to busted, which can used to filter which tests are executed. - Remove calls to nvim msgpack-rpc API outside tests. This removes the requirement of having a static `clear` call in test/functional/helpers.lua - Use the new busted command-line option "--lazy" to ensure the setup/teardown hooks are only executed when a suite runs at least one test. Now its possible to run/debug a single test like this: ```sh TEST_FILTER='some test string' make test ``` Which will only run tests containing "some test string" in the title. Another option is: ```sh TEST_TAG=some-tag make test ``` After putting #some-tag into the test title. This also improves debugging experience because there will be no unnecessary gdbserver instances whe GDB=1 is passed.
* build: add support for running the tests in junit formatJohn Szakmeister2015-03-21
| | | | | | This requires a couple of extra modules that are not installed by default, and it requires capturing stdout of the tests--otherwise CMake output is intermixed with the XML output of busted.
* tests: prevent busted from reloading the ffi module and othersJohn Szakmeister2015-03-01
| | | | | | | | | | | It turns out that Busted started cleaning the environment in 2.0rc5 as a result of Olivine-Labs/busted#62. This, in turn, caused the ffi module to be reloaded for each spec file, and LuaJIT doesn't appreciate it. The net effect is an assertion error in LuaJIT. By using the --helper feature of Busted, we can pre-load some modules ahead of Busted and prevent it from reloading them--making LuaJIT happy again.
* deps: Add libvterm to the project dependenciesThiago de Arruda2015-02-28
| | | | | libvterm is a terminal emulation library with abstract display. It will be used to implement builtin terminal emulation into Nvim.
* build: filter off libuv from PC_LIBUV_LIBRARIESJohn Szakmeister2015-02-24
| | | | | Otherwise, the -rdynamic that is being passed on the command line will require a dynamic link, even though we often want a static one.
* deps: Remove libtickit as a project dependencyThiago de Arruda2015-02-11
| | | | Also update libtermkey version and fix the pkg-config search scripts.
* CMake: Hide stderr output for successful test runs.Florian Walch2015-02-06
| | | | Fixes #1301.
* Linting: Integrate into CMake, enable by default.Florian Walch2014-12-24
|
* build: only manipulate out if getting the timestamp was successfulJohn Szakmeister2014-12-03
| | | | | This fixes an issue seen in #1548, though the real problem is something different.
* build: no need to quote the paths in CMake, it will do it automaticallyJohn Szakmeister2014-12-03
|
* build: fix a typo in a comment of FindLuaJit.cmakeJohn Szakmeister2014-12-02
|
* deps: Add libtickit/libtermkey as dependencyThiago de Arruda2014-12-01
| | | | The new terminal UI will be implemented on top of those libraries
* build: add failure message along with number in GenerateHelptags.cmakeSteven Oliver2014-11-25
|
* build: print the error result when the tests failJohn Szakmeister2014-11-25
| | | | | Any diagnostic information is useful when things fail. In my case, it printed out the fact that the tests were segfaulting.
* Fix #1484: search gettext subdir for headerJohn Szakmeister2014-11-17
| | | | | | On some systems, such as NetBSD, the gettext header is tucked under the gettext directory in the system include area. Let's add a path suffix to ensure we correctly discover the header on such systems.
* build: allow installing into the root directory (/)John Szakmeister2014-11-09
| | | | | | | | | | It turns out that CMake always canonicalizes `CMAKE_INSTALL_PREFIX` to an absolute path--if it's a relative path, it canonicalizes it relative to the build directory. As a result, the only thing the DESTDIR and relative directory check prevents is an installation into the root directory since CMake strips the trailing slash, turning "/" into an empty string. Let's just remove the check all together, since it cannot accomplish what we intended.
* version: Add compilation info.Florian Walch2014-11-09
|
* Merge pull request #1437 from jszakmeister/build-search-fixesJohn Szakmeister2014-11-09
|\ | | | | A few fixes for some build-related issues.