Commit Graph

76 Commits

Author SHA1 Message Date
Rui Abreu Ferreira
73db02b99c MSCV: FindLibUV: fix libname. #3261 2015-08-31 03:18:04 -04:00
Rui Abreu Ferreira
d00d37b486 Windows: FindLuaJit: fix libname. #3262 2015-08-31 03:16:35 -04:00
ZyX
57eaefbb23 ci: Use error suppression in place of ignored files list. #3185
Fixes #3174
2015-08-20 23:40:15 -04:00
Florian Walch
d2eb4a9346 Travis: Refactor CI files, use container infrastructure.
* 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
2015-07-08 07:42:16 -03:00
Michael Reed
3c2fa1767b cmake: Make make lint less verbose
It unnecessarily complicates spotting linter errors, as they're usually
surrounded by a bunch of lines saying "Done processing ... ".
2015-06-27 15:21:09 -04:00
Thomas Anderson
9995f15a98 CMake: Fix helptags generation when prefix is not /usr. #2741 2015-06-09 01:12:08 -04:00
Florian Walch
6609a545ad CMake: Workaround for hanging helptags generation. #2801
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] 22c00a3d05/pacaur (L825)
2015-06-06 14:29:33 +03:00
Michael Reed
aa1d9a1807 Build: Use GNUInstallDirs, install man pages #2649
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>
2015-05-17 14:57:43 -04:00
Rui Abreu Ferreira
f65614fb1c Travis: Add Mingw third-party builds
- Build third-party/ in Travis using mingw
- Import mingw-w64 cmake toolchain
2015-05-15 17:55:02 +03:00
Florian Walch
2446b997c6 CMake: Remove duplicate PkgConfig lookups. 2015-04-29 22:26:55 +03:00
Florian Walch
07d4142a18 CMake: Refer to Unibilium instead of LibUnibilium. 2015-04-29 22:26:55 +03:00
Thiago de Arruda
0487ea9f64 build: Improve GenerateHelptags.cmake failure message
Some errors during helptags can be caused by duplicate/wrong tags after
documentation cleanup. Suggest the removal of the "doc" directory.
2015-04-13 12:29:54 -03:00
Thiago de Arruda
8a1a9b9558 deps: Add jemalloc as an optional dependency
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.
2015-04-13 08:22:59 -03:00
Thiago de Arruda
1ee7ca7bc0 test: Improve functional test debuggability and efficiency
- 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.
2015-03-24 12:46:15 -03:00
John Szakmeister
afae3e25d5 build: add support for running the tests in junit format
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.
2015-03-21 09:47:49 -04:00
John Szakmeister
d8ef23849a tests: prevent busted from reloading the ffi module and others
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.
2015-03-01 15:25:39 -05:00
Thiago de Arruda
81a346553c deps: Add libvterm to the project dependencies
libvterm is a terminal emulation library with abstract display. It will be used
to implement builtin terminal emulation into Nvim.
2015-02-28 10:41:53 -03:00
John Szakmeister
e077f4ee99 build: filter off libuv from PC_LIBUV_LIBRARIES
Otherwise, the -rdynamic that is being passed on the command line will
require a dynamic link, even though we often want a static one.
2015-02-24 14:01:25 -05:00
Thiago de Arruda
9e75b2e18b deps: Remove libtickit as a project dependency
Also update libtermkey version and fix the pkg-config search scripts.
2015-02-11 12:40:50 -03:00
Florian Walch
281cd3856c CMake: Hide stderr output for successful test runs.
Fixes #1301.
2015-02-06 13:39:23 +01:00
Florian Walch
e21f6e754d Linting: Integrate into CMake, enable by default. 2014-12-24 00:32:26 -05:00
John Szakmeister
cf1939aab3 build: only manipulate out if getting the timestamp was successful
This fixes an issue seen in #1548, though the real problem is something
different.
2014-12-03 04:56:50 -05:00
John Szakmeister
143833872b build: no need to quote the paths in CMake, it will do it automatically 2014-12-03 04:54:21 -05:00
John Szakmeister
279c519e33 build: fix a typo in a comment of FindLuaJit.cmake 2014-12-02 18:44:15 -05:00
Thiago de Arruda
9ac2e8423a deps: Add libtickit/libtermkey as dependency
The new terminal UI will be implemented on top of those libraries
2014-12-01 20:36:37 -03:00
Steven Oliver
80cda3f2fb build: add failure message along with number in GenerateHelptags.cmake 2014-11-25 19:31:11 -05:00
John Szakmeister
346e07e8da build: print the error result when the tests fail
Any diagnostic information is useful when things fail.  In my case, it
printed out the fact that the tests were segfaulting.
2014-11-25 06:15:57 -05:00
John Szakmeister
369045cf05 Fix #1484: search gettext subdir for header
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.
2014-11-17 19:31:48 -05:00
John Szakmeister
6e87557c08 build: allow installing into the root directory (/)
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.
2014-11-09 17:48:19 -05:00
Florian Walch
176930fa56 version: Add compilation info. 2014-11-09 18:34:57 +01:00
John Szakmeister
dcccc1a50d Merge pull request #1437 from jszakmeister/build-search-fixes
A few fixes for some build-related issues.
2014-11-09 08:31:33 -05:00
John Szakmeister
1ea90f6971 Merge pull request #1400 from jszakmeister/install-helpers-destdir
build: fix the usage of DESTDIR in InstallHelpers.cmake
2014-11-09 05:03:05 -05:00
John Szakmeister
938faf5e2d build: fix the usage of DESTDIR in InstallHelpers.cmake
It turns out that `file(INSTALL ...)` already accounts for `DESTDIR`, so
this wasn't creating the directory structure in the correct location.
Instead, we need to do our existence check with `DESTDIR`, but leave it
off when doing the install step.

