You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
capnproto/doc/install.md

149 lines
5.7 KiB
Markdown

---
layout: page
title: Installation
---
# Installation: Tools and C++ Runtime
<div style="float: right"><a class="groups_link" style="color: #fff"
href="https://groups.google.com/group/capnproto-announce">Get Notified of Updates</a></div>
The Cap'n Proto tools, including the compiler (which takes `.capnp` files and generates source code
for them), are written in C++. Therefore, you must install the C++ package even if your actual
development language is something else.
This package is licensed under the [MIT License](http://opensource.org/licenses/MIT).
## Prerequisites
### Supported Compilers
Cap'n Proto makes extensive use of C++14 language features. As a result, it requires a relatively
new version of a well-supported compiler. The minimum versions are:
* GCC 5.0
* Clang 5.0
* Visual C++ 2017
If your system's default compiler is older that the above, you will need to install a newer
compiler and set the `CXX` environment variable before trying to build Cap'n Proto. For example,
after installing GCC 5, you could set `CXX=g++-5` to use this compiler.
### Supported Operating Systems
In theory, Cap'n Proto should work on any POSIX platform supporting one of the above compilers,
as well as on Windows. We test every Cap'n Proto release on the following platforms:
* Android
* Linux
* Mac OS X
* Windows - Cygwin
* Windows - MinGW-w64
* Windows - Visual C++
**Windows users:** Cap'n Proto requires Visual Studio 2017 or newer. All features
of Cap'n Proto -- including serialization, dynamic API, RPC, and schema parser -- are now supported.
**Mac OS X users:** You should use the latest Xcode with the Xcode command-line
tools (Xcode menu > Preferences > Downloads). Alternatively, the command-line tools
package from [Apple](https://developer.apple.com/downloads/) or compiler builds from
[Macports](http://www.macports.org/), [Fink](http://www.finkproject.org/), or
[Homebrew](http://brew.sh/) are reported to work.
## Installation: Unix
**From Release Tarball**
You may download and install the release version of Cap'n Proto like so:
<pre><code>curl -O <a href="https://capnproto.org/capnproto-c++-0.0.0.tar.gz">https://capnproto.org/capnproto-c++-0.0.0.tar.gz</a>
tar zxf capnproto-c++-0.0.0.tar.gz
cd capnproto-c++-0.0.0
./configure
make -j6 check
sudo make install</code></pre>
This will install `capnp`, the Cap'n Proto command-line tool. It will also install `libcapnp`,
`libcapnpc`, and `libkj` in `/usr/local/lib` and headers in `/usr/local/include/capnp` and
`/usr/local/include/kj`.
**From Package Managers**
Some package managers include Cap'n Proto packages.
Note: These packages are not maintained by us and are sometimes not up to date with the latest Cap'n Proto release.
* Debian / Ubuntu: `apt-get install capnproto`
* Arch Linux: `sudo pacman -S capnproto`
* Homebrew (OSX): `brew install capnp`
**From Git**
If you download directly from Git, you will need to have the GNU autotools --
[autoconf](http://www.gnu.org/software/autoconf/),
[automake](http://www.gnu.org/software/automake/), and
[libtool](http://www.gnu.org/software/libtool/) -- installed.
git clone https://github.com/sandstorm-io/capnproto.git
cd capnproto/c++
autoreconf -i
./configure
make -j6 check
sudo make install
## Installation: Windows
**From Release Zip**
1. Download Cap'n Proto Win32 build:
<pre><a href="https://capnproto.org/capnproto-c++-win32-0.0.0.zip">https://capnproto.org/capnproto-c++-win32-0.0.0.zip</a></pre>
2. Find `capnp.exe`, `capnpc-c++.exe`, and `capnpc-capnp.exe` under `capnproto-tools-win32-0.0.0` in
the zip and copy them somewhere.
3. If your `.capnp` files will import any of the `.capnp` files provided by the core project, or
if you use the `stream` keyword (which implicitly imports `capnp/stream.capnp`), then you need
to put those files somewhere where the capnp compiler can find them. To do this, copy the
directory `capnproto-c++-0.0.0/src` to the location of your choice, then make sure to pass the
flag `-I <that location>` to `capnp` when you run it.
If you don't care about C++ support, you can stop here. The compiler exe can be used with plugins
provided by projects implementing Cap'n Proto in other languages.
If you want to use Cap'n Proto in C++ with Visual Studio, do the following:
1. Make sure that you are using Visual Studio 2017 or newer, with all updates installed. Cap'n
Proto uses C++14 language features that did not work in previous versions of Visual Studio,
and the updates include many bug fixes that Cap'n Proto requires.
2. Install [CMake](http://www.cmake.org/) version 3.1 or later.
3. Use CMake to generate Visual Studio project files under `capnproto-c++-0.0.0` in the zip file.
You can use the CMake UI for this or run this shell command:
cmake -G "Visual Studio 15 2017"
3. Open the "Cap'n Proto" solution in Visual Studio.
4. Adjust the project build options (e.g., choice of C++ runtime library, enable/disable exceptions
and RTTI) to match the options of the project in which you plan to use Cap'n Proto.
5. Build the solution (`ALL_BUILD`).
6. Build the `INSTALL` project to copy the compiled libraries, tools, and header files into
`CMAKE_INSTALL_PREFIX`.
Alternatively, find the compiled `.lib` files in the build directory under
`src/{capnp,kj}/{Debug,Release}` and place them somewhere where your project can link against them.
Also add the `src` directory to your search path for `#include`s, or copy all the headers to your
project's include directory.
Cap'n Proto can also be built with MinGW or Cygwin, using the Unix/autotools build instructions.
**From Git**
The C++ sources are located under `c++` directory in the git repository. The build instructions are
otherwise the same as for the release zip.