Commit Graph

28908 Commits

Author SHA1 Message Date
Thiago de Arruda
d04ca90f5c Add basic infrastructure for unit testing
Tests will be written using the [moonscript](http://moonscript.org/) language,
a lua 'dialect' that is whitespace-significant and has a syntax similar to
coffeescript. The test framework used is [busted](http://olivinelabs.com/busted/),
a bdd framework for lua/moonscript.

Luajit has a nice ffi module, which lets lua programs link shared libraries and
call it's functions without writing any C code.

To take advantage of this fact for testing C functions, a new target was added
to CMakeLists.txt, which compiles neovim as a shared library that is loaded by
the process running the tests.

This commit adds necessary code for downloading and installing a lua package
manager(luarocks) locally. It wasn't added as a subtree because there are quite
a few blobs in its source tree.
2014-02-27 17:55:10 -03:00
Alexis Hildebrandt
05b9e11584 CMakeLists: Improve handling of libintl
by refactoring it into a separate CMake module
2014-02-27 19:11:48 +00:00
Alexis Hildebrandt
fba074d994 CMakeLists: Use nvim target name 2014-02-27 19:11:48 +00:00
John Szakmeister
95db76e280 Improve libintl detection and linking.
This makes it so that a self-installed libintl is now detected and used.
It also attempts to locate a homebrew version of the library, if that
exists.
2014-02-27 19:11:48 +00:00
Alexis Hildebrandt
e728ce95ef Use GNU gettext from homebrew on Mac if available 2014-02-27 19:11:48 +00:00
Rich Wareham
f26b0aa88c Merge pull request #187 from rjw57/issue-179
Use CMAKE_C_FLAGS variable to set compiler flags.
2014-02-27 13:00:25 +00: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
4d4a706352 README.md: fix anchor tags for CentOS/RHEL section
MAke the use of anchor tags consistent for the change introduced in
5cd3cbe.
2014-02-27 09:35:32 -03:00
Rich Wareham
de77dddc0b README: add note on RHEL/CentOS 6
Add note on autoconf >2.69 being required for compilation under
RHEL/CentOS.

Closes #178.
2014-02-27 09:35:32 -03:00
Rich Wareham
1f827beff0 Use CMAKE_C_FLAGS variable to set compiler flags.
If the compiler is some GNU-alike variant, set the compiler flags to use
the gnu99 dialect of C and enable all warnings.

Non-GNU compilers may have to have their own magic added to set dialect
and enable warnings.

Closes #179.
2014-02-27 12:29:44 +00:00
Rich Wareham
29f4e8ebc4 Merge pull request #183 from rjw57/issue-178
README: add note on RHEL/CentOS 6
2014-02-27 10:28:06 +00:00
Rich Wareham
97e635e8b6 Merge pull request #184 from equalsraf/tb-curses
Use FindCurses.cmake as fallback to find curses libraries
2014-02-27 10:27:49 +00:00
Rich Wareham
2bb9487b68 README.md: fix anchor tags for CentOS/RHEL section
MAke the use of anchor tags consistent for the change introduced in
5cd3cbe.
2014-02-27 09:58:52 +00:00
Rich Wareham
5cd3cbe517 README: add note on RHEL/CentOS 6
Add note on autoconf >2.69 being required for compilation under
RHEL/CentOS.

Closes #178.
2014-02-27 09:55:23 +00:00
Rich Wareham
653c1eb0d2 Merge pull request #180 from pmandera/readme-links
Fixed headers and links to dependencies in README.md
2014-02-27 09:55:01 +00:00
Paweł Mandera
40faad4be4 Anchors and reorder in dependency lists of README.md
Dependency headers for OSes needed anchors to work with links from
content list. Reordered OSes in content list to match headers
(all Linuxes first, Mac OS X last)
2014-02-27 10:25:07 +01:00
Rui Abreu Ferreira
82b724af4b Use FindCurses to find curses libraries
- Some systems have the FindCurses.cmake module to find
  the curses/ncurses libraries using find_package(). And
  in some CheckLibraries is not very reliable, so as
  fallback FindCurses is now used if no other option
  works.
2014-02-27 09:23:15 +00:00
Paweł Mandera
740296415d Fixed header levels in markdown
Fixed header markup in README.md. Previously, header markup did not match levels in the content list.
2014-02-27 10:16:33 +01:00
Thiago de Arruda
2c02f00b7c Enable stderr for test in travis
This is necessary to keep the build from 'erroring' since running the tests
with valgrind will take a long time
2014-02-26 22:42:10 -03:00
Thiago de Arruda
a2ce1df772 Modify travis configuration to install valgrind
This should fix previous build failures
2014-02-26 22:23:51 -03:00
Thiago de Arruda
a81d25e6e4 Remove -e option from travis shell script 2014-02-26 21:44:04 -03:00
Thiago de Arruda
c492c5e36d Fix travis script
It was broke because the ls command failed when no valgrind.* file were found
2014-02-26 21:38:21 -03:00
Thiago de Arruda
a97c1754ad Add test reporting to travis script 2014-02-26 21:33:39 -03:00
Thiago de Arruda
42a9654fae Enable valgrind when testing on travis
This will slow down testing but will detect pull requests that introduce memory
leaks.
2014-02-26 20:19:58 -03:00
Göran Gustafsson
d2d0cc95a1 Markdown fix + MacPorts URL 2014-02-26 22:35:01 +00:00
Alexis Hildebrandt
f4fe188b16 README: Add support for custom brew installations 2014-02-26 22:29:41 +00:00
ashleyh
b43224e06c Merge branch 'pr36'
Conflicts:
	README.md
2014-02-26 22:15:36 +00:00
ashleyh
00ba300d39 Merge branch 'master' into pr36
Conflicts:
	README.md
2014-02-26 22:10:25 +00:00
Thiago de Arruda
baaf24acea Add valgrind suppression file 2014-02-26 16:21:20 -03:00
Thiago de Arruda
c002ffe2f3 Temporarily remove valgrind check in travis build 2014-02-26 15:57:27 -03:00
Thiago de Arruda
cb9a368445 Add configuration to help debug memory leaks 2014-02-26 15:48:26 -03:00
Rich Wareham
8b94f34ced Merge pull request #172 from rjw57/issue-171
use shared libuv library if not using the bundled version
2014-02-26 17:49:58 +00:00
Rich Wareham
8975e143d4 Makefile: use static linkage with bundled libuv
Use the new LibUV_USE_STATIC configuration flag to use static linkage
when using the bundled libuv.
2014-02-26 17:37:22 +00:00
Rich Wareham
970be6d977 CMake: add LibUV_USE_STATIC configuration variable
If LibUV_USE_STATIC is set then the static libuv library will be
preferred to the shared library. This is useful when building with the
bundled libuv but is less useful when building with a system libuv.
2014-02-26 17:36:06 +00:00
Rich Wareham
badf94eb33 Merge pull request #134 from HungMingWu/master
add required dependency on Debian/Ubuntu system
2014-02-26 17:23:34 +00:00
Rich Wareham
eb48932677 Merge pull request #123 from jbranchaud/adding-contributing-doc
Following GitHub convention by adding a CONTRIBUTING.md file.
2014-02-26 17:22:46 +00:00
Rich Wareham
e51427b9a8 Merge pull request #157 from Hywan/readme
Fix Markdown syntax
2014-02-26 16:54:55 +00:00
Rich Wareham
11aac0db88 Merge pull request #166 from rkmathi/issue-165
#165 fix README.md for Building OS X
2014-02-26 16:52:48 +00:00
Ryuichi KAWAMATA (@rkmathi)
15bf8d0478 #165 fix README.md for Building OS X 2014-02-26 21:05:56 +09:00
Rich Wareham
314791dca7 Merge pull request #163 from rjw57/issue-162
Makefile: use "make -C build" idiom
2014-02-26 10:38:38 +00:00
Rich Wareham
d12322c5b7 Makefile: use "make -C build" idiom
Change an explicit ``cd build && make`` into the more usual
``${MAKE} -C build`` style of invoking make in a subdirectory. This
should mean that ``make -jN`` from the top-level Makefile should work.

Closes #162.
2014-02-26 10:30:05 +00:00
Rich Wareham
de4fbf92d0 link to rt if it provides clock_gettime
As noted in #128, if clock_gettime is provided by librt then it does not
end up being linked into the static libuv.a binary. This might be
considered a bug in libuv but we can address it here.

Detect if librt provides the clock_gettime symbol and, if so, append it
to the list of libraries linked into nvim. On non-librt systems the
behaviour should be as before.
2014-02-26 07:10:21 -03:00
Rich Wareham
c3ff8cbb7c prefer linking to static libuv
Explicitly try to find the static libuv library first.

This might be considered a hack and if it weren't a single-use module it
might be preferable to control static versus shared preferences with a
configuration variable.
2014-02-26 07:09:11 -03:00
Rich Wareham
e94f933f39 CMakeLists: remove hardcoded .deps directory
We use the standard CMAKE_PREFIX_PATH variable to pass the location of
.deps as a search location on the command line. There is now no need for
explicitly hard-coding it.
2014-02-26 07:09:11 -03:00
Rich Wareham
2a6780431e make use of libuv when found by CMake 2014-02-26 07:09:11 -03:00
Rich Wareham
598f9fba86 Makefile: fetch deps before running CMake
CMake now required libuv so fetch it first.
2014-02-26 07:08:44 -03:00
Rich Wareham
00ca93fb50 automatically discover libuv in CMake
Idiomatically discover if libuv is installed.
2014-02-26 07:08:44 -03:00
Rich Wareham
8aa1d8c71a Makefile: add .deps/ to CMake prefix path
The CMake prefix path is the set of directories CMake searches for
libraries, header files, etc. Use the .deps directory we create when
building libuv as one of those locations.
2014-02-26 07:08:44 -03:00
Rich Wareham
e10290c3ea add LibFindMacros CMake macro library 2014-02-26 07:08:26 -03:00
Rich Wareham
809885ea7d add custom CMake module path 2014-02-26 07:08:26 -03:00