Commit Graph

193 Commits

Author SHA1 Message Date
Rui Abreu Ferreira
f67c3e67ab Update busted version to 2.0.rc8-0 2015-04-22 14:07:10 +01:00
Rui Abreu Ferreira
78460bdf04 Refactor luarocks third-party recipe
- Replace repeated use of the luarocks command and build arguments
  with variables ${LUAROCKS_BINARY} and ${LUAROCKS_BUILDARGS}
2015-04-22 13:45:57 +01:00
Rui Abreu Ferreira
fe9ec9c299 Add option USE_BUNDLED_BUSTED to third-party
- When not running the unit tests, building the third-party busted,
  nvim-client and other dependencies can be skipped by passing
  -DUSE_BUNDLED_BUSTED=FALSE to the third-party project.
2015-04-22 13:45:57 +01:00
Michael Reed
74fbd10e57 Revert "third-party: temporarily drop back to an old version of the busted spec"
No longer needed after
aab5d19d0c

This reverts commit d22f2f9404.
2015-04-16 20:24:15 -04:00
John Szakmeister
d22f2f9404 third-party: temporarily drop back to an old version of the busted spec
The new one contains a clone url that does not work correctly.  Once
that is fixed, we can go back to tracking master.
2015-04-14 05:59:24 -04:00
John Szakmeister
53ba38d806 third-party: remove stray argument
This was missed when dropping our custom output handler.
2015-04-14 05:22:11 -04: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
484fd734ab build: Remove busted output handler utfTerminalDetailed
Busted now contains "gtest", which can be used for the same purpose as
utfTerminalDetailed.
2015-04-11 08:46:59 -03:00
Thiago de Arruda
5874bc28ea deps: Update busted and dependencies 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
Michael Reed
4fc0291c73 Update to libuv 1.4.2 2015-03-21 09:21:51 -03:00
Florian Walch
29b6fc57e8 deps: Use released versions for unibilium, msgpack-c. 2015-03-20 13:18:53 -03:00
Thiago de Arruda
9af193bc5c deps: Replace cp by ${CMAKE_COMMAND} -E copy for portability 2015-03-15 14:31:03 -03:00
Thiago de Arruda
dbe719317c deps: Add utfTerminalDetailed busted output handler
This is a variant of the utfTerminal output handler that will:

- Output the file name before each suite is executed
- Output the test name before each test is executed

This will make it simpler to identify crashing/hanging tests.
2015-03-15 09:13:26 -03:00
John Szakmeister
dda914fd6a build: fix a missing reference to libunibilium missed in #2125 2015-03-13 16:26:13 -04:00
John Szakmeister
f7332273cc third-party: change all references to libunibilium to just unibilium 2015-03-10 18:38:41 -04:00
John Szakmeister
e1ad8ae724 third-party: fix some whitespace issues from the recent splitting 2015-03-10 06:04:06 -04:00
Rui Abreu Ferreira
85492e86bd Split third-party recipes into multiple files 2015-03-09 13:24:21 +00:00
Thiago de Arruda
d2e13d3b3d deps: Update libvterm 2015-03-08 20:37:02 -03:00
Xu Cheng
d11e5b5d0d Switch to SHA256 for third-party bundles downloading
Closes #2107
2015-03-06 15:31:08 +08:00
Florian Walch
a4b96f2f11 deps: Fix building 32-bit Lua rocks.
* Force building Lua rocks instead of trying to install a binary.
 * Set the CC and LD environment variables to pass
   CMAKE_C_COMPILER_ARG1 (contains `-m32` for 32-bit builds)
   to `luarocks build`.
2015-03-02 09:54:24 +01:00
Thiago de Arruda
4bebdd1cd9 deps: Small fix for PR #2072
A newer version of luafilesystem than the one reported by busted rockspec is
required for the unit tests.

