Commit Graph

160 Commits

Author SHA1 Message Date
Daniel Hahler
3e6f06f5d2
build: use main cmake modules with third-party (#10330)
This is meant to make it possible to use `find_package(LuaJit)` etc with
the third-party CMake project in general.

Followup to https://github.com/neovim/neovim/pull/10297/files#r296439576.
2019-06-25 17:34:28 +02:00
Daniel Hahler
8d4a655ace
build: CMake: remove LUAROCKS_VERSION (#10317)
This is not necessary and avoids confusion.
2019-06-24 18:04:57 +02:00
Daniel Hahler
f96a2dabac
bundle: upgrade LuaJIT to latest v2.0 commit (#10320)
Changes: 7dbf0b05f1..61464b0a5b
2019-06-24 04:11:04 +02:00
Daniel Hahler
de2e51439e
build: tests: build luv rock also with USE_BUNDLED_LUV=0 (#10307)
Followup to https://github.com/neovim/neovim/pull/10291
Ref: https://github.com/neovim/neovim/issues/10289
2019-06-23 04:17:13 +02:00
George Zhao
c83926cd0a lua: introduce vim.loop (expose libuv event-loop) #10123
Co-authored-by: Andrey Popp <8mayday@gmail.com>

closes #9546
closes #10084
2019-06-10 14:13:18 +02:00
Justin M. Keyes
370ad05229 deps: update to libuv v1.29.1
Fixes #10101
See also 0ac1363599

Notable changes since v1.26.0:

- v1.27.0
  - linux: use statx() to obtain file birth time
- v1.28.0
  - unix,win: add uv_gettimeofday()
  - unix,win: add uv_fs_{open,read,close}dir()
  - unix: fix uv_interface_addresses()
  - fs: remove macOS-specific copyfile(3) fixes neovim/neovim#10101
  - unix: suppress EINTR/EINPROGRESS in uv_fs_close()
- v1.29.0
  - unix: fix race condition in uv_async_send()
  - linux: use O_CLOEXEC instead of EPOLL_CLOEXEC
  - linux: read free/total memory from /proc/meminfo
  - unix: don't assert on UV_PROCESS_WINDOWS_* flags
  - unix,win: add uv_get_constrained_memory()
- v1.29.1
  - linux: fix sscanf() overflows reading from /proc
2019-06-02 15:53:57 +02:00
bryant
6222c74235 Set host C++ compiler CMake var. 2019-04-14 03:01:14 -07:00
Justin M. Keyes
980dd7c011
Merge #9638 from mhinz/update-libtermkey 2019-03-07 00:57:21 +01:00
Marco Hinz
27c3143466
third-party: libtermkey v0.20 -> v0.21.1
$ bzr log --line --forward -r v0.20..

372: Paul "LeoNerd" Evans 2017-03-30 {v0.20} Bumped VERSION to 0.20
373: Paul "LeoNerd" Evans 2017-04-10 [merge] Apply typo fixes from jamessan
374: Paul "LeoNerd" Evans 2017-11-29 Build termkey.pc by invoking a small shell script instead of sed'ing a template
375: Paul "LeoNerd" Evans 2018-03-29 Implement mouse key parsing (thanks Marc André Tanner <mat@brain-dump.org>)
376: Paul "LeoNerd" Evans 2019-01-02 Bugfix for infinite CPU spin on TERM=dumb, which has no terminfo key strings
377: Paul "LeoNerd" Evans 2019-02-14 Fix a couple of valgrind-cleanness errors in DEBUG mode
378: Paul "LeoNerd" Evans 2019-02-14 Fix valgrind uninitialised value warning
379: Paul "LeoNerd" Evans 2019-02-14 Remember to unibi_destroy() even if we never (lazily) loaded terminfo
380: Paul "LeoNerd" Evans 2019-02-14 Bugfix memory leak in TI driver on xterm
381: Paul "LeoNerd" Evans 2019-02-17 driver-ti.c does not need a separate TYPE_MOUSE node type since TERMKEY_TYPE_MOUSE already exists
382: Paul "LeoNerd" Evans 2019-02-17 Perform TI string lookup by iterating all the strings we care about, rather than iterating everything in the DB; that way a hook function can invent new strings
383: Paul "LeoNerd" Evans 2019-02-17 Avoid nonstandard \e sequence in unit tests (via neovim https://github.com/neovim/neovim/blob/master/third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.p...
384: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 lacks <unistd.h> and S_ISFIFO()
385: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 needs help to get ssize_t
386: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <termios.h>
387: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no poll() so cannot provide termkey_waitkey()
388: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <strings.h> and needs help getting strcasecmp()
389: Paul "LeoNerd" Evans 2019-02-17 Write the version into the .pc file at 'make install' time so we don't get@VERSION@ from source
390: Paul "LeoNerd" Evans 2019-02-19 {v0.21} Bumped VERSION to 0.21
391: Paul "LeoNerd" Evans 2019-02-19 Bugfix to missing TERMIOS support
392: Paul "LeoNerd" Evans 2019-02-19 Fix offbyone buffer overflow in sprintf calculation of key names (neovim #9630)
393: Paul "LeoNerd" Evans 2019-02-19 {v0.21.1} Remove a pointless (and warny) cast

Our local patches are now part of the libtermkey repo and get removed.
2019-02-21 22:23:54 +01:00
Justin M. Keyes
6784ed206a win/deps: update to (forked) libuv v1.26.0
ref c59aa771a6
2019-02-21 19:43:10 +01:00
Justin M. Keyes
c59aa771a6 deps: update to libuv v1.26.0
Notable changes since v1.23.2:

- v1.26.0
  - uv_os_uname()
  - unix: don't attempt to invalidate invalid fd
    1ce6393a57
- v1.25.0
  - unix: better handling of unsupported F_FULLFSYNC (fixes #6725)
    6fc797c3fe
  - tty,win: fix Alt+key under WSL
    d2e59bb600
  - fsevents: really watch files with fsevents on macos 10.7+
    2d2af382ce
  - win: fix duplicate tty vt100 fn key
- v1.24.0
  - win,fs: retry if uv_fs_rename fails
    e94c184c7c
    - later [reverted](https://github.com/libuv/libuv/issues/2098) but may be useful reference
  - win: support more fine-grained windows hiding
    4c2dcca27b
2019-02-21 02:00:51 +01:00
erw7
3b56f59532 :terminal : Fix F1-F4 key codes (#9535)
fixes #9529
2019-01-23 19:51:23 +01:00
James McCoy
c2343180d7
Remove support for using jemalloc instead of the system allocator
There was never any investigation done to determine whether using
jemalloc was actually a net benefit for nvim.  It has been a portability
limitation and adds another factor to consider when triaging issues.
2019-01-19 18:09:52 -05:00
Justin M. Keyes
424388c207 win/dist: nvim-qt v0.2.12 2019-01-12 23:47:05 +01:00
Justin M. Keyes
c1015121ec Merge 'upstream/master' into pr-win-erw7 2018-12-27 22:49:44 +01:00
erw7
6060301558 win/TUI: SetConsoleMode() to override libuv #9094
Use uv_set_vterm_state() to override libuv's guess.
See https://github.com/libuv/libuv/pull/1873/ for discussion.

This commit uses a terminal-detection approach based on
GetProcessImageFileNameW(...), which will be reverted in the following
commit. The approach was intended to handle the case of running in
winpty (:terminal), but we will add $NVIM env var for that.

Also add some support for ConEmu, cygwin.
2018-12-27 22:35:59 +01:00
Justin M. Keyes
04c382b2ac
win/dist: nvim-qt v0.2.11 #9382 2018-12-21 09:38:52 +01:00
Justin M. Keyes
fc5dea02b6 deps: update to libuv v1.23.2
Remove libuv-overlapped.patch since UV_OVERLAPPED_PIPE was included in
libuv v1.21.0:
62a0f763a7

Notable changes since v1.12:
- 1.16.0
  - uv_os_getppid(): get parent PID
  - "win,tty: improve SIGWINCH support" (v1.15.0)
- 1.18.0
  - uv_os_getpid()
- 1.19.0
  - Windows: uv_kill() pid 0 now means "current process group", like unix.
    890eedaf59
- 1.20.0
  - unix,spawn: respect user stdio flags for new pipe
    c409b3fcff
2018-11-01 00:10:50 +01:00
dm1try
31f63c8d55 build/macOS: provide SDK path to deps compiler
otherwise, system headers cannot be found on Mojave
they were moved from /usr/include to SDK path
2018-10-17 16:26:28 +03:00
Justin M. Keyes
f95e0ae926
build: adjust some messages (#9087) 2018-10-06 18:45:34 +02:00
Justin M. Keyes
59b2e6d35d
deps: revert to jemalloc 4.5.0 (#9035)
- Since the jemalloc upgrade to 5.1.0, I'm seeing weird behavior such as
  infinite loops inside jemalloc routines.
- VimR maintainer reported major performance regression correlated with
  jemalloc 5.1.0.

ref https://github.com/neovim/neovim/pull/7808

reverts 765515010f
2018-09-25 00:06:52 +02:00
Justin M. Keyes
9de949ea3e deps: update libvterm
Changes: a9c7c6fd20...3f62ac6b7b

- "better handling of double-width unicode characters"
  cfde7f2095
  https://github.com/neovim/neovim/issues/4976#issuecomment-418170022
- "Fix implementation of query on bracketed paste mode"
  005845cd58
- compiler-warning fixes
- FocusIn/FocusOut reporting
  1343c8c0f9

Fixes #4976 (cursor "off-by-one" behavior after  (Wide unicode glyphs)
in :terminal)
2018-09-04 10:41:51 +02:00
Justin M. Keyes
765515010f deps: update to jemalloc 5.1.0
ref https://github.com/neovim/neovim/pull/7808
2018-09-04 10:41:51 +02:00
Justin M. Keyes
fa285bde45
win/dist: nvim-qt v0.2.10 (#8901)
ref https://github.com/equalsraf/neovim-qt/issues/417
2018-08-26 15:29:00 +02:00
Justin M. Keyes
ff19f08477 deps: get gperf-3.1.tar.gz from our mirror 2018-08-12 16:21:21 +02:00
James McCoy
23c9e3ec1e
Raise minimum CMake version to 2.8.12 and remove compat code
2.8.12 is supported by our main CI targets and [repology] confirms that
this is broadly supported.

[repology]: https://repology.org/metapackage/cmake/information
2018-06-18 08:00:30 -04:00
b-r-o-c-k
e17728a632 build/msvc: Add support for building gettext tools with MSVC
Only includes the tools needed for Neovim: xgettext, msgfmt, and
msgmerge.
2018-06-09 20:50:44 -05:00
b-r-o-c-k
d87e5d7016 build/msvc: Add libiconv to bundled dependencies 2018-06-09 20:50:02 -05:00
Justin M. Keyes
7303dd3e54 win/build: download iconv, gettext tools
- We need the gettext tools (msgmerge.exe) because these aren't built
  when we build from source (not trivial).
- We can use the pre-built libiconv-2.dll for DYNAMIC_ICONV_DLL.
2018-06-06 00:58:57 +02:00
b-r-o-c-k
f8eb5c83ed deps: Upgrade LuaRocks and remove patch 2018-06-03 22:31:01 +02:00
Justin M. Keyes
f711b63513
Merge #8434 'win/build: prefer Ninja' 2018-05-27 19:38:17 +02:00
erw7
828c9baad2 Change to enable build by Ninja on Windows 2018-05-21 19:32:19 +09:00
erw7
a93658502c win/build: Fix install (#8420) 2018-05-20 18:50:07 +02:00
Justin M. Keyes
efa10881e5 deps: update to msgpack 3.0.0
Upgrade msgpack so that Nvim 0.3.0 builds on gcc 8.

ref #7506
2018-05-20 08:52:20 +02:00
b-r-o-c-k
57fef8b49b build/windows: Move libtermkey patches into this repository 2018-04-01 20:32:22 -05:00
b-r-o-c-k
be67d926c5 build/msvc: Add libintl to bundled dependencies (#8163) 2018-03-24 17:58:32 +01:00
b-r-o-c-k
feee814b30 build/windows: Add CMakeLists.txt for gperf 2018-03-18 12:51:39 -05:00
b-r-o-c-k
8ba8d7244f build/msvc: Add Git as a requirement for Windows patches 2018-03-06 20:52:27 -06:00
Marco Hinz
3d2f4154b1
third-party: build all deps with debugging symbols (#8042)
When building with CMAKE_BUILD_TYPE=Debug, the dependencies are built like this:

| Dep        | Defaults  | Debug                                       |
|------------|-----------|---------------------------------------------|
| unibilium  | `-O2`     | `make CFLAGS=-O0 DEBUG=1`                   |
| msgpack    | `-g -O3`  | `cmake . -DCMAKE_C_FLAGS_DEBUG="-O0 -ggdb"` |
| libuv      | `-g -O2`  | `./configure CFLAGS="-O0 -ggdb"`            |
| luv        | `-g -O2`  | `cmake . -DCMAKE_C_FLAGS_DEBUG="-O0 -ggdb"` |
| libvterm   | not set   | `make CFLAGS=-O0 DEBUG=1`                   |
| libtermkey | not set   | `make CFLAGS=-O0 DEBUG=1`                   |
| jemalloc   | `-g3 -O3` | `./configure CFLAGS="-O0 -ggdb"`            |
| gperf      | `-g -O2`  | `./configure CXXFLAGS="-O0 -ggdb"`          |
| luajit     | `-g -O2`  | haven't checked yet                         |

This means that only unibilium, libtermkey, and libvterm don't build with
debugging symbols by default.

Build them with debugging symbols and optimisations that don't hinder
debugging: -Og -g
2018-03-01 10:23:21 +01:00
Marco Hinz
2f018b1833
third-party: upgrade libunibilium from 1.2.1 to 2.0.0 (#8016)
❯ git log --oneline v2.0.0...v1.2.1
e3b16d6 (HEAD -> master, tag: v2.0.0, origin/master, origin/HEAD) version 2.0.0
6f0037b (origin/wide-int) update README with build instructions / prerequisites
f40c97a explicitly mention the new "wide integer" format in the man pages
37aa305 use ncurses*-config to get TERMINFO_DIRS if possible
2461ee1 use perl instead of sed hackery to create unibilium.pc
23e9dea don't cast between pointer types of different alignments
1b5b8fd add basic test for wide format
cfe4216 add xterm-256color; regenerate static tests from ncurses 6.1
6e55e75 escape backslashes properly
42f3cdd add 32 bit number support (wide terminfo format)
73385ba unibi-dump: accept a filename as argument
ec9ef0a don't pass NULL to memcpy
b42315b (origin/typecheck) make unibi_var_t slightly more type-safe
2018-02-17 00:35:39 +01:00
Justin M. Keyes
a18db72a36 third-party: revert to jemalloc 4.5.0
ref #7746
closes #7808
jemalloc-5.0.1 broke the Ubuntu Unstable PPA builds on arm64:
https://launchpadlibrarian.net/351647411/buildlog_ubuntu-artful-arm64.neovim_0.2.0ubuntu1+git201712291800+3837+26~ubuntu17.10.1_BUILDING.txt.gz).

    make[5]: Entering directory '/<<BUILDDIR>>/neovim-0.2.0ubuntu1+git201712291800+3837+26~ubuntu17.10.1/build'
    Segmentation fault (core dumped)
    runtime/CMakeFiles/vimball-tags.dir/build.make:57: recipe for target 'runtime/CMakeFiles/vimball-tags' failed
    make[5]: *** [runtime/CMakeFiles/vimball-tags] Error 139
    make[5]: Leaving directory '/<<BUILDDIR>>/neovim-0.2.0ubuntu1+git201712291800+3837+26~ubuntu17.10.1/build'
    CMakeFiles/Makefile2:7467: recipe for target 'runtime/CMakeFiles/vimball-tags.dir/all' failed

jemalloc bug:
https://github.com/jemalloc/jemalloc/issues/979
2018-01-06 16:22:38 +01:00
Issam Maghni
49f4358b0a third-party: update deps #7746
- Latest commit from LuaJIT 2.0.5
2017-12-29 17:38:37 +01:00
Issam Maghni
c01a84e344 Updating to latest UNIBILIUM (#7745)
Update to unibilium 1.2.1
2017-12-18 18:53:53 -05:00
Justin M. Keyes
54b79f19d7
win/package: nvim-qt v0.2.8 (#7464) 2017-10-31 12:53:07 +01:00
James McCoy
ad34f15ef2 third-party: Bump win32yank to v0.0.4 and install arch-specific binary
Closes #6933
2017-07-14 16:11:52 -04:00
Justin M. Keyes
2555bd3ab0 third-party: Bump libtermkey to 0.20 2017-07-08 16:39:46 +02:00
equal-l2
e8aa58934e Update deps (#6885)
* Update libuv to 1.12.0
* Update msgpack-c to 2.13
* Update LuaJIT to 2.0.5 (82151a45 for a Windows build fix)
* Update jemalloc to 4.5.0
* Update luv to 1.9.1-1
* Update gperf to 3.1
2017-06-17 03:17:34 +00:00
Jan Viljanen
c1026ff4b3 build: LuaRocks 2.4.2 #6059
LuaRocks 2.3 and onwards changed the /P option to no longer include the
version number which made newer releases of LuaRocks fail when compiling
on Windows.
2017-05-31 23:13:47 +02:00
Rui Abreu Ferreira
685ca180f7 win: Terminal UI #6315
For CI builds unibilium is provided through msys2 packages, and
libtermkey is built from source in third-party from equalsraf/libtermkey.

In Windows we cannot read terminal input from the stdin file descriptor,
instead use libuv's uv_tty API. It should handle key input and encoding.

The UI suspend is not implemented for Windows, because the
SIGSTP/SIGCONT do not exist in windows. Currently this is a NOOP.

Closes #3902
Closes #6640
2017-05-03 12:48:24 +02:00
Justin M. Keyes
9b1cad7cb6 win/package: nvim-qt v0.2.7 (fixes cursor-shaping) (#6641) 2017-05-02 12:45:42 +02:00