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
- CMake, https://cmake.org
- Pybind11, RosettaCommons fork: https://github.com/RosettaCommons/pybind11
Building¶
The steps below is encoded in binder/install.py file so for default install you can just run this script directly
- 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