123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #[=======================================================================[.rst
- FindPython
- ----------
- FindModule for Python import libraries and header on Windows
- .. versionchanged:: 3.0
- Updated FindModule to CMake standards
- Imported Targets
- ^^^^^^^^^^^^^^^^
- .. versionadded:: 2.0
- This module defines the :prop_tgt:`IMPORTED` target ``Python::Python``.
- Result Variables
- ^^^^^^^^^^^^^^^^
- This module sets the following variables:
- ``Python_FOUND``
- True, if all required components and the core library were found.
- ``Python_VERSION``
- Detected version of found Python libraries.
- ``Python_INCLUDE_DIRS``
- Include directories needed for Python.
- ``Python_LIBRARIES``
- Libraries needed to link to Python.
- Cache variables
- ^^^^^^^^^^^^^^^
- The following cache variables may also be set:
- ``Python_LIBRARY``
- Path to the library component of Python.
- ``Python_INCLUDE_DIR``
- Directory containing ``python.h``.
- #]=======================================================================]
- include(FindPackageHandleStandardArgs)
- find_path(Python_INCLUDE_DIR NAMES Python.h PATH_SUFFIXES include include/python DOC "Python include directory")
- find_library(Python_LIBRARY NAMES python3 PATHS lib DOC "Python location")
- if(EXISTS "${Python_INCLUDE_DIR}/patchlevel.h")
- file(STRINGS "${Python_INCLUDE_DIR}/patchlevel.h" _VERSION_STRING REGEX "^.*PY_VERSION[ \t]+\"[0-9\\.]+\"[ \t]*$")
- string(REGEX REPLACE ".*PY_VERSION[ \t]+\"([0-9\\.]+)\".*" "\\1" Python_VERSION "${_VERSION_STRING}")
- else()
- if(NOT Python_FIND_QUIETLY)
- message(AUTHOR_WARNING "Failed to find Python version.")
- endif()
- set(Python_VERSION 0.0.0)
- endif()
- find_package_handle_standard_args(
- Python
- REQUIRED_VARS Python_LIBRARY Python_INCLUDE_DIR
- VERSION_VAR Python_VERSION
- HANDLE_VERSION_RANGE
- REASON_FAILURE_MESSAGE "Ensure that obs-deps is provided as part of CMAKE_PREFIX_PATH."
- )
- mark_as_advanced(Python_INCLUDE_DIR Python_LIBRARY)
- if(Python_FOUND)
- set(Python_INCLUDE_DIRS ${Python_INCLUDE_DIR})
- set(Python_LIBRARIES ${Python_LIBRARY})
- set(Python_DEFINITIONS ${PC_Python_CFLAGS_OTHER})
- if(NOT TARGET Python::Python)
- if(IS_ABSOLUTE "${Python_LIBRARY}")
- add_library(Python::Python UNKNOWN IMPORTED)
- set_property(TARGET Python::Python PROPERTY IMPORTED_LOCATION "${Python_LIBRARY}")
- else()
- add_library(Python::Python INTERFACE IMPORTED)
- set_property(TARGET Python::Python PROPERTY IMPORTED_LIBNAME "${Python_LIBRARY}")
- endif()
- set_target_properties(
- Python::Python
- PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Python_INCLUDE_DIR}" VERSION ${Python_VERSION}
- )
- endif()
- endif()
- include(FeatureSummary)
- set_package_properties(
- Python
- PROPERTIES
- URL "https://www.python.org"
- DESCRIPTION
- "Python is a programming language that lets you work more quickly and integrate your systems more effectively."
- )
|