Also update libvterm sha1/url
2015-02-28 11:12:51 -03: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
Thiago de Arruda
585e5d32a3 deps: Add custom target for pinning busted dependencies
busted depends on a number of libraries that sometimes introduce crashing bugs.
The new custom target makes sure only stable versions of those dependencies are
installed.
2015-02-28 10:30:29 -03:00
Mike Zeller
f28941b96d illumos requires the use of limits.h for things like INT_MAX #2049 2015-02-26 11:42:05 -05:00
Thiago de Arruda
0ed3d66bef deps: Update unibilium version to add OSX support 2015-02-21 22:17:47 -03:00
John Szakmeister
0505bb0de8 Update message pack to include the FreeBSD and OpenBSD byteswap fix. 2015-02-19 03:05:48 -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
Thiago de Arruda
daba57c512 deps: Update lua-client
The new version sets a custom panic function that prints the lua traceback
before exiting.
2015-02-10 10:57:15 -03:00
Thiago de Arruda
4c92a0baca deps: Add Luajit compilation flags to improve debugging 2015-02-10 09:57:24 -03:00
John Szakmeister
b0044fa5c3 Merge pull request #1922 from jszakmeister/fix-build-under-opensuse-x64
Fix #1920: Unable to build on openSUSE 13.2 x64
2015-02-10 05:46:05 -05:00
Michael Reed
ec5e94518e build: upgrade msgpack-c #1900
closes #1899
closes #1967

refs https://github.com/msgpack/msgpack-c/pull/194
2015-02-09 23:51:02 -05:00
John Szakmeister
aa45a2c6cf build: allow SKIP or skip to be used as the SHA1
This will skip hash checking, just like the all zeros hash.
2015-02-09 06:30:17 -05:00
John Szakmeister
2019380bfa build: split hash checking from the download step
It turns out that `file(DOWNLOAD ...)` is not very user friendly with
it's error message, and only supports MD5 on v2.8.10 of CMake (the
default for Ubuntu 12.04).  If CMake is built without SSL support,
users are left hanging with a message that the hashes don't match.

It turns out that `file(SHA1 ...)` exists in v2.8.10, and we
can use that to compute the hash ourselves.  So this splits the hash
checking into a separate step, where we can provide some additional
advice if the SHA1 is the hash for an empty file.  Additionally, it also
allows us to drop the MD5 hashes and maintain only SHA1 hashes for our
dependencies.
2015-02-09 06:30:17 -05:00
Thiago de Arruda
f90c9b9105 deps: Fix libuv md5sum 2015-02-02 15:36:13 -03:00
John Szakmeister
75d5fcce04 Fix #1920: Unable to build on openSUSE 13.2 x64
The issue is that libuv decides to use ${PREFIX}/lib64 as the lib
directory instead of ${PREFIX}/lib.  Since we're just installing it to
provide access to the static library, let's just force the libdir to be
${PREFIX}/lib.
2015-02-01 07:09:21 -05:00
John Szakmeister
ed03d43d8b Fall back to libuv 1.2.0 and fix #1914.
It appears that commit 393c1c59a27591d705648919b2d7fb921cba37bc (unix:
set non-block mode in uv_{pipe,tcp,udp}_open) has broken Neovim's
drawing under OSX.  Let's revert to 1.2.0 until we can figure out what
is happening and get it fixed.
2015-02-01 06:53:28 -05:00
Michael Reed
d4354759d3 Update to libuv 1.3.0 2015-01-30 09:30:59 -03:00
Thiago de Arruda
c472e3af64 deps: Update lua client
The latest version works around a libuv bug that can leave zombie nvim processes
despite the event loop being properly cleaned up. This can lead to functional
tests being aborted depending on the maximum number of child processes
configured for a platform.
2015-01-23 18:52:55 -03:00
Thiago de Arruda
14ebe608e2 deps: Update libtickit URL 2015-01-15 09:01:44 -03:00
Thiago de Arruda
ac193d86fd deps: Use versioned URLs for libtickit and dependencies 2015-01-09 07:56:56 -03:00
Florian Walch
745c462ed3 Update busted to 2.0.rc4. 2014-12-18 18:22:08 +01:00
Rui Abreu Ferreira
64d78c0b7d Dont force ../.deps in third-party/CMakeLists.txt
- third-party is built under .deps by default instead of using its own
  ${CMAKE_BINARY_DIR}, move this default setting out of the cmake
  settings and into the Makefile.
