Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / 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   # Location needs to match default setting for mgr_module_path, currently:
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)