include(ReadLines) include(FindMatchingItem) if ( GMP_FOUND ) readlines(${GMP_INCLUDE_DIR}/gmp.h GMP_H_FILE) if ( GMP_H_FILE ) find_matching_item(GMP_H_FILE "__GNU_MP_VERSION " __GNU_MP_VERSION_LINE ) find_matching_item(GMP_H_FILE "__GNU_MP_VERSION_MINOR " __GNU_MP_VERSION_MINOR_LINE ) find_matching_item(GMP_H_FILE "__GNU_MP_VERSION_PATCHLEVEL " __GNU_MP_VERSION_PATCHLEVEL_LINE ) string( REPLACE " " ";" __GNU_MP_VERSION_LINE_LIST ${__GNU_MP_VERSION_LINE} ) string( REPLACE " " ";" __GNU_MP_VERSION_MINOR_LINE_LIST ${__GNU_MP_VERSION_MINOR_LINE} ) string( REPLACE " " ";" __GNU_MP_VERSION_PATCHLEVEL_LINE_LIST ${__GNU_MP_VERSION_PATCHLEVEL_LINE} ) at( __GNU_MP_VERSION_LINE_LIST 2 __GNU_MP_VERSION ) at( __GNU_MP_VERSION_MINOR_LINE_LIST 2 __GNU_MP_VERSION_MINOR ) at( __GNU_MP_VERSION_PATCHLEVEL_LINE_LIST 2 __GNU_MP_VERSION_PATCHLEVEL ) set( GMP_VERSION "${__GNU_MP_VERSION}.${__GNU_MP_VERSION_MINOR}.${__GNU_MP_VERSION_PATCHLEVEL}" ) else() message( STATUS "WARNING: GMP found but could not open ${GMP_INCLUDE_DIR}/gmp.h" ) set ( GMP_VERSION "unknown" ) endif() message( STATUS "USING GMP_VERSION = '${GMP_VERSION}'" ) endif() if ( GMPXX_FOUND AND GMP_VERSION ) set( GMPXX_VERSION ${GMP_VERSION} ) message( STATUS "USING GMPXX_VERSION = '${GMPXX_VERSION}'" ) endif()