VRayHexer/cmake/modules/FindPybind11.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
)