CEPH_BUILD_DIR=${CMAKE_BINARY_DIR}
LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib
PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:${CMAKE_SOURCE_DIR}/src:$ENV{PATH}
- PYTHONPATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cython_modules:${CMAKE_SOURCE_DIR}/src/pybind
+ PYTHONPATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cython_modules/lib.${PYTHON_VERSION_MAJOR}:${CMAKE_SOURCE_DIR}/src/pybind
CEPH_BUILD_VIRTUALENV=${CEPH_BUILD_VIRTUALENV})
# none of the tests should take more than 1 hour to complete
set_property(TEST
CEPH_LIBDIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
CFLAGS=\"-iquote${CMAKE_SOURCE_DIR}/src/include\"
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py
- build --build-base ${CYTHON_MODULE_DIR} --build-platlib ${CYTHON_MODULE_DIR} --verbose
+ build --build-base ${CYTHON_MODULE_DIR} --build-platlib ${CYTHON_MODULE_DIR}/lib.${PYTHON_VERSION_MAJOR} --verbose
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${src})
endfunction(distutils_add_cython_module)
CPPFLAGS=\"-iquote${CMAKE_SOURCE_DIR}/src/include\"
LDFLAGS=\"-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\"
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/setup.py
- build --build-base ${CYTHON_MODULE_DIR} --build-platlib ${CYTHON_MODULE_DIR} --verbose
+ build --build-base ${CYTHON_MODULE_DIR} --build-platlib ${CYTHON_MODULE_DIR}/lib.${PYTHON_VERSION_MAJOR} --verbose
build_ext --cython-c-in-temp --build-temp ${CMAKE_CURRENT_BINARY_DIR} --cython-include-dirs ${PROJECT_SOURCE_DIR}/src/pybind/rados
install \${options} --single-version-externally-managed --record /dev/null
egg_info --egg-base ${CMAKE_CURRENT_BINARY_DIR}
sys.path.insert(0, os.path.join(MYDIR, pybind_path))
sys.path.insert(0, os.path.join(MYDIR, pythonlib_path))
+def get_pythonlib_dir():
+ """Returns the name of a distutils build directory"""
+ return "lib.{version[0]}".format(version=sys.version_info)
+
if MYDIR.endswith('src') and \
os.path.exists(os.path.join(MYDIR, '.libs')) and \
os.path.exists(os.path.join(MYDIR, 'pybind')) and \
os.path.exists(os.path.join(MYDIR, 'build')):
- python_libpath = os.path.join(MYDIR, 'build')
+ python_libpath = os.path.join(MYDIR, 'build', get_pythonlib_dir())
respawn_in_path(os.path.join(MYDIR, '.libs'), 'pybind', python_libpath)
if 'PATH' in os.environ and MYDIR not in os.environ['PATH']:
os.environ['PATH'] += ':' + MYDIR
lib_path = os.path.join(os.getcwd(), "lib")
bin_path = os.path.join(os.getcwd(), "bin")
pybind_path = os.path.join(src_path, "src", "pybind")
- pythonlib_path = os.path.join(lib_path, "cython_modules")
+ pythonlib_path = os.path.join(lib_path,
+ "cython_modules",
+ get_pythonlib_dir())
respawn_in_path(lib_path, pybind_path, pythonlib_path)
fi ; \
cd $(srcdir)/pybind/cephfs; $(PY_DISTUTILS) build \
--build-base $(shell readlink -f $(builddir))/build \
- --build-platlib $(shell readlink -f $(builddir))/build \
+ --build-platlib $(shell readlink -f $(builddir))/build/lib.2 \
install \
$$options $$root \
--single-version-externally-managed \
fi ; \
cd $(srcdir)/pybind/rados; $(PY_DISTUTILS) build \
--build-base $(shell readlink -f $(builddir))/build \
- --build-platlib $(shell readlink -f $(builddir))/build \
+ --build-platlib $(shell readlink -f $(builddir))/build/lib.2 \
install \
$$options $$root \
--single-version-externally-managed \
fi ; \
cd $(srcdir)/pybind/rbd; $(PY_DISTUTILS) build \
--build-base $(shell readlink -f $(builddir))/build \
- --build-platlib $(shell readlink -f $(builddir))/build \
+ --build-platlib $(shell readlink -f $(builddir))/build/lib.2 \
install \
$$options $$root \
--single-version-externally-managed \