libfeather is mainly designed for linking with some other application, like a
Python or R extension. To build the dependencies and install a release build,
run (see further below for Windows instructions):
./thirdparty/download_thirdparty.sh
./thirdparty/build_thirdparty.sh
# Sets the thirdparty build environment variables
source develop_env.sh
mkdir release-build
cd release-build
export FEATHER_HOME=$HOME/local
cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=$FEATHER_HOME ..
make -j4
make installNow, make sure that $FEATHER_HOME is used for building with your thirdparty
application.
The core libfeather library is implemented in C++11.
We use Google C++ coding style with a few changes:
- Long lines are permitted up to 90 characters
- We do not encourage anonymous namespaces
We do not use C++ exceptions as handling them in Python extensions adds a lot
of library complexity. Instead return a Status object. This also makes it
simpler to make libfeather accessible to other C users.
Style is checked with cpplint, after generating the make files you can
veryify the style with
make lint
Explicit memory management and non-trivial destructors are to be avoided. Use smart pointers to manage the lifetime of objects and memory, and generally use RAII whenever possible.
thirdparty\win_download_and_build.cmd
# Sets the thirdparty build environment variables
win_develop_env.cmd
mkdir release-build
cd release-build
cmake -G "Visual Studio 14 Win64" -DCMAKE_BUILD_TYPE=release ..
# `feather.sln` can be opened and built in Visual Studio or built from the command line with
cmake --build . --config Release