aboutsummaryrefslogtreecommitdiff
path: root/cmake/Modules
diff options
context:
space:
mode:
authorest31 <MTest31@outlook.com>2015-04-12 06:18:48 +0200
committerest31 <MTest31@outlook.com>2015-05-11 17:48:33 +0200
commit181f7baa453c58d4070de7196fd74663110946a8 (patch)
tree3a7f8d55b3d633aa25b66b864fc83272a10197c3 /cmake/Modules
parent58eae43322ffa83f634b4199176f4e1bae0cbcde (diff)
downloadminetest-181f7baa453c58d4070de7196fd74663110946a8.tar.gz
minetest-181f7baa453c58d4070de7196fd74663110946a8.tar.bz2
minetest-181f7baa453c58d4070de7196fd74663110946a8.zip
Add LibGMP
Uses system provided libgmp if found, if not it falls back to mini-gmp.
Diffstat (limited to 'cmake/Modules')
-rw-r--r--cmake/Modules/FindGMP.cmake28
1 files changed, 28 insertions, 0 deletions
diff --git a/cmake/Modules/FindGMP.cmake b/cmake/Modules/FindGMP.cmake
new file mode 100644
index 000000000..bb48289c5
--- /dev/null
+++ b/cmake/Modules/FindGMP.cmake
@@ -0,0 +1,28 @@
+
+option(ENABLE_SYSTEM_GMP "Use GMP from system" TRUE)
+mark_as_advanced(GMP_LIBRARY GMP_INCLUDE_DIR)
+set(USE_SYSTEM_GMP FALSE)
+
+if(ENABLE_SYSTEM_GMP)
+ find_library(GMP_LIBRARY NAMES libgmp.so)
+ find_path(GMP_INCLUDE_DIR NAMES gmp.h)
+
+ if(GMP_LIBRARY AND GMP_INCLUDE_DIR)
+ message (STATUS "Using GMP provided by system.")
+ set(USE_SYSTEM_GMP TRUE)
+ else()
+ message (STATUS "Detecting GMP from system failed.")
+ endif()
+else()
+ message (STATUS "Detecting GMP from system disabled! (ENABLE_SYSTEM_GMP=0)")
+endif()
+
+if(NOT USE_SYSTEM_GMP)
+ message(STATUS "Using bundled mini-gmp library.")
+ set(GMP_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/gmp)
+ set(GMP_LIBRARY gmp)
+ add_subdirectory(gmp)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(GMP DEFAULT_MSG GMP_LIBRARY GMP_INCLUDE_DIR)