annotate src/capnproto-0.6.0/doc/install.md @ 148:b4bfdf10c4b3

Update Win64 capnp builds to v0.6
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 22 May 2017 18:56:49 +0100
parents 45360b968bf4
children
rev   line source
cannam@147 1 ---
cannam@147 2 layout: page
cannam@147 3 title: Installation
cannam@147 4 ---
cannam@147 5
cannam@147 6 # Installation: Tools and C++ Runtime
cannam@147 7
cannam@147 8 The Cap'n Proto tools, including the compiler (which takes `.capnp` files and generates source code
cannam@147 9 for them), are written in C++. Therefore, you must install the C++ package even if your actual
cannam@147 10 development language is something else.
cannam@147 11
cannam@147 12 This package is licensed under the [MIT License](http://opensource.org/licenses/MIT).
cannam@147 13
cannam@147 14 ## Caveats
cannam@147 15
cannam@147 16 <p style="font-size: 125%; font-weight: bold;">Cap'n Proto is in BETA</p>
cannam@147 17
cannam@147 18 <div style="float: right"><a class="groups_link" style="color: #fff"
cannam@147 19 href="https://groups.google.com/group/capnproto-announce">Sign Up for Updates</a></div>
cannam@147 20
cannam@147 21 As of this writing, Cap'n Proto is in beta. The serialization layer is close to feature-complete
cannam@147 22 and we don't anticipate any further changes to the wire format. That said, if you want to use it,
cannam@147 23 you should keep in mind some caveats:
cannam@147 24
cannam@147 25 * **Security:** Cap'n Proto has not yet had a security review. Although Kenton has a background
cannam@147 26 in security and is not aware of any vulnerabilities in the current code, it's likely that there
cannam@147 27 are a few, and [some have been found](https://github.com/sandstorm-io/capnproto/tree/master/security-advisories)
cannam@147 28 in the past. For now, do not accept Cap'n Proto messages from parties you do not trust.
cannam@147 29 * **API Stability:** The Cap'n Proto programming interface may still change in ways that break
cannam@147 30 existing code. Such changes are likely to be minor and should not affect the wire format.
cannam@147 31 * **Performance:** While Cap'n Proto is inherently fast by design, the implementation has not yet
cannam@147 32 undergone serious profiling and optimization. Currently it only beats Protobufs in realistic-ish
cannam@147 33 end-to-end benchmarks by around 2x-5x. We can do better.
cannam@147 34 * **RPC:** The RPC implementation particularly experimental, though it is used heavily by
cannam@147 35 [Sandstorm.io](https://sandstorm.io).
cannam@147 36
cannam@147 37 If you'd like to hack on Cap'n Proto, you should join the
cannam@147 38 [discussion group](https://groups.google.com/group/capnproto)!
cannam@147 39
cannam@147 40 If you'd just like to receive updates as things progress, add yourself to the
cannam@147 41 [announce list](https://groups.google.com/group/capnproto-announce).
cannam@147 42
cannam@147 43 ## Prerequisites
cannam@147 44
cannam@147 45 ### Supported Compilers
cannam@147 46
cannam@147 47 Cap'n Proto makes extensive use of C++11 language features. As a result, it requires a relatively
cannam@147 48 new version of a well-supported compiler. The minimum versions are:
cannam@147 49
cannam@147 50 * GCC 4.8
cannam@147 51 * Clang 3.3
cannam@147 52 * Visual C++ 2015
cannam@147 53
cannam@147 54 If your system's default compiler is older that the above, you will need to install a newer
cannam@147 55 compiler and set the `CXX` environment variable before trying to build Cap'n Proto. For example,
cannam@147 56 after installing GCC 4.8, you could set `CXX=g++-4.8` to use this compiler.
cannam@147 57
cannam@147 58 ### Supported Operating Systems
cannam@147 59
cannam@147 60 In theory, Cap'n Proto should work on any POSIX platform supporting one of the above compilers,
cannam@147 61 as well as on Windows. We test every Cap'n Proto release on the following platforms:
cannam@147 62
cannam@147 63 * Android
cannam@147 64 * Linux
cannam@147 65 * Mac OS X
cannam@147 66 * Windows - Cygwin
cannam@147 67 * Windows - MinGW-w64
cannam@147 68 * Windows - Visual C++
cannam@147 69
cannam@147 70 **Windows users:** Cap'n Proto requires Visual Studio 2015 Update 3 or newer. All runtime features
cannam@147 71 of Cap'n Proto -- including serialization and RPC -- are now supported. (It is still not possible to
cannam@147 72 compile the code generator tool, capnp.exe, using Visual Studio; however, a precompiled copy built
cannam@147 73 with MinGW is provided in the release zip for your convenience.)
cannam@147 74
cannam@147 75 **Mac OS X users:** You must use at least Xcode 5 with the Xcode command-line
cannam@147 76 tools (Xcode menu > Preferences > Downloads). Alternatively, the command-line tools
cannam@147 77 package from [Apple](https://developer.apple.com/downloads/) or compiler builds from
cannam@147 78 [Macports](http://www.macports.org/), [Fink](http://www.finkproject.org/), or
cannam@147 79 [Homebrew](http://brew.sh/) are reported to work.
cannam@147 80
cannam@147 81 ## Installation: Unix
cannam@147 82
cannam@147 83 **From Release Tarball**
cannam@147 84
cannam@147 85 You may download and install the release version of Cap'n Proto like so:
cannam@147 86
cannam@147 87 <pre><code>curl -O <a href="https://capnproto.org/capnproto-c++-0.6.0.tar.gz">https://capnproto.org/capnproto-c++-0.6.0.tar.gz</a>
cannam@147 88 tar zxf capnproto-c++-0.6.0.tar.gz
cannam@147 89 cd capnproto-c++-0.6.0
cannam@147 90 ./configure
cannam@147 91 make -j6 check
cannam@147 92 sudo make install</code></pre>
cannam@147 93
cannam@147 94 This will install `capnp`, the Cap'n Proto command-line tool. It will also install `libcapnp`,
cannam@147 95 `libcapnpc`, and `libkj` in `/usr/local/lib` and headers in `/usr/local/include/capnp` and
cannam@147 96 `/usr/local/include/kj`.
cannam@147 97
cannam@147 98 **From Package Managers**
cannam@147 99
cannam@147 100 Some package managers include Cap'n Proto packages.
cannam@147 101
cannam@147 102 Note: These packages are not maintained by us and are sometimes not up to date with the latest Cap'n Proto release.
cannam@147 103
cannam@147 104 * Debian / Ubuntu: `apt-get install capnproto`
cannam@147 105 * Homebrew (OSX): `brew install capnp`
cannam@147 106
cannam@147 107 **From Git**
cannam@147 108
cannam@147 109 If you download directly from Git, you will need to have the GNU autotools --
cannam@147 110 [autoconf](http://www.gnu.org/software/autoconf/),
cannam@147 111 [automake](http://www.gnu.org/software/automake/), and
cannam@147 112 [libtool](http://www.gnu.org/software/libtool/) -- installed.
cannam@147 113
cannam@147 114 git clone https://github.com/sandstorm-io/capnproto.git
cannam@147 115 cd capnproto/c++
cannam@147 116 autoreconf -i
cannam@147 117 ./configure
cannam@147 118 make -j6 check
cannam@147 119 sudo make install
cannam@147 120
cannam@147 121 ## Installation: Windows
cannam@147 122
cannam@147 123 **From Release Zip**
cannam@147 124
cannam@147 125 1. Download Cap'n Proto Win32 build:
cannam@147 126
cannam@147 127 <pre><a href="https://capnproto.org/capnproto-c++-win32-0.6.0.zip">https://capnproto.org/capnproto-c++-win32-0.6.0.zip</a></pre>
cannam@147 128
cannam@147 129 2. Find `capnp.exe`, `capnpc-c++.exe`, and `capnpc-capnp.exe` under `capnproto-tools-win32-0.6.0` in
cannam@147 130 the zip and copy them somewhere.
cannam@147 131
cannam@147 132 If you don't care about C++ support, you can stop here. The compiler exe can be used with plugins
cannam@147 133 provided by projects implementing Cap'n Proto in other languages.
cannam@147 134
cannam@147 135 If you want to use Cap'n Proto in C++ with Visual Studio, do the following:
cannam@147 136
cannam@147 137 1. Make sure that you are using Visual Studio 2015 or newer, with all updates installed. Cap'n
cannam@147 138 Proto uses C++11 language features that did not work in previous versions of Visual Studio,
cannam@147 139 and the updates include many bug fixes that Cap'n Proto requires.
cannam@147 140
cannam@147 141 2. Install [CMake](http://www.cmake.org/) version 3.1 or later.
cannam@147 142
cannam@147 143 3. Use CMake to generate Visual Studio project files under `capnproto-c++-0.6.0` in the zip file.
cannam@147 144 You can use the CMake UI for this or run this shell command:
cannam@147 145
cannam@147 146 cmake -G "Visual Studio 14 2015"
cannam@147 147
cannam@147 148 (For VS2017, you can use "Visual Studio 15 2017" as the generator name.)
cannam@147 149
cannam@147 150 3. Open the "Cap'n Proto" solution in Visual Studio.
cannam@147 151
cannam@147 152 4. Adjust the project build options (e.g., choice of C++ runtime library, enable/disable exceptions
cannam@147 153 and RTTI) to match the options of the project in which you plan to use Cap'n Proto.
cannam@147 154
cannam@147 155 5. Build the solution (`ALL_BUILD`).
cannam@147 156
cannam@147 157 6. Build the `INSTALL` project to copy the compiled libraries, tools, and header files into
cannam@147 158 `CMAKE_INSTALL_PREFIX`.
cannam@147 159
cannam@147 160 Alternatively, find the compiled `.lib` files in the build directory under
cannam@147 161 `src/{capnp,kj}/{Debug,Release}` and place them somewhere where your project can link against them.
cannam@147 162 Also add the `src` directory to your search path for `#include`s, or copy all the headers to your
cannam@147 163 project's include directory.
cannam@147 164
cannam@147 165 Cap'n Proto can also be built with MinGW or Cygwin, using the Unix/autotools build instructions.
cannam@147 166
cannam@147 167 **From Git**
cannam@147 168
cannam@147 169 The C++ sources are located under `c++` directory in the git repository. The build instructions are
cannam@147 170 otherwise the same as for the release zip.
cannam@147 171