From 3a1357450cad66d41c6f0704cb97b02a165ac801 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Fri, 19 Jan 2018 21:15:35 +0800 Subject: [PATCH] doc/dev/macos: add doc for building on MacOS Signed-off-by: Kefu Chai --- doc/dev/macos.rst | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 doc/dev/macos.rst diff --git a/doc/dev/macos.rst b/doc/dev/macos.rst new file mode 100644 index 00000000000..9c7402d0f75 --- /dev/null +++ b/doc/dev/macos.rst @@ -0,0 +1,42 @@ +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_EMBEDDED=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.