1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
set(GMP_ROOT_DIR "${GMP_ROOT_DIR}" CACHE PATH "Directory to search for gmp" )
find_package(PkgConfig QUIET)
if( PkgConfig_FOUND )
pkg_search_module(PC_GMP QUIET gmp)
if( PC_GMP_FOUND )
set( GMP_VERSION ${PC_GMP_VERSION} )
endif()
endif()
find_path( GMP_INCLUDE_DIR
NAMES gmp.h
PATHS "${GMP_ROOT_DIR}"
HINTS ${PC_GMP_INCLUDEDIR} ${PC_GMP_INCLUDE_DIRS}
)
find_library( GMP_LIBRARY
NAMES gmp
PATHS "${GMP_ROOT_DIR}"
HINTS ${PC_GMP_LIBDIR} ${PC_GMP_LIBRARY_DIRS}
)
if(NOT PC_GMP_FOUND)
set( _VERSION_FILE ${GMP_INCLUDE_DIR}/gmp.h )
if( EXISTS ${_VERSION_FILE} )
file( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+__GNU_MP_VERSION[ ]+" )
if( _VERSION_LINE )
string( REGEX REPLACE ".*define[ ]+__GNU_MP_VERSION[ ]+(.*)[ ]*" "\\1" GMP_VERSION_MAJOR "${_VERSION_LINE}" )
endif()
file( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+__GNU_MP_VERSION_MINOR[ ]+" )
if( _VERSION_LINE )
string( REGEX REPLACE ".*define[ ]+__GNU_MP_VERSION_MINOR[ ]+(.*)[ ]*" "\\1" GMP_VERSION_MINOR "${_VERSION_LINE}" )
endif()
file( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+__GNU_MP_VERSION_PATCHLEVEL[ ]+" )
if( _VERSION_LINE )
string( REGEX REPLACE ".*define[ ]+__GNU_MP_VERSION_PATCHLEVEL[ ]+(.*)[ ]*" "\\1" GMP_VERSION_PATCHLEVEL "${_VERSION_LINE}" )
endif()
set( GMP_VERSION "${GMP_VERSION_MAJOR}.${GMP_VERSION_MINOR}.${GMP_VERSION_PATCHLEVEL}")
endif()
unset( _VERSION_FILE )
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args( gmp
FOUND_VAR GMP_FOUND
REQUIRED_VARS
GMP_LIBRARY
GMP_INCLUDE_DIR
VERSION_VAR GMP_VERSION
)
if(GMP_FOUND)
set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
set(GMP_LIBRARIES ${GMP_LIBRARY})
if(NOT TARGET gmp::gmp)
add_library(gmp::gmp UNKNOWN IMPORTED)
set_target_properties( gmp::gmp
PROPERTIES
IMPORTED_LOCATION "${GMP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${GMP_INCLUDE_DIR}"
)
endif()
mark_as_advanced(GMP_ROOT_DIR)
endif()
mark_as_advanced(GMP_INCLUDE_DIR GMP_LIBRARY)
|