2016-06-04 00:43:39 +03:00
nvox
====
2016-06-06 22:54:09 +03:00
< strong > N< / strong > eo< strong > V< / strong > im for < strong > O< / strong > S < strong > X< / strong >
2016-06-04 00:43:39 +03:00
## About
nvox is a *toy* project, meaning e.g. no tests whatsoever, for me to:
- play around with [NeoVim ](https://github.com/neovim ),
- play around with the `XPC` -architecture and to find out whether this is a viable choice for an OSX-NeoVim-GUI-app and
2016-06-04 20:59:27 +03:00
- play around with Swift (and [RxSwift ](https://github.com/ReactiveX/RxSwift )).
2016-06-04 00:43:39 +03:00
It could very well be that nothing useful comes out of it.
## How to Build
2016-06-06 19:25:03 +03:00
First install `homebrew` , then:
2016-06-04 00:43:39 +03:00
```bash
2016-06-06 22:54:09 +03:00
xcode-select --install # install the Xcode command line tools
brew install carthage # install Carthage for dependency management
brew install libtool automake cmake pkg-config gettext ninja # install libs and tools for neovim
2016-06-06 19:25:03 +03:00
2016-06-06 22:54:09 +03:00
carthage update --platform osx
2016-06-06 19:25:03 +03:00
2016-06-04 00:43:39 +03:00
git submodule update --init
cd neovim
ln -s ../NeoVimXpc/local.mk .
make libnvim # optional, the nvox target in Xcode also does this
```
2016-06-06 19:25:03 +03:00
Run the `nvox` -target in Xcode.
2016-06-04 00:43:39 +03:00
## Project Setup
2016-06-07 00:29:36 +03:00
### Artifacts Hierarchy
```
nvox.app
+-- SwiftNeoVim.framework
+-- NeoVimView
+-- NeoVimXpc.xpc
+-- libnvim
+-- other libs for NeoVim
+-- runtime files for NeoVim
```
### Libraries for NeoVim
2016-06-04 00:43:39 +03:00
* The library `libiconv` is linked by the linker flag `-liconv` . The version bundled with OSX will be linked.
* The library `libintl` should be installed by `homebrew` and is statically linked by explicitly using the linker flag `/usr/local/opt/gettext/lib/libintl.a` .
* Other libraries used by NeoVim, which are automatically built by building `libnvim` , are linked by adding them to the Xcode project.