FindPythonWindows.cmake 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # Once done these will be defined:
  2. #
  3. # PYTHON_FOUND PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES
  4. #
  5. # For use in OBS:
  6. #
  7. # PYTHON_INCLUDE_DIR
  8. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  9. set(_LIB_SUFFIX 64)
  10. else()
  11. set(_LIB_SUFFIX 32)
  12. endif()
  13. find_path(
  14. PYTHON_INCLUDE_DIR
  15. NAMES Python.h
  16. HINTS ${_PYTHON_INCLUDE_DIRS}
  17. PATH_SUFFIXES include include/python)
  18. find_library(
  19. PYTHON_LIB
  20. NAMES ${_PYTHON_LIBRARIES} python3
  21. HINTS ${_PYTHON_LIBRARY_DIRS}
  22. PATH_SUFFIXES
  23. lib${_lib_suffix}
  24. lib
  25. libs${_lib_suffix}
  26. libs
  27. bin${_lib_suffix}
  28. bin
  29. ../lib${_lib_suffix}
  30. ../lib
  31. ../libs${_lib_suffix}
  32. ../libs
  33. ../bin${_lib_suffix}
  34. ../bin)
  35. include(FindPackageHandleStandardArgs)
  36. find_package_handle_standard_args(PythonWindows DEFAULT_MSG PYTHON_LIB
  37. PYTHON_INCLUDE_DIR)
  38. mark_as_advanced(PYTHON_INCLUDE_DIR PYTHON_LIB)
  39. if(PYTHONWINDOWS_FOUND)
  40. set(Python_FOUND TRUE)
  41. set(Python_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR})
  42. set(Python_LIBRARIES ${PYTHON_LIB})
  43. set(PYTHONLIBS_FOUND TRUE)
  44. if(NOT TARGET Python::Python)
  45. if(IS_ABSOLUTE "${Python_LIBRARIES}")
  46. add_library(Python::Python UNKNOWN IMPORTED)
  47. set_target_properties(Python::Python PROPERTIES IMPORTED_LOCATION
  48. "${Python_LIBRARIES}")
  49. else()
  50. add_library(Python::Python INTERFACE IMPORTED)
  51. set_target_properties(Python::Python PROPERTIES IMPORTED_LIBNAME
  52. "${Python_LIBRARIES}")
  53. endif()
  54. set_target_properties(
  55. Python::Python PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
  56. "${Python_INCLUDE_DIRS}")
  57. endif()
  58. endif()