forked from mirror/capnproto
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.
149 lines
5.7 KiB
Markdown
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.
|
|
|