]> www.ginac.de Git - cln.git/blob - cmake/modules/FindGMP.cmake
CLN can be built with CMake
[cln.git] / cmake / modules / FindGMP.cmake
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
5
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.
9
10
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)
15
16 find_path(GMP_INCLUDE_DIR NAMES gmp.h)
17 find_library(GMP_LIBRARIES NAMES gmp libgmp)
18
19
20 include(FindPackageHandleStandardArgs)
21 FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG GMP_INCLUDE_DIR GMP_LIBRARIES)
22
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)
29         else()
30                 set(_found_shared_libgmp TRUE)
31                 add_library(gmp::gmp SHARED IMPORTED)
32         endif()
33         set_target_properties(gmp::gmp PROPERTIES
34                 INTERFACE_INCLUDE_DIRECTORIES ${GMP_INCLUDE_DIR}
35         )
36         if (WIN32 AND _found_shared_libgmp)
37                 set_target_properties(gmp::gmp PROPERTIES
38                         IMPORTED_IMPLIB ${GMP_LIBRARIES}
39                 )
40         else()
41                 set_target_properties(gmp::gmp PROPERTIES
42                         IMPORTED_LOCATION ${GMP_LIBRARIES}
43                 )
44         endif()
45 endif()
46
47 mark_as_advanced(GMP_INCLUDE_DIR GMP_LIBRARIES)
48