While we're at it, add a check to make sure `ENV{DESTDIR}` is not being
used with a relative path, as that construct doesn't make much sense.

This fixes issue #1387 discovered while trying to make helptag
generation work correctly in #1381.
2014-11-08 16:55:15 -05:00
John Szakmeister
9344a40e74 build: pull iconv detection into its own FindIconv.cmake file
This will provide better control for those who may want to alter which
one gets used.
2014-11-08 16:22:35 -05:00
Thiago de Arruda
5e5525a78b test: Set VIMRUNTIME before running tests
This is required for testing scripts under the 'runtime' directory
2014-11-05 14:02:04 -03:00
Florian Walch
afa5831d73 CMake: Fix running individual (functional/unit) test. 2014-11-05 13:57:29 +01:00
John Szakmeister
5ba1d980fb build: fix running of functional tests directly with CMake
If you aren't just building everything into build/, then the functional
tests fail because they can't find the nvim executable.  Let's pass in
the location of the nvim executable, and set NVIM_PRG environment
variable accordingly.
2014-11-05 07:26:35 -05:00
Florian Walch
cc7199f0e5 CMake: Fix helptags generation. 2014-11-03 19:46:40 +01:00
Florian Walch
3fa28d2ba5 Revert "Merge pull request #1381 from xzfc/master"
This reverts commit 6c0a596dac, reversing
changes made to 33d3a7c83b.
2014-11-03 18:07:56 +01:00
Albert Safin
37be21fdee GenerateHelptags: Use ${PREFIX} variable 2014-11-03 19:06:59 +06:00
Albert Safin
62ede403f0 CMake: Fix checking of DESTDIR 2014-11-03 19:05:46 +06:00
Xu Cheng
973fc5c66b GenerateHelptags: check whether DESTDIR exists 2014-11-03 14:41:49 +08:00
Florian Walch
0b775e3513 CMake: Set execute permissions during installation. 2014-10-20 15:07:14 +02:00
Thiago de Arruda
69561ea922 test: Remove run-functional-tests.py
Now that the lua client is available, python/lupa are no longer necessary to run
the functional tests. The helper functions previously defined in
run-functional-tests.py were adapted to test/functional/helpers.lua.
2014-10-16 09:21:37 -03:00
Justin M. Keyes
92b17e174f cmake: handle missing git or .git/
GetGitRevisionDescription.cmake: we don't need fine-grained failure
modes, we only need "yes" or "no".

fix #1292
2014-10-15 14:45:42 -04:00
Xu Cheng
7e57d326f4 homebrew: look for .git/ outside of build workspace #1274 2014-10-15 14:45:38 -04:00
Justin M. Keyes
a1901941f8 version: generate "build number" from commit timestamp
- cmake: git_timestamp() returns last commit time formatted as
  `YYYYMMddHHmm`.
- Always include commit hash in :version and --version output.

`nvim --version` sample output:
  NVIM 0.0.0-alpha+201410070245 (compiled Oct  7 2014 05:30:45)
  Commit: f747b2b1ff7bfe7eb00cc2be82d7af87c98f1111
2014-10-07 10:23:15 +00:00
Justin M. Keyes
2c2fee4d1f version: report commit hash as "build number" in long version string 2014-10-07 10:03:14 +00:00
Thiago de Arruda
549fc9548d test: Move 'test/legacy' to 'test/functional'
Busted can only discover tests from a single directory. In order to allow tests
under 'legacy' to run as a functional test, it needed to be moved to
'test/functional'.
2014-10-01 09:05:28 -03:00
Thiago de Arruda
42d5b526b9 test: Replace vroom by lua/busted for functional tests
The 'lupa' python package provides a simple way to seamless integrate lua and
python code.

This commit replaces vroom by a python script that exposes the 'neovim' package
to a lua state, and invokes busted to run functional tests. This is a temporary
solution that will enable writing functional tests using lua/bused while a lua
client library is not available.

The reason for dropping vroom is flexibility: Lua/busted has a nice DSL-style
syntax while also providing the customization power of a full programming
language. Another reason is to use a single framework for unit/functional tests.

Two other changes were performed in this commit:

- Instead of "gcc-unittest/gcc-ia32", the travis builds for gcc are now
  identified by "gcc/gcc-32". They will run unit/functional tests for both 64
  and 32 bits.
- Old integration tests(in src/nvim/testdir) are now ran by the 'oldtest' target
2014-09-30 17:37:16 -03:00