]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cmake: make py3 a nice-to-have
authorKefu Chai <kchai@redhat.com>
Thu, 8 Sep 2016 08:47:59 +0000 (16:47 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 8 Sep 2016 13:49:45 +0000 (21:49 +0800)
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>
ceph.spec.in
debian/rules
src/CMakeLists.txt
src/pybind/CMakeLists.txt

index 9f952412be491d1b5cb92ce61c864aa2cc27a76d..b3def2ed75b5cbafc6203507c82d44ba0605cadb 100644 (file)
@@ -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 \
index c3bdfbc79b2dd549db3a620e4c7d8d5a686669e8..bb705938de7c47b3aad38c4b56e0aeb48cefa02e 100755 (executable)
@@ -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
index 3eed3d40f4f3d37d3e59d92415b6536754a2e0c6..aea127bee72e2519ffa633997349e21f17c9b20a 100644 (file)
@@ -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}")
index 3d22acd9cfee8675f667d15aad58d0fd3a54d552..14d037e6f16e19fd3ccb7cd5446cecfaaf8dd9c6 100644 (file)
@@ -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)