--- /dev/null
+include(Distutils)
+
+set(CYTHON_MODULE_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cython_modules)
+
+# 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)
+ set(PYTHON_VERSION ${python_version})
+ endif(${python_version} EQUAL 2)
+
+ find_package(Cython REQUIRED)
+
+ add_subdirectory(rados rados${PYTHON_VERSION})
+ add_custom_target(cython${PYTHON_VERSION}_modules ALL
+ DEPENDS cython${PYTHON_VERSION}_rados)
+
+ if(WITH_RBD)
+ add_subdirectory(rbd rbd${PYTHON_VERSION})
+ add_dependencies(cython${PYTHON_VERSION}_modules cython${PYTHON_VERSION}_rbd)
+ endif()
+ if(WITH_CEPHFS)
+ add_subdirectory(cephfs cephfs${PYTHON_VERSION})
+ add_dependencies(cython${PYTHON_VERSION}_modules cython${PYTHON_VERSION}_cephfs)
+ endif()
+ if(WITH_RADOSGW)
+ add_subdirectory(rgw rgw${PYTHON_VERSION})
+ add_dependencies(cython${PYTHON_VERSION}_modules cython${PYTHON_VERSION}_rgw)
+ endif()
+
+ # if CMAKE_INSTALL_PREFIX is an empty string, must replace
+ # it with "/" to make PYTHON_INSTALL_TEMPLATE an absolute path to be
+ # consistent with all other installation paths.
+ if(CMAKE_INSTALL_PREFIX)
+ set(PYTHON_INSTALL_TEMPLATE "${CMAKE_INSTALL_PREFIX}")
+ else(CMAKE_INSTALL_PREFIX)
+ set(PYTHON_INSTALL_TEMPLATE "/")
+ endif(CMAKE_INSTALL_PREFIX)
+
+ execute_process(
+ COMMAND
+ ${PYTHON${PYTHON_VERSION}_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(prefix='${PYTHON_INSTALL_TEMPLATE}'))"
+ OUTPUT_VARIABLE "PYTHON${PYTHON_VERSION}_INSTDIR"
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/ceph_argparse.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/ceph_daemon.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/ceph_volume_client.py
+ DESTINATION ${PYTHON${PYTHON_VERSION}_INSTDIR})
+endforeach()
+
+install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/ceph_rest_api.py
+ DESTINATION ${PYTHON_INSTDIR})
+
+if(WITH_MGR)
+ # Location needs to match default setting for mgr_module_path, currently:
+ # OPTION(mgr_module_path, OPT_STR, CEPH_PKGLIBDIR "/mgr")
+ install(DIRECTORY
+ ${CMAKE_CURRENT_SOURCE_DIR}/mgr
+ DESTINATION ${CMAKE_INSTALL_PKGLIBDIR})
+endif(WITH_MGR)