2023-08-16 00:20:26 +10:00
|
|
|
# SPDX-FileCopyrightText: 2011 Blender Authors
|
2023-06-14 22:49:59 +10:00
|
|
|
#
|
2022-02-11 14:23:56 +11:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
|
|
2020-07-31 09:34:26 -06:00
|
|
|
# - Find GMP library
|
|
|
|
|
# Find the native GMP includes and library
|
|
|
|
|
# This module defines
|
|
|
|
|
# GMP_INCLUDE_DIRS, where to find gmp.h, Set when
|
|
|
|
|
# GMP_INCLUDE_DIR is found.
|
|
|
|
|
# GMP_LIBRARIES, libraries to link against to use GMP.
|
|
|
|
|
# GMP_ROOT_DIR, The base directory to search for GMP.
|
|
|
|
|
# This can also be an environment variable.
|
|
|
|
|
# GMP_FOUND, If false, do not try to use GMP.
|
|
|
|
|
#
|
|
|
|
|
# also defined, but not for general use are
|
|
|
|
|
# GMP_LIBRARY, where to find the GMP library.
|
|
|
|
|
|
2023-07-29 13:47:55 +10:00
|
|
|
# If `GMP_ROOT_DIR` was defined in the environment, use it.
|
2023-08-17 13:15:56 +10:00
|
|
|
if(DEFINED GMP_ROOT_DIR)
|
2023-07-29 13:47:55 +10:00
|
|
|
# Pass.
|
2023-08-17 13:15:56 +10:00
|
|
|
elseif(DEFINED ENV{GMP_ROOT_DIR})
|
|
|
|
|
set(GMP_ROOT_DIR $ENV{GMP_ROOT_DIR})
|
|
|
|
|
else()
|
|
|
|
|
set(GMP_ROOT_DIR "")
|
|
|
|
|
endif()
|
2020-07-31 09:34:26 -06:00
|
|
|
|
2023-08-17 13:15:56 +10:00
|
|
|
set(_gmp_SEARCH_DIRS
|
2020-07-31 09:34:26 -06:00
|
|
|
${GMP_ROOT_DIR}
|
|
|
|
|
/opt/lib/gmp
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-17 13:15:56 +10:00
|
|
|
find_path(GMP_INCLUDE_DIR
|
2020-07-31 09:34:26 -06:00
|
|
|
NAMES
|
|
|
|
|
gmp.h
|
|
|
|
|
HINTS
|
|
|
|
|
${_gmp_SEARCH_DIRS}
|
|
|
|
|
PATH_SUFFIXES
|
|
|
|
|
include/gmp
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-17 13:15:56 +10:00
|
|
|
find_path(GMPXX_INCLUDE_DIR
|
2020-07-31 09:34:26 -06:00
|
|
|
NAMES
|
|
|
|
|
gmpxx.h
|
|
|
|
|
HINTS
|
|
|
|
|
${_gmp_SEARCH_DIRS}
|
|
|
|
|
PATH_SUFFIXES
|
|
|
|
|
include/gmp
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-17 13:15:56 +10:00
|
|
|
find_library(GMP_LIBRARY
|
2020-07-31 09:34:26 -06:00
|
|
|
NAMES
|
|
|
|
|
gmp
|
|
|
|
|
HINTS
|
|
|
|
|
${_gmp_SEARCH_DIRS}
|
|
|
|
|
PATH_SUFFIXES
|
|
|
|
|
lib64 lib
|
2025-01-03 13:23:38 +11:00
|
|
|
)
|
2020-07-31 09:34:26 -06:00
|
|
|
|
2023-08-17 13:15:56 +10:00
|
|
|
find_library(GMPXX_LIBRARY
|
2020-07-31 09:34:26 -06:00
|
|
|
NAMES
|
|
|
|
|
gmpxx
|
|
|
|
|
HINTS
|
|
|
|
|
${_gmp_SEARCH_DIRS}
|
|
|
|
|
PATH_SUFFIXES
|
|
|
|
|
lib64 lib
|
2025-01-03 13:23:38 +11:00
|
|
|
)
|
2020-07-31 09:34:26 -06:00
|
|
|
|
|
|
|
|
if(GMP_INCLUDE_DIR)
|
2023-08-17 13:15:56 +10:00
|
|
|
set(_version_regex "^#define[ \t]+__GNU_MP_VERSION[ \t]+\"([^\"]+)\".*")
|
2020-07-31 09:34:26 -06:00
|
|
|
file(STRINGS "${GMP_INCLUDE_DIR}/gmp.h"
|
|
|
|
|
GMP_VERSION REGEX "${_version_regex}")
|
|
|
|
|
string(REGEX REPLACE "${_version_regex}" "\\1"
|
|
|
|
|
GMP_VERSION "${GMP_VERSION}")
|
|
|
|
|
unset(_version_regex)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# handle the QUIETLY and REQUIRED arguments and set GMP_FOUND to TRUE if
|
|
|
|
|
# all listed variables are TRUE
|
2023-08-17 13:15:56 +10:00
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
|
find_package_handle_standard_args(GMP DEFAULT_MSG
|
2025-01-03 13:23:38 +11:00
|
|
|
GMP_LIBRARY GMPXX_LIBRARY GMP_INCLUDE_DIR GMPXX_INCLUDE_DIR)
|
2020-07-31 09:34:26 -06:00
|
|
|
|
2023-08-17 13:15:56 +10:00
|
|
|
if(GMP_FOUND)
|
|
|
|
|
set(GMP_LIBRARIES ${GMPXX_LIBRARY} ${GMP_LIBRARY})
|
|
|
|
|
set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR} ${GMPXX_INCLUDE_DIR})
|
|
|
|
|
endif()
|
2020-07-31 09:34:26 -06:00
|
|
|
|
2023-08-17 13:15:56 +10:00
|
|
|
mark_as_advanced(
|
2020-07-31 09:34:26 -06:00
|
|
|
GMP_INCLUDE_DIR
|
|
|
|
|
GMP_LIBRARY
|
|
|
|
|
GMPXX_INCLUDE_DIR
|
|
|
|
|
GMPXX_LIBRARY
|
|
|
|
|
)
|
2024-03-08 10:53:03 +11:00
|
|
|
|
|
|
|
|
unset(_gmp_SEARCH_DIRS)
|