Commit Graph

29632 Commits

Author SHA1 Message Date
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
Scott Nielsen
def17b25fe Remove final build warning
This commit removes a K&R promoted parameter error, the final warning
I have when building.

I realize that this creates only one function that is written in a
different style, but I thought it might be worth it to have a warning
free build.
2014-02-26 06:35:29 -03:00
Scott Nielsen
a74c059a3e Remove implicit declaration of vim_strrchr and vim_strncpy 2014-02-26 06:04:30 -03:00
Ivan Enderlin
322255ede6 Fix Markdown syntax. 2014-02-26 09:55:03 +01:00
Thiago de Arruda
72c6523da5 Merge branch 'bundle-libuv' of github.com:rjw57/neovim into rjw57-bundle-libuv 2014-02-26 05:46:10 -03:00
scott-linder
0ef90c13b7 Removes 'proto' dir
See #137 for the issue.

Every header in the proto directory was:

* Given include guards in the form

    #ifndef NEOVIM_FILENAME_H
    #define NEOVIM_FILENAME_H
        ...
    #endif /* NEOVIM_FILENAM_H */

* Renamed from *.pro -> *.h
* Moved from src/proto/ to src/

This would have caused conficts with some existing headers in src/;
rather than merge these conflicts now (which is a whole other can of
worms involving multiple and conditional inclusion), any header in src/
with a conflicting name was renamed from *.h -> *_defs.h (which may or
may not actually describe its purpose, the change is purely a
namespacing issue).

Once all of these changes were made a script was developed to determine
what #includes needed to be added to each source file to describe its
dependencies and allow it to compile; because the script is so short
and I'll just list it here:

    #! /bin/bash

    cd $(dirname $0)

    # Scrapes `make` output for provided error messages and outputs #includes
    # needed to resolve them.
    #   $1 : part of the clang error message between filename and identifier
    list_missing_includes() {
        for file_missing_pair in $(CC=clang make 2>&1 >/dev/null | sed -n "s/\/\(.*\.[hc]\).*$1.*'\(.*\)'.*/\1:\2/p"); do
            fields=(${file_missing_pair//:/ })
            source_file=${fields[0]}
            missing_func=${fields[1]}
            # Try to find the declaration of the missing function.
            echo $(basename $source_file) \
                \#include \"$(grep -r "\b$missing_func __ARGS" | sed -n "s/.*\/\(.*\)\:.*/\1/p")\"
        # Remove duplicates
        done | sort | uniq
    }

    echo "Finding missing function prototypes..."
    list_missing_includes "implicit declaration of function"
    echo "Finding missing identifier declarations..."
    list_missing_includes "use of undeclared identifier"

Each list of required headers was added by hand in the following format:

    #include "vim.h"
    #include "*_defs.h"
    #include "filename.h"
    /* All other includes in same module here, in alphabetical order. */
    /* All includes from other modules (e.g. "os/*.h") here in alphabetical
     * order. */
2014-02-26 04:17:27 -03:00
Thomas Wienecke
82e0636e78 Delete local function strerror and USE_GETCWD define.
Both are useless after porting mch_dirname to libuv.
2014-02-25 21:24:52 -03:00
Thomas Wienecke
8437a4c972 os_unix: Port mch_FullName and mch_isFullName to libuv.
Basically just delete conditional use of fchdir, since the other called
mch_* functions are already ported to libuv.
2014-02-25 18:59:22 -03:00
jbranchaud
b7d5edd5aa Rebased the following three commits onto one another:
1. Following GitHub convention by adding a CONTRIBUTING.md file.

2. Linking to the wiki page for communicating.

3. Referencing the waffle.io page for Neovim.
2014-02-25 15:59:57 -03:00
Thiago de Arruda
60280ffa10 Modify travis script to remove testing noise 2014-02-25 15:24:29 -03:00
Thomas Wienecke
1e2da25d3d os_unix: Use libuv uv_cwd instead of getcwd/getwd. 2014-02-25 14:26:21 -03:00
Rich Wareham
d342257ae4 add installation as a travis test
Not only should we pass the test suite but we should also install
successfully.
2014-02-25 13:20:14 -03:00
Rich Wareham
0a15feee9d Makefile: allow configuration of CMake flags
Although CMAKE_FLAGS was already a Makefile variable, it didn't have an
empty default value meaning that extending the flags to CMake in a clean
way was difficult. Add a CMAKE_EXTRA_FLAGS variable which is appended to
the default flags.
2014-02-25 13:20:14 -03:00
Rich Wareham
cf3322f8c2 Makefile: add install target
This simply calls the install target in the build directory. IMHO I
think it's looking a bit hacky having a separate Makefile target to do
this rather than using the usual CMake workflow but mine is not to
reason why... [Also, I've copied ``cd build && make ...`` although I'm
sure ``$MAKE -C build/ ...`` is probably the Right Thing (TM).]

Note that you'll have to set CMAKE_INSTALL_PREFIX on the cmake command
line to change where this installs to.
2014-02-25 13:20:14 -03:00
Rich Wareham
4961654a2a CMakeLists: add install target for nvim 2014-02-25 13:20:14 -03:00
HungMingWu
ab94b36f3d add required dependency on Debian/Ubuntu system 2014-02-25 23:24:59 +08:00
Thiago de Arruda
de7d5cec8e Add local.mk include in makefile
This can be used by devs that need their own custom targets
2014-02-25 11:55:36 -03:00
Jim Hester
ba6273bb51 Arch linux link in TOC had the wrong indentation 2014-02-25 11:35:33 -03:00
ash-lshift
fffb8991fd silence tar when getting libuv 2014-02-25 09:11:16 +00:00
Theo Belaire
98f4c55e45 Silenced wget's progress bar
This way it won't show up in travis-ci like:

    0% [                                       ] 0           --.-K/s
    100%[======================================>] 371,453     --.-K/s
2014-02-25 09:06:15 +00:00
Theo Belaire
e7b0aa224a Added curl support and one test
Now it checks for the existance of curl after
failing to find wget.

Note that I ended up removing the quotes around $url
when referencing it in the call to wget, since urls can't have spaces
anyways, and the correct quoting was messy.

To test, I did

    rm -r .deps
    make clean
    make cmake
    make

And it worked.
2014-02-25 09:06:15 +00:00
Thiago de Arruda
d5f74cf8bb Add missing include guard to os module 2014-02-24 22:41:39 -03:00
Thiago de Arruda
c067e5580b Create new OS module
This module will contain all functions that perform OS calls such as IO,
filesystem access, etc.
2014-02-24 22:17:46 -03:00
Rich Wareham
0f438e42a8 move libuv functions to os.c and io.c module
Despite being an io library, the functions currently implemented with
libuv include some non-I/O tasks like getting the total amount of
memory.
2014-02-24 22:00:03 -03:00
Rich Wareham
65e7610655 os_unix: use libuv total memory function 2014-02-24 22:00:03 -03:00
Rich Wareham
68d8ab54a1 os_unix: switch to libuv chdir() function 2014-02-24 22:00:03 -03:00
Rich Wareham
b58f079d8a os_unix: add #include for libuv 2014-02-24 22:00:03 -03:00