45 lines
1.4 KiB
CMake
45 lines
1.4 KiB
CMake
#-*-cmake-*-
|
|
#
|
|
# This auxiliary CMake file helps in find the pybind headers
|
|
#
|
|
# PYBIND11_FOUND Set if Pybind11 is found.
|
|
# PYBIND11_INCLUDE_DIR Pybind11's include directory.
|
|
# PYBIND11_VERSION Pybind11 version
|
|
# PYBIND11_VERSION_MAJOR
|
|
# PYBIND11_VERSION_MINOR
|
|
# PYBIND11_VERSION_PATCH
|
|
|
|
find_package(PackageHandleStandardArgs)
|
|
|
|
if (EXISTS "$ENV{PYBIND11_HOME}")
|
|
set(PYBIND11_HOME $ENV{PYBIND11_HOME})
|
|
endif ()
|
|
|
|
# include/pybind11/detail/common.h
|
|
find_path(PYBIND11_INCLUDE_DIR pybind11/pybind11.h
|
|
PATHS ${PYBIND11_HOME}/include
|
|
DOC "Pybind11 Include Path")
|
|
|
|
|
|
|
|
if(PYBIND11_INCLUDE_DIR AND EXISTS "${PYBIND11_INCLUDE_DIR}/pybind11/detail/common.h")
|
|
foreach(_pybind11_comp MAJOR MINOR PATCH)
|
|
file(STRINGS
|
|
${PYBIND11_INCLUDE_DIR}/pybind11/detail/common.h
|
|
_pybind11_tmp
|
|
REGEX "#define PYBIND11_VERSION_${_pybind11_comp} .*$")
|
|
string(REGEX MATCHALL "[0-9]+$" PYBIND11_VERSION_${_pybind11_comp} ${_pybind11_tmp})
|
|
endforeach()
|
|
set(PYBIND11_VERSION ${PYBIND11_VERSION_MAJOR}.${PYBIND11_VERSION_MINOR}.${PYBIND11_VERSION_PATCH})
|
|
endif()
|
|
|
|
message(STATUS "PYBIND11_VERSION : ${PYBIND11_VERSION}")
|
|
message(STATUS "PYBIND11_HOME : ${PYBIND11_HOME}")
|
|
message(STATUS "PYBIND11_INCLUDE_DIR : ${PYBIND11_INCLUDE_DIR}")
|
|
|
|
find_package_handle_standard_args(Pybind11
|
|
REQUIRED_VARS
|
|
PYBIND11_INCLUDE_DIR
|
|
VERSION_VAR
|
|
PYBIND11_VERSION
|
|
) |