cmake - improved detection of numpy, now works for typical ubuntu installation.

numpy directory can be referenced manually with the advanced option PYTHON_NUMPY_PATH if needed.
This commit is contained in:
Campbell Barton 2012-05-01 23:22:58 +00:00
parent 274d3d2daa
commit 7f8643806d

@ -229,6 +229,9 @@ if(UNIX AND NOT APPLE)
endif() endif()
option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON) option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON)
option(WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder" ON) option(WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder" ON)
set(PYTHON_NUMPY_PATH "" CACHE PATH "Python to python site-packages or dist-packages containing 'numpy' module")
mark_as_advanced(PYTHON_NUMPY_PATH)
option(WITH_MINGW64 "Use the 64-bit version of MinGW" OFF) option(WITH_MINGW64 "Use the 64-bit version of MinGW" OFF)
mark_as_advanced(WITH_MINGW64) mark_as_advanced(WITH_MINGW64)
@ -1614,11 +1617,46 @@ if(WITH_PYTHON)
"Python.h for python version \"${PYTHON_VERSION}\"") "Python.h for python version \"${PYTHON_VERSION}\"")
endif() endif()
if(WITH_PYTHON_INSTALL_NUMPY) if(WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY)
if(NOT EXISTS "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/numpy") # set but invalid
message(WARNING "Numpy path '${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/numpy' is missing, " if(NOT ${PYTHON_NUMPY_PATH} STREQUAL "")
"WITH_PYTHON_INSTALL_NUMPY option will be ignored when installing python") if(NOT EXISTS "${PYTHON_NUMPY_PATH}/numpy")
set(WITH_PYTHON_INSTALL_NUMPY OFF) message(WARNING "PYTHON_NUMPY_PATH is invalid, numpy not found in '${PYTHON_NUMPY_PATH}' "
"WITH_PYTHON_INSTALL_NUMPY option will be ignored when installing python")
set(WITH_PYTHON_INSTALL_NUMPY 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_NUMPY_PATH CACHE)
find_path(PYTHON_NUMPY_PATH
NAMES
numpy
HINTS
"${PYTHON_LIBPATH}/python${PYTHON_VERSION}/"
"${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/"
PATH_SUFFIXES
site-packages
dist-packages
)
if(NOT EXISTS "${PYTHON_NUMPY_PATH}")
message(WARNING "'numpy' path could not be found in:\n"
"'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/numpy', "
"'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/numpy', "
"'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/numpy', "
"'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/numpy', "
"WITH_PYTHON_INSTALL_NUMPY option will be ignored when installing python")
set(WITH_PYTHON_INSTALL_NUMPY OFF)
else()
message(STATUS "numpy found at '${PYTHON_NUMPY_PATH}'")
endif()
unset(_PY_VER_SPLIT)
unset(_PY_VER_MAJOR)
endif() endif()
endif() endif()
endif() endif()