diff options
author | Brent Stapleton <brent.stapleton@ettus.com> | 2018-07-26 10:53:17 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2018-07-27 11:07:19 -0700 |
commit | 508023e0c77b0e92ee454f9771e4386e70fda359 (patch) | |
tree | be5abd6ab5dcc9ff807da0fe267d9278104c7b16 | |
parent | 204d3c96a89ba2880c015ff1c018e5332140761f (diff) | |
download | uhd-508023e0c77b0e92ee454f9771e4386e70fda359.tar.gz uhd-508023e0c77b0e92ee454f9771e4386e70fda359.tar.bz2 uhd-508023e0c77b0e92ee454f9771e4386e70fda359.zip |
python: Fixup for Python API install directory
The Python API should now be installed to
`PREFIX/lib/pythonVER/dist-packages/uhd`
where the PREFIX is set by CMake and the Python version is determined
by the Python module `distutils`. This should match user expectations
much more than the previous behavior.
Behavior in Virtualenvs is unchanged.
-rw-r--r-- | host/python/CMakeLists.txt | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/host/python/CMakeLists.txt b/host/python/CMakeLists.txt index 92c4daadc..124e16649 100644 --- a/host/python/CMakeLists.txt +++ b/host/python/CMakeLists.txt @@ -54,9 +54,21 @@ ADD_CUSTOM_COMMAND(OUTPUT ${TIMESTAMP_FILE} ADD_CUSTOM_TARGET(pyuhd_library ALL DEPENDS ${TIMESTAMP_FILE} pyuhd) IF(HAVE_PYTHON_VIRTUALENV) + # In virtualenvs, let setuptools do its thing INSTALL(CODE "execute_process(COMMAND ${PYTHON} ${SETUP_PY} -q install --force)") ELSE() - SET(UHD_PYTHON_DIR "lib/site-packages") - MESSAGE(STATUS "Utilizing the python install directory: ${CMAKE_INSTALL_PREFIX}/${UHD_PYTHON_DIR}") + # Otherwise, use distutils to determine the correct relative path for Python + # packages, and install to our prefix + IF(NOT DEFINED UHD_PYTHON_DIR) + execute_process(COMMAND ${PYTHON_EXECUTABLE} -c + "from __future__ import print_function;\ + from distutils import sysconfig;\ + print(sysconfig.get_python_lib(plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX}'));" + OUTPUT_VARIABLE UHD_PYTHON_DIR OUTPUT_STRIP_TRAILING_WHITESPACE + ) + ENDIF(NOT DEFINED UHD_PYTHON_DIR) + file(TO_CMAKE_PATH ${UHD_PYTHON_DIR} UHD_PYTHON_DIR) + + MESSAGE(STATUS "Utilizing the python install directory: ${UHD_PYTHON_DIR}") INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/uhd DESTINATION ${UHD_PYTHON_DIR} COMPONENT pythonapi) -ENDIF() +ENDIF(HAVE_PYTHON_VIRTUALENV) |