- As a consequence the workflow of building third-party using CMake
  should feel more natural, avoid the additional folder or setting
  DEPS_DIR from the command line.
- This commit does not change the default behaviour when calling the
  Makefile wrapper.
2014-12-16 10:28:43 +00:00
Florian Walch
71984d4126 CMake: Remove msgpack shared library in subdirectories. 2014-12-11 10:51:00 +01:00
Thiago de Arruda
8fc710110f deps: Update lua client 2014-12-08 09:15:24 -03:00
Thiago de Arruda
83d9f9b768 deps: Fix unibilium/libtickit URLs 2014-12-06 09:22:03 -03:00
Thiago de Arruda
f1a934808a Revert "deps: Fix 32-bit build of lib{unibilium,termkey,tickit}"
This reverts commit f76df24753.
2014-12-06 09:15:53 -03:00
Thiago de Arruda
f76df24753 deps: Fix 32-bit build of lib{unibilium,termkey,tickit} 2014-12-06 07:54:59 -03:00
Thiago de Arruda
a31b06c44d deps: Update lua client 2014-12-05 14:23:37 -03:00
Thiago de Arruda
cc34c90df7 deps: Update unibilium and lua client 2014-12-03 10:12:41 -03:00
John Szakmeister
788a5cf478 Merge pull request #1542 from jszakmeister/upgrade-libuv
Update to libuv 1.0.1.
2014-12-03 06:19:47 -05:00
Thiago de Arruda
ecf1e672e1 deps: Use unibilium URL with Makefile fixed for OS X
Close #1594
2014-12-02 09:52:55 -03: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
John Szakmeister
d277922a4f Update to libuv 1.0.1.
This should fix #1505 and #1276 and libuv removes support for dtrace all
together.
2014-11-28 07:04:07 -05:00
John Szakmeister
98b11f5db3 Merge pull request #1562 from Happy-Dude/fix-1560-libuv-refs
Change refs for joyent/libuv repo to libuv/libuv.
2014-11-27 14:52:15 -05:00
Stanley Chan
a4ad5f6bee Change refs for joyent/libuv repo to libuv/libuv
* References to old repository found through grepping
* Replace references from github.com/joyent/libuv to github.com/libuv/libuv
* Fix previous commit by not including whitespace changes

 For issue #1560.
