]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/CMakeLists.txt
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / pybind / CMakeLists.txt
1 include(Distutils)
2
3 set(CYTHON_MODULE_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cython_modules)
4
5 # Keep the default version last
6 if(WITH_PYTHON3)
7 set(py_vers 3)
8 endif()
9 list(APPEND py_vers 2)
10
11 foreach(python_version ${py_vers})
12 if(${python_version} EQUAL 2)
13 set(PYTHON_VERSION "")
14 else(${python_version} EQUAL 2)
15 set(PYTHON_VERSION ${python_version})
16 endif(${python_version} EQUAL 2)
17
18 find_package(Cython REQUIRED)
19
20 add_subdirectory(rados rados${PYTHON_VERSION})
21 add_custom_target(cython${PYTHON_VERSION}_modules ALL
22 DEPENDS cython${PYTHON_VERSION}_rados)
23
24 if(WITH_RBD)
25 add_subdirectory(rbd rbd${PYTHON_VERSION})
26 add_dependencies(cython${PYTHON_VERSION}_modules cython${PYTHON_VERSION}_rbd)
27 endif()
28 if(WITH_CEPHFS)
29 add_subdirectory(cephfs cephfs${PYTHON_VERSION})
30 add_dependencies(cython${PYTHON_VERSION}_modules cython${PYTHON_VERSION}_cephfs)
31 endif()
32 if(WITH_RADOSGW)
33 add_subdirectory(rgw rgw${PYTHON_VERSION})
34 add_dependencies(cython${PYTHON_VERSION}_modules cython${PYTHON_VERSION}_rgw)
35 endif()
36
37 # if CMAKE_INSTALL_PREFIX is an empty string, must replace
38 # it with "/" to make PYTHON_INSTALL_TEMPLATE an absolute path to be
39 # consistent with all other installation paths.
40 if(CMAKE_INSTALL_PREFIX)
41 set(PYTHON_INSTALL_TEMPLATE "${CMAKE_INSTALL_PREFIX}")
42 else(CMAKE_INSTALL_PREFIX)
43 set(PYTHON_INSTALL_TEMPLATE "/")
44 endif(CMAKE_INSTALL_PREFIX)
45
46 execute_process(
47 COMMAND
48 ${PYTHON${PYTHON_VERSION}_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(prefix='${PYTHON_INSTALL_TEMPLATE}'))"
49 OUTPUT_VARIABLE "PYTHON${PYTHON_VERSION}_INSTDIR"
50 OUTPUT_STRIP_TRAILING_WHITESPACE)
51
52 install(FILES
53 ${CMAKE_CURRENT_SOURCE_DIR}/ceph_argparse.py
54 ${CMAKE_CURRENT_SOURCE_DIR}/ceph_daemon.py
55 ${CMAKE_CURRENT_SOURCE_DIR}/ceph_volume_client.py
56 DESTINATION ${PYTHON${PYTHON_VERSION}_INSTDIR})
57 endforeach()
58
59 install(FILES
60 ${CMAKE_CURRENT_SOURCE_DIR}/ceph_rest_api.py
61 DESTINATION ${PYTHON_INSTDIR})
62
63 if(WITH_MGR)
64 # Needs to match src/common/config_opts.h, which has:
65 # OPTION(mgr_module_path, OPT_STR, CEPH_PKGLIBDIR "/mgr")
66 install(DIRECTORY
67 ${CMAKE_CURRENT_SOURCE_DIR}/mgr
68 DESTINATION ${CMAKE_INSTALL_PKGLIBDIR})
69 endif(WITH_MGR)