This prevents an error from CMake when libintl is not found. It's not a
required library, so we must wrap the inclusion in a conditional. It
was already done for the library.
When building nvim as a shared library for testing, environ is not
exposed. In order to gain access to the environment variables, you must
get a pointer to them from _NSGetEnviron().
It appears that this may affect the FreeBSD platform too.
On a Mac using shared creates libnvim-test.dylib which cannot be found
by the hardcoded .so extension in helpers.moon, causing the unittests to
fail. However, using module creates libnvim-test.so, allowing the tests
to run. There will still be problems running the tests on windows,
because both shared and module create dll file which will not be found
by in helpers.moon.
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.
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.
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)
- 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.
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.
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.