Installation

Binder is written in C++11 and need to be builded before it could be used. This page describe steps for build process.

Requirements

The following tools need to be present in order to build and use Binder

Building

The steps below is encoded in binder/install.py file so for default install you can just run this script directly

  1. To build Binder exectute the following command sequence in shell (replace $HOME/prefix and $HOME/binder with your paths):
# Create build dir
mkdir $HOME/prefix && cd $HOME/prefix

# Clone  LLVM
git clone http://llvm.org/git/llvm.git llvm && cd llvm
git reset --hard release_38

# Clone Clang
cd $HOME/prefix/llvm/tools
git clone http://llvm.org/git/clang.git clang
cd clang && git reset --hard release_38


# Clone Clang extra tools
cd $HOME/prefix/llvm/tools/clang/tools
git clone http://llvm.org/git/clang-tools-extra.git extra

# Create symlink pointing to binder/src dir
ln -s $HOME/binder/src $HOME/prefix/llvm/tools/clang/tools/extra/binder


# Create ``llvm/tools/clang/tools/extra/CMakeLists.txt`` file with content: ``add_subdirectory(binder)``
echo 'add_subdirectory(binder)' > $HOME/prefix/llvm/tools/clang/tools/extra/CMakeLists.txt

# Build Binder
mkdir $HOME/prefix/build && cd $HOME/prefix/build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_EH=1 -DLLVM_ENABLE_RTTI=ON .. && ninja

# At this point, if all above steps is succeseful, binder should be at
# $HOME/prefix/build/bin/binder