diff --git a/ceph.spec.in b/ceph.spec.in index 9f952412be491..b3def2ed75b5c 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -672,6 +672,7 @@ cmake .. \ -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 \ diff --git a/debian/rules b/debian/rules index c3bdfbc79b2dd..bb705938de7c4 100755 --- a/debian/rules +++ b/debian/rules @@ -5,7 +5,7 @@ export DESTDIR=$(CURDIR)/debian/tmp 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 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3eed3d40f4f3d..aea127bee72e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -200,8 +200,20 @@ endif() # 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}") diff --git a/src/pybind/CMakeLists.txt b/src/pybind/CMakeLists.txt index 3d22acd9cfee8..14d037e6f16e1 100644 --- a/src/pybind/CMakeLists.txt +++ b/src/pybind/CMakeLists.txt @@ -2,7 +2,13 @@ include(Distutils) 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)