1 # Try to find the GMP librairies
2 # GMP_FOUND - system has GMP lib
3 # GMP_INCLUDE_DIR - the GMP include directory
4 # GMP_LIBRARIES - Libraries needed to use GMP
6 # Copyright (c) 2006, Laurent Montel, <montel@kde.org>
7 # Adjusted by Alexei Sheplyakov.
8 # Redistribution and use is allowed according to the terms of the BSD license.
11 if (GMP_INCLUDE_DIR AND GMP_LIBRARIES)
12 # Already in cache, be silent
13 set(GMP_FIND_QUIETLY TRUE)
14 endif (GMP_INCLUDE_DIR AND GMP_LIBRARIES)
16 find_path(GMP_INCLUDE_DIR NAMES gmp.h)
17 find_library(GMP_LIBRARIES NAMES gmp libgmp)
20 include(FindPackageHandleStandardArgs)
21 FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG GMP_INCLUDE_DIR GMP_LIBRARIES)
23 if (GMP_FOUND AND NOT TARGET gmp::gmp)
24 set(_found_shared_libgmp FALSE)
25 get_filename_component(_gmplib_suffix ${GMP_LIBRARIES} EXT)
26 if (_gmplib_suffix STREQUAL ${CMAKE_STATIC_LIBRARY_SUFFIX})
27 # XXX: msvc has the same suffix both for the static and import libs
28 add_library(gmp::gmp STATIC IMPORTED)
30 set(_found_shared_libgmp TRUE)
31 add_library(gmp::gmp SHARED IMPORTED)
33 set_target_properties(gmp::gmp PROPERTIES
34 INTERFACE_INCLUDE_DIRECTORIES ${GMP_INCLUDE_DIR}
36 if (WIN32 AND _found_shared_libgmp)
37 set_target_properties(gmp::gmp PROPERTIES
38 IMPORTED_IMPLIB ${GMP_LIBRARIES}
41 set_target_properties(gmp::gmp PROPERTIES
42 IMPORTED_LOCATION ${GMP_LIBRARIES}
47 mark_as_advanced(GMP_INCLUDE_DIR GMP_LIBRARIES)