diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-07-28 18:42:30 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-07-28 18:53:02 +0400 |
commit | c85265b4551acbc7adf41f47f612373e42e0176d (patch) | |
tree | 49cbc3a2b1cd0741250946c8b56e0b5d34d55f44 /build_files/cmake/macros.cmake | |
parent | c4b47b89f76d259792b3a8f0f9b6718668996000 (diff) |
Make requests python package to be detected in the same way as numpy
This solves missing requests package reported on the systems where it's
located in dist-packages rather than in site-packages.
To do this there's now a helper macros which handles both requests and
numpy now and could be used for more packages in the future.
Reviewers: campbellbarton
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D686
Diffstat (limited to 'build_files/cmake/macros.cmake')
-rw-r--r-- | build_files/cmake/macros.cmake | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 8890c137dd2..f896fb9d6a9 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -1324,3 +1324,54 @@ macro(msgfmt_simple unset(_file_to) unset(_file_to_path) endmacro() + +macro(find_python_package + package) + + string(TOUPPER ${package} _upper_package) + + # set but invalid + if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND + (NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND)) +# if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}") +# message(WARNING "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in '${PYTHON_${_upper_package}_PATH}' " +# "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python") +# set(WITH_PYTHON_INSTALL${_upper_package} OFF) +# endif() + # not set, so initialize + else() + string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}") + list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR) + + # re-cache + unset(PYTHON_${_upper_package}_PATH CACHE) + find_path(PYTHON_${_upper_package}_PATH + NAMES + ${package} + HINTS + "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/" + "${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/" + PATH_SUFFIXES + site-packages + dist-packages + NO_DEFAULT_PATH + ) + + if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}") + message(WARNING "'${package}' path could not be found in:\n" + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${package}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}', " + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}', " + "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python") + set(WITH_PYTHON_INSTALL_${_upper_package} OFF) + else() + message(STATUS "${package} found at '${PYTHON_${_upper_package}_PATH}'") + endif() + + unset(_PY_VER_SPLIT) + unset(_PY_VER_MAJOR) + endif() + + unset(_upper_package) +endmacro() |