python3 is not a hard requirement to build ceph, so make it optional.
add an option named "WITH_PYTHON3" which accepts ON, OFF, or CHECK.
Fixes: http://tracker.ceph.com/issues/17103
Signed-off-by: Kefu Chai <kchai@redhat.com>
-DCMAKE_INSTALL_MANDIR=%{_mandir} \
-DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \
-DWITH_MANPAGE=ON \
+ -DWITH_PYTHON3=ON \
-DWITH_SYSTEMD=ON \
%if 0%{?rhel} && ! 0%{?centos}
-DWITH_SUBMAN=ON \
export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
-extraopts += -DUSE_CRYPTOPP=OFF -DWITH_OCF=ON -DWITH_LTTNG=ON
+extraopts += -DUSE_CRYPTOPP=OFF -DWITH_OCF=ON -DWITH_LTTNG=ON -DWITH_PYTHON3=ON
extraopts += -DWITH_CEPHFS_JAVA=ON
# assumes that ceph is exmpt from multiarch support, so we override the libdir.
extraopts += -DCMAKE_INSTALL_LIBDIR=/usr/lib
# Python stuff
find_package(PythonInterp 2 REQUIRED)
find_package(PythonLibs 2 REQUIRED)
-find_package(Python3Interp 3 REQUIRED)
-find_package(Python3Libs 3 REQUIRED)
+
+option(WITH_PYTHON3 "build python3 bindings" "CHECK")
+if(WITH_PYTHON3 MATCHES "check|CHECK")
+ find_package(Python3Interp 3 QUIET)
+ find_package(Python3Libs 3 QUIET)
+ if(PYTHON3INTERP_FOUND AND PYTHON3LIBS_FOUND)
+ set(WITH_PYTHON3 ON)
+ else()
+ set(WITH_PYTHON3 OFF)
+ endif()
+elseif(WITH_PYTHON3)
+ find_package(Python3Interp 3 REQUIRED)
+ find_package(Python3Libs 3 REQUIRED)
+endif()
if(HAVE_XIO)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${XIO_INCLUDE_DIR}")
set(CYTHON_MODULE_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cython_modules)
-foreach(python_version 3 2) # Keep the default version last
+# Keep the default version last
+if(WITH_PYTHON3)
+ set(py_vers 3)
+endif()
+list(APPEND py_vers 2)
+
+foreach(python_version ${py_vers})
if(${python_version} EQUAL 2)
set(PYTHON_VERSION "")
else(${python_version} EQUAL 2)