FindNumPy.cmake 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Find the Python NumPy package
  2. # PYTHON_NUMPY_INCLUDE_DIR
  3. # PYTHON_NUMPY_FOUND
  4. # will be set by this script
  5. cmake_minimum_required(VERSION 2.6)
  6. if(NOT PYTHON_EXECUTABLE)
  7. if(NumPy_FIND_QUIETLY)
  8. find_package(PythonInterp QUIET)
  9. else()
  10. find_package(PythonInterp)
  11. set(__numpy_out 1)
  12. endif()
  13. endif()
  14. if (PYTHON_EXECUTABLE)
  15. # Find out the include path
  16. execute_process(
  17. COMMAND "${PYTHON_EXECUTABLE}" -c
  18. "from __future__ import print_function\ntry: import numpy; print(numpy.get_include(), end='')\nexcept:pass\n"
  19. OUTPUT_VARIABLE __numpy_path)
  20. # And the version
  21. execute_process(
  22. COMMAND "${PYTHON_EXECUTABLE}" -c
  23. "from __future__ import print_function\ntry: import numpy; print(numpy.__version__, end='')\nexcept:pass\n"
  24. OUTPUT_VARIABLE __numpy_version)
  25. elseif(__numpy_out)
  26. message(STATUS "Python executable not found.")
  27. endif(PYTHON_EXECUTABLE)
  28. find_path(PYTHON_NUMPY_INCLUDE_DIR numpy/arrayobject.h
  29. HINTS "${__numpy_path}" "${PYTHON_INCLUDE_PATH}" NO_DEFAULT_PATH)
  30. if(PYTHON_NUMPY_INCLUDE_DIR)
  31. set(PYTHON_NUMPY_FOUND 1 CACHE INTERNAL "Python numpy found")
  32. endif(PYTHON_NUMPY_INCLUDE_DIR)
  33. include(FindPackageHandleStandardArgs)
  34. find_package_handle_standard_args(NumPy REQUIRED_VARS PYTHON_NUMPY_INCLUDE_DIR
  35. VERSION_VAR __numpy_version)