build on MacOS¶
Since we’ve switched to C++ 17, and the default clang shipped with Xcode 9 does not support all the C++ 17 language features, it’s suggested to install clang using brew:
brew install --with-toolchain llvm
and install all the necessary bits:
brew install nss snappy ccache cmake pkg-config
pip install cython
install FUSE if you want to build the FUSE support:
brew cask install osxfuse
apply the patch at https://gist.github.com/tchaikov/c3f324a7c36fc9774739cea319d5c49b , to address https://public.kitware.com/Bug/view.php?id=15943 . We cannot bump up the required cmake version yet, because RHEL/CentOS does not have the newer cmake yet.
then, under the source directory of Ceph:
mkdir build
cd build
PKG_CONFIG_PATH=/usr/local/Cellar/nss/3.33/lib/pkgconfig \
CC=/usr/local/opt/llvm/bin/clang \
CXX=/usr/local/opt/llvm/bin/clang++ \
cmake .. -DBOOST_J=4 \
-DENABLE_GIT_VERSION=OFF \
-DWITH_MANPAGE=OFF \
-DWITH_LIBCEPHFS=OFF \
-DWITH_XFS=OFF \
-DWITH_KRBD=OFF \
-DWITH_LTTNG=OFF \
-DWITH_BABELTRACE=OFF \
-DWITH_BLUESTORE=OFF \
-DWITH_RADOSGW=OFF \
-DWITH_SPDK=OFF \
-DSNAPPY_ROOT_DIR=/usr/local/Cellar/snappy/1.1.7
The paths to nss
and snappy
might vary if newer versions of the packages are installed.
Currently, the most practical uses for Ceph on MacOS might be FUSE and some other librados based applications.