Commit Graph

29508 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