| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # - Find the NumPy libraries
- # This module finds if NumPy is installed, and sets the following variables
- # indicating where it is.
- #
- # TODO: Update to provide the libraries and paths for linking npymath lib.
- #
- # PYTHON_NUMPY_FOUND - was NumPy found
- # PYTHON_NUMPY_VERSION - the version of NumPy found as a string
- # PYTHON_NUMPY_VERSION_MAJOR - the major version number of NumPy
- # PYTHON_NUMPY_VERSION_MINOR - the minor version number of NumPy
- # PYTHON_NUMPY_VERSION_PATCH - the patch version number of NumPy
- # PYTHON_NUMPY_VERSION_DECIMAL - e.g. version 1.6.1 is 10601
- # PYTHON_NUMPY_INCLUDE_DIR - path to the NumPy include files
- unset(PYTHON_NUMPY_VERSION)
- unset(PYTHON_NUMPY_INCLUDE_DIR)
- if(PYTHONINTERP_FOUND)
- execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c"
- "import numpy as n; print(n.__version__); print(n.get_include());"
- RESULT_VARIABLE __result
- OUTPUT_VARIABLE __output
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(__result MATCHES 0)
- string(REGEX REPLACE ";" "\\\\;" __values ${__output})
- string(REGEX REPLACE "\r?\n" ";" __values ${__values})
- list(GET __values 0 PYTHON_NUMPY_VERSION)
- list(GET __values 1 PYTHON_NUMPY_INCLUDE_DIR)
- string(REGEX MATCH "^([0-9])+\\.([0-9])+\\.([0-9])+" __ver_check "${PYTHON_NUMPY_VERSION}")
- if(NOT "${__ver_check}" STREQUAL "")
- set(PYTHON_NUMPY_VERSION_MAJOR ${CMAKE_MATCH_1})
- set(PYTHON_NUMPY_VERSION_MINOR ${CMAKE_MATCH_2})
- set(PYTHON_NUMPY_VERSION_PATCH ${CMAKE_MATCH_3})
- math(EXPR PYTHON_NUMPY_VERSION_DECIMAL
- "(${PYTHON_NUMPY_VERSION_MAJOR} * 10000) + (${PYTHON_NUMPY_VERSION_MINOR} * 100) + ${PYTHON_NUMPY_VERSION_PATCH}")
- string(REGEX REPLACE "\\\\" "/" PYTHON_NUMPY_INCLUDE_DIR ${PYTHON_NUMPY_INCLUDE_DIR})
- else()
- unset(PYTHON_NUMPY_VERSION)
- unset(PYTHON_NUMPY_INCLUDE_DIR)
- message(STATUS "Requested NumPy version and include path, but got instead:\n${__output}\n")
- endif()
- endif()
- else()
- message(STATUS "To find NumPy Python interpretor is required to be found.")
- endif()
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(NumPy REQUIRED_VARS PYTHON_NUMPY_INCLUDE_DIR PYTHON_NUMPY_VERSION
- VERSION_VAR PYTHON_NUMPY_VERSION)
- if(NUMPY_FOUND)
- set(PYTHON_NUMPY_FOUND TRUE)
- message(STATUS "NumPy ver. ${PYTHON_NUMPY_VERSION} found (include: ${PYTHON_NUMPY_INCLUDE_DIR})")
- endif()
- # caffe_clear_vars(__result __output __error_value __values __ver_check __error_value)
|