2014-11-27 10:05:14 -05:00
John Szakmeister
02b995478b build: allow skipping of the hash check in the download step
This is useful when trying to bisect an issue in a dependency, and we
want to pull from a specific commit but don't want to have to download
and determine the sha1sum and md5sum of the tarball.
2014-11-25 16:17:51 -05:00
Thiago de Arruda
99809903bb deps: Update bundled lua client version
The new version fixes defunct processes which causes random test failures on
some systems(#1519)
2014-11-25 14:47:54 -03:00
Rui Abreu Ferreira
2b887ec66b Use cmake --build instead of Make
- If possble try to abstract away from Make, and use cmake --build
- third-party still needs to find Make to build some components
- Removed search for Make from CMakeLists.txt
* for CMake < 3.0 --build has no color output
2014-11-14 14:35:16 +00:00
Xu Cheng
cca2c089cf build: don't download and extract tarball if source is already present
When building under Homebrew, we want to let Homebrew manage
downloading and extracting the tarballs. See PR #1411.

Also make sure to skip only if directory is not empty. Fix #1433.
2014-11-08 20:14:32 +08:00
John Szakmeister
5d0f8b63e3 Revert "build: don't download and extract tarball if source is already present"
This reverts commit 9065898264.

It failed to work correctly on a fresh clone.  See #1433.
2014-11-08 05:43:17 -05:00
John Szakmeister
07775c07c0 Merge pull request #1411 from xu-cheng/homebrew-formula
Let homebrew handle external resources download
2014-11-07 08:50:13 -05:00
Xu Cheng
9065898264 build: don't download and extract tarball if source is already present
When building under Homebrew, we want to let Homebrew manage downloading and
extracting the tarballs.
2014-11-07 20:19:00 +08:00
Xu Cheng
77fc32b311 Prefer to SHA1 other than MD5 in third-party downloads
If CMake version is less than 2.8.11, fallback to MD5
2014-11-07 16:07:26 +08:00
Thiago de Arruda
3e78fc9faf deps: Upgrade to latest version of lua-client 2014-11-06 22:45:15 -03:00
Thiago de Arruda
201e1512a1 deps: Add lua nvim-client as a dependency 2014-10-16 09:21:32 -03:00
Paul Jolly
c24dad3e59 Only use CMAKE_C_COMPILER_ARG1 if it is set 2014-09-24 04:06:20 -04:00
Thiago de Arruda
ddecfb763b deps: Switch lua msgpack library to one that supports 2.0 2014-09-16 14:14:00 -03:00
Thiago de Arruda
aab5f1a898 deps: Update msgpack
The new version fixes serialization/deserialization of EXT 8/16/32
2014-09-16 14:13:48 -03:00
John Szakmeister
5fa54a2dc0 third-party: avoid using rm in the install command
Also, the command was removing only .so versions of the library, and not
the the `.dylib` under Mac OS X, and in a way that it would fail if the
files weren't present.

Instead, let's delegate to a CMake script--to get the portability--and
use a glob to detect and remove the shared versions of the library.
Hopefully, this will become unnecessary as msgpack's build becomes more
full-featured, and we can just tell it to build the static version
instead.
2014-09-14 05:03:35 -04:00
Thiago de Arruda
e2143674ae deps: Update to the experimental msgpack v5 branch
Using msgpack v5 will let nvim be more compatible with msgpack libraries for
other platforms.

This also replaces "raw" references by "bin" which is the new name for msgpack
binary data type
2014-09-12 13:19:50 -03:00
Florian Walch
0a01b3052e Update busted to 2.0.rc3.
Default to verbose output to show more information in case of errors.
Fix #1031.
2014-09-11 20:03:35 +02:00
Florian Walch
dd27c30687 CMake: Use CMAKE_C_COMPILER_ARG1 when building dependencies.
CMAKE_C_COMPILER_ARG1 is set in CMake toolchain file
cmake/i386-linux-gnu.toolchain.cmake. Use when compiling dependencies to
simplify 32-bit builds.
2014-09-11 06:13:12 -04:00
Thiago de Arruda
80e421fe8d build: Remove moonscript as a third-party build dependency 2014-08-31 14:50:49 +02:00
Florian Walch
a063892b2e Update luarocks: Use commit with correct version number. 2014-08-29 21:52:34 +02:00
Justin M. Keyes
de025425fb upgrade luarocks
ref #822
2014-08-22 05:10:13 +00:00
Thiago de Arruda
8c37f9b4ff dependencies: Update to libuv 0.11.28 2014-08-07 10:22:42 -03:00
Florian Walch
67cdd65e21 Update luarocks. #1018
Fix #1013.
2014-08-01 09:30:17 -04:00
ZyX
4dadadd001 build: Compile static luajit lib with -fPIC #996
Should fix the following travis error:

    /usr/bin/ld: /opt/neovim-deps/lib/libluajit-5.1.a(lj_err.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
    /opt/neovim-deps/lib/libluajit-5.1.a: could not read symbols: Bad value
2014-07-25 21:13:44 +02:00
Nicolas Hillegeer
aad2a69c96 cmake: upgrade libuv 0.11.23 -> 0.11.26 #911
Fixes some bugs and increase the performance of uv_hrtime() on OSX, which
reduces its prominence in performance traces. This allows us to better see
what's really causing slowness.

ref:
- https://github.com/neovim/neovim/issues/868
- https://github.com/joyent/libuv/pull/1325
- https://github.com/joyent/libuv/releases
2014-07-06 23:55:12 +02:00
John Szakmeister
7e797067df Make it easier to turn the bundled dependencies off. 2014-05-31 13:15:56 -04:00
Thiago de Arruda
5b7a9d5780 Add --with-pic flag to msgpack configuration 2014-05-12 17:06:54 -03:00
Thiago de Arruda
4a13143263 Bump LuaJIT to version 2.0.3
This update should fix some build problems as shown in the changelog:
http://luajit.org/changes.html
2014-04-14 17:41:14 -03:00
Thiago de Arruda
78fd9386b6 Fix unit tests
Apparently busted 1.11.0 is broken(https://github.com/Olivine-Labs/busted/issues/236)
in a way that is causing the unit tests to fail. This pins the version to 1.10.0
and also fixes a wrong variable set when msgpack was added as a dependency
2014-04-14 16:46:16 -03:00
Will Tange
ed73da9f0e Bring neovim up to date with recent libuv changes
As of v0.11.23 libuv's uv_timer_cb, uv_async_cb, uv_prepare_cb, uv_check_cb and
uv_idle_cb no longer require a status parameter (this went unused in the first
place).

Bump third-party dependency `libuv` up to 0.11.23 and remove the extra
parameters from the callbacks.
2014-04-14 12:59:55 -03:00
Thiago de Arruda
4fb45579b5 Add lpeg as explicit third-party dependency
It was being installed because of moonscript, but now it's listed as a
dependency explicitly.
2014-04-13 07:32:52 -03:00
Thiago de Arruda
a68ca46382 Configure cmake option to download/install msgpack 2014-04-11 14:07:44 -03:00
Thiago de Arruda
9a277a612f Update to the newest libuv version 2014-03-22 09:06:38 -03:00
John Szakmeister
66394367f7 Workaround the broken progress feedback in some versions of CMake.
Underneath the hood, CMake uses libcurl and libcurl has had a number of
issues regarding progress feedback.  In one sample run against Travis
CI, we ended up with nearly 3,000 lines of progress output for a single
download.

Unfortunately, CMake doesn't have the download and extract steps
separate, so we have some extra work that we have to do.  Much of the
content was taken from the ExternalProject.cmake and it's template for
generating the content of the download and extract CMake files.
2014-03-21 15:22:00 -04:00
John Szakmeister
0b2f6a0cf4 Revamp the build system.
This achieves several goals:

 * Less reliance on scripts so we have better portability to Windows
   (though we still have a ways to go for proper Windows support).
   Luajit, luarocks, moonscript, and busted are all installed via CMake
   now.
 * Trying to make use of pkg-config to get the correct libraries.  The
   latest libuv is still broken in this regard, but we'll at least be in
   a position to use it.
 * Allow the use of Ninja or make.  The former runs faster in many
   environments, and automatically makes use of parallel builds.

This also allows for system installed dependencies--though not through
the Makefile just yet--and adds support for FreeBSD.

This also make us build libuv and luajit as static libraries only, since
we're only concerned about having static libraries for our bundled
dependencies.
2014-03-21 15:22:00 -04:00
Thiago de Arruda
20b799a6f2 Import luajit 2.0.2 source tree
This will be used for testing and in the future for reimplementing vimscript as
a compile-to-lua language.
2014-02-27 09:37:08 -03:00
Rich Wareham
31cb3e09d4 third-party: add note on role of directory
Add a brief README on the purpose of the third-party directory and some
suggestions for how to manage it. The neovim bigwigs may want to
re-draft the README.
2014-02-24 10:31:37 +00:00
Rich Wareham
f78d5aa87b Merge commit 'a302c65dc65896776d6cb9e2c89a6ccc77ada530' as 'third-party/libuv' 2014-02-24 10:01:50 +00:00