initial code repo
[stor4nfv.git] / src / ceph / src / pybind / CMakeLists.txt
diff --git a/src/ceph/src/pybind/CMakeLists.txt b/src/ceph/src/pybind/CMakeLists.txt
new file mode 100644 (file)
index 0000000..dbdb23f
--- /dev/null
@@ -0,0 +1,69 @@
+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)