diff --git a/cmake/FindPIP.cmake b/cmake/FindPIP.cmake index 89ea09bf..b1bfe07f 100644 --- a/cmake/FindPIP.cmake +++ b/cmake/FindPIP.cmake @@ -66,15 +66,21 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") endif() if(NOT PIP_VERSION) - file(STRINGS "${PIP_INCLUDES}/pip_version_str.h" _VERSION REGEX "\".*\"") - string(REGEX MATCH "\".*\"" _VERSION ${_VERSION}) - string(LENGTH ${_VERSION} SL) - math(EXPR SL ${SL}-2) - string(SUBSTRING ${_VERSION} 1 ${SL} _VERSION) - set(PIP_VERSION ${_VERSION} CACHE STRING "VERSION") - if (NOT _PIP_MSG) - set(_PIP_MSG 1 CACHE BOOL "msg_pip" FORCE) - message(STATUS "Found PIP version ${PIP_VERSION} (${PIP_LIBRARY})") + include(CheckSymbolExists) + check_symbol_exists(PIP_VERSION_NAME "${PIP_INCLUDES}/piversion.h" HAVE_PIP_VERSION) + if (HAVE_PIP_VERSION) + file(STRINGS "${PIP_INCLUDES}/piversion.h" _VERSION REGEX "^[ \t]*#define[ \t]+PIP_VERSION_NAME+[ \t]+.*$") + string(REGEX MATCH "\".*\"" _VERSION ${_VERSION}) + string(LENGTH ${_VERSION} SL) + math(EXPR SL ${SL}-2) + string(SUBSTRING ${_VERSION} 1 ${SL} _VERSION) + set(PIP_VERSION ${_VERSION} CACHE STRING "VERSION") + if (NOT _PIP_MSG) + set(_PIP_MSG 1 CACHE BOOL "msg_pip" FORCE) + message(STATUS "Found PIP version ${PIP_VERSION} (${PIP_LIBRARY})") + endif() + else() + message(FATAL_ERROR "PIP not found") endif() endif() if(PIP_FIND_VERSION VERSION_GREATER PIP_VERSION)