You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.1 KiB
89 lines
2.1 KiB
4 years ago
|
# FindGMP.cmake
|
||
|
#
|
||
|
# Finds the GNU Multiple Precision Arithmetic Library (GMP)
|
||
|
# See http://gmplib.org/
|
||
|
#
|
||
|
# This will define the following variables::
|
||
|
#
|
||
|
# GMP_FOUND
|
||
|
# GMP_VERSION
|
||
|
# GMP_DEFINITIONS
|
||
|
# GMP_INCLUDE_DIR
|
||
|
# GMP_LIBRARY
|
||
|
# GMP_GMPXX_DEFINITIONS
|
||
|
# GMP_GMPXX_INCLUDE_DIR
|
||
|
# GMP_GMPXX_LIBRARY
|
||
|
#
|
||
|
# and the following imported targets::
|
||
|
#
|
||
|
# GMP::GMP
|
||
|
# GMP::GMPXX
|
||
|
|
||
|
find_package(PkgConfig QUIET)
|
||
|
pkg_check_modules(PC_GMP QUIET gmp gmpxx)
|
||
|
|
||
|
set(GMP_VERSION ${PC_GMP_gmp_VERSION})
|
||
|
|
||
|
find_library(GMP_LIBRARY
|
||
|
NAMES gmp libgmp
|
||
|
HINTS
|
||
|
${PC_GMP_gmp_LIBDIR}
|
||
|
${PC_GMP_gmp_LIBRARY_DIRS})
|
||
|
|
||
|
find_path(GMP_INCLUDE_DIR
|
||
|
NAMES gmp.h
|
||
|
HINTS
|
||
|
${PC_GMP_gmp_INCLUDEDIR}
|
||
|
${PC_GMP_gmp_INCLUDE_DIRS})
|
||
|
|
||
|
find_library(GMP_GMPXX_LIBRARY
|
||
|
NAMES gmpxx libgmpxx
|
||
|
HINTS
|
||
|
${PC_GMP_gmpxx_LIBDIR}
|
||
|
${PC_GMP_gmpxx_LIBRARY_DIRS})
|
||
|
|
||
|
find_path(GMP_GMPXX_INCLUDE_DIR
|
||
|
NAMES gmpxx.h
|
||
|
HINTS
|
||
|
${PC_GMP_gmpxx_INCLUDEDIR}
|
||
|
${PC_GMP_gmpxx_INCLUDE_DIRS})
|
||
|
|
||
|
|
||
|
include(FindPackageHandleStandardArgs)
|
||
|
find_package_handle_standard_args(GMP
|
||
|
REQUIRED_VARS
|
||
|
GMP_INCLUDE_DIR
|
||
|
GMP_LIBRARY
|
||
|
GMP_GMPXX_INCLUDE_DIR
|
||
|
GMP_GMPXX_LIBRARY
|
||
|
VERSION_VAR GMP_VERSION)
|
||
|
|
||
|
if(GMP_FOUND)
|
||
|
set(GMP_LIBRARIES ${GMP_LIBRARY})
|
||
|
set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
|
||
|
set(GMP_DEFINITIONS ${PC_GMP_gmp_CFLAGS_OTHER})
|
||
|
set(GMP_GMPXX_LIBRARIES ${GMP_GMPXX_LIBRARY})
|
||
|
set(GMP_GMPXX_INCLUDE_DIRS ${GMP_GMPXX_INCLUDE_DIR})
|
||
|
set(GMP_GMPXX_DEFINITIONS ${PC_GMP_gmpxx_CFLAGS_OTHER})
|
||
|
|
||
|
if(NOT TARGET GMP::GMP)
|
||
|
add_library(GMP::GMP UNKNOWN IMPORTED)
|
||
|
set_target_properties(GMP::GMP PROPERTIES
|
||
|
INTERFACE_COMPILE_OPTIONS "${PC_GMP_gmp_CFLAGS_OTHER}"
|
||
|
INTERFACE_INCLUDE_DIRECTORIES "${GMP_INCLUDE_DIR}"
|
||
|
IMPORTED_LOCATION "${GMP_LIBRARY}")
|
||
|
endif()
|
||
|
|
||
|
if(NOT TARGET GMP::GMPXX)
|
||
|
add_library(GMP::GMPXX UNKNOWN IMPORTED)
|
||
|
set_target_properties(GMP::GMPXX PROPERTIES
|
||
|
INTERFACE_COMPILE_OPTIONS "${PC_GMP_gmpxx_CFLAGS_OTHER}"
|
||
|
INTERFACE_INCLUDE_DIRECTORIES "${GMP_GMPXX_INCLUDE_DIR}"
|
||
|
INTERFACE_LINK_LIBRARIES GMP::GMP
|
||
|
IMPORTED_LOCATION "${GMP_GMPXX_LIBRARY}")
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
mark_as_advanced(GMP_FOUND GMP_INCLUDE_DIR GMP_LIBRARY)
|
||
|
mark_as_advanced(GMP_GMPXX_INCLUDE_DIR GMP_GMPXX_LIBRARY)
|