Explorar o código

bump cgal, boost; rm gmp, mpfr (#2431)

* bump cgal; boost; mpf4; (mpfr+gmp may no longer be needed)

* actually use boost from cmake

* rm gmp mpfr 🎉

* try to tell cgal to use boost

* explicitly disable gmp

* rm gmp templates

* actually remove them
Alec Jacobson hai 1 ano
pai
achega
5067c8b7eb

+ 0 - 95
cmake/find/FindGMP.cmake

@@ -1,95 +0,0 @@
-# Try to find the GNU Multiple Precision Arithmetic Library (GMP)
-# See http://gmplib.org/
-
-if(${CMAKE_VERSION} VERSION_LESS "3.18.0")
-    set(REQUIRED_FLAG "")
-else()
-    set(REQUIRED_FLAG REQUIRED)
-endif()
-
-# On Windows, we must use the pre-compiled versions downloaded with libigl
-if(WIN32)
-    set(NO_DEFAULT_FLAG NO_DEFAULT_PATH)
-else()
-    set(NO_DEFAULT_FLAG "")
-endif()
-
-find_path(GMP_INCLUDES
-    NAMES
-        gmp.h
-    PATHS
-        ENV GMP_DIR
-        ${INCLUDE_INSTALL_DIR}
-    PATH_SUFFIXES
-        include
-    ${REQUIRED_FLAG}
-    ${NO_DEFAULT_FLAG}
-)
-
-find_library(GMP_LIBRARIES
-    NAMES
-        gmp
-        libgmp-10
-    PATHS
-        ENV GMP_DIR
-        ${LIB_INSTALL_DIR}
-    PATH_SUFFIXES
-        lib
-    ${REQUIRED_FLAG}
-    ${NO_DEFAULT_FLAG}
-)
-
-set(GMP_EXTRA_VARS "")
-if(WIN32)
-    # Find dll file and set IMPORTED_LOCATION to the .dll file
-    find_file(GMP_RUNTIME_LIB
-        NAMES
-            gmp.dll
-            libgmp-10.dll
-        PATHS
-            ENV GMP_DIR
-            ${LIB_INSTALL_DIR}
-        PATH_SUFFIXES
-            lib
-        ${REQUIRED_FLAG}
-        ${NO_DEFAULT_FLAG}
-    )
-    list(APPEND GMP_EXTRA_VARS GMP_RUNTIME_LIB)
-endif()
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(GMP
-    REQUIRED_VARS
-        GMP_INCLUDES
-        GMP_LIBRARIES
-        ${GMP_EXTRA_VARS}
-    REASON_FAILURE_MESSAGE
-        "GMP is not installed on your system. Either install GMP using your preferred package manager, or disable libigl modules that depend on GMP, such as CGAL. See LibiglOptions.cmake.sample for configuration options. Do not forget to delete your <build>/CMakeCache.txt for the changes to take effect."
-)
-mark_as_advanced(GMP_INCLUDES GMP_LIBRARIES)
-
-if(GMP_INCLUDES AND GMP_LIBRARIES AND NOT TARGET gmp::gmp)
-    if(GMP_RUNTIME_LIB)
-        add_library(gmp::gmp SHARED IMPORTED)
-    else()
-        add_library(gmp::gmp UNKNOWN IMPORTED)
-    endif()
-
-    # Set public header location and link language
-    set_target_properties(gmp::gmp PROPERTIES
-        IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-        INTERFACE_INCLUDE_DIRECTORIES "${GMP_INCLUDES}"
-    )
-
-    # Set lib location. On Windows we specify both the .lib and the .dll paths
-    if(GMP_RUNTIME_LIB)
-        set_target_properties(gmp::gmp PROPERTIES
-            IMPORTED_IMPLIB "${GMP_LIBRARIES}"
-            IMPORTED_LOCATION "${GMP_RUNTIME_LIB}"
-        )
-    else()
-        set_target_properties(gmp::gmp PROPERTIES
-            IMPORTED_LOCATION "${GMP_LIBRARIES}"
-        )
-    endif()
-endif()

+ 0 - 95
cmake/find/FindMPFR.cmake

@@ -1,95 +0,0 @@
-# Try to find the MPFR library
-# See http://www.mpfr.org/
-
-if(${CMAKE_VERSION} VERSION_LESS "3.18.0")
-    set(REQUIRED_FLAG "")
-else()
-    set(REQUIRED_FLAG REQUIRED)
-endif()
-
-# On Windows, we must use the pre-compiled versions downloaded with libigl
-if(WIN32)
-    set(NO_DEFAULT_FLAG NO_DEFAULT_PATH)
-else()
-    set(NO_DEFAULT_FLAG "")
-endif()
-
-find_path(MPFR_INCLUDES
-    NAMES
-        mpfr.h
-    PATHS
-        ENV MPFR_DIR
-        ${INCLUDE_INSTALL_DIR}
-    PATH_SUFFIXES
-        include
-    ${REQUIRED_FLAG}
-    ${NO_DEFAULT_FLAG}
-)
-
-find_library(MPFR_LIBRARIES
-    NAMES
-        mpfr
-        libmpfr-4
-    PATHS
-        ENV MPFR_DIR
-        ${LIB_INSTALL_DIR}
-    PATH_SUFFIXES
-        lib
-    ${REQUIRED_FLAG}
-    ${NO_DEFAULT_FLAG}
-)
-
-set(MPFR_EXTRA_VARS "")
-if(WIN32)
-    # Find dll file and set IMPORTED_LOCATION to the .dll file
-    find_file(MPFR_RUNTIME_LIB
-        NAMES
-            mpfr.dll
-            libmpfr-4.dll
-        PATHS
-            ENV MPFR_DIR
-            ${LIB_INSTALL_DIR}
-        PATH_SUFFIXES
-            lib
-        ${REQUIRED_FLAG}
-        ${NO_DEFAULT_FLAG}
-    )
-    list(APPEND MPFR_EXTRA_VARS MPFR_RUNTIME_LIB)
-endif()
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(MPFR
-    REQUIRED_VARS
-        MPFR_INCLUDES
-        MPFR_LIBRARIES
-        ${MPFR_EXTRA_VARS}
-    REASON_FAILURE_MESSAGE
-        "MPFR is not installed on your system. Either install MPFR using your preferred package manager, or disable libigl modules that depend on MPFR, such as CGAL. See LibiglOptions.cmake.sample for configuration options. Do not forget to delete your <build>/CMakeCache.txt for the changes to take effect."
-)
-mark_as_advanced(MPFR_INCLUDES MPFR_LIBRARIES)
-
-if(MPFR_INCLUDES AND MPFR_LIBRARIES AND NOT TARGET mpfr::mpfr)
-    if(MPFR_RUNTIME_LIB)
-        add_library(mpfr::mpfr SHARED IMPORTED)
-    else()
-        add_library(mpfr::mpfr UNKNOWN IMPORTED)
-    endif()
-
-    # Set public header location and link language
-    set_target_properties(mpfr::mpfr PROPERTIES
-        IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-        INTERFACE_INCLUDE_DIRECTORIES "${MPFR_INCLUDES}"
-    )
-
-    # Set lib location. On Windows we specify both the .lib and the .dll paths
-    if(MPFR_RUNTIME_LIB)
-        set_target_properties(mpfr::mpfr PROPERTIES
-            IMPORTED_IMPLIB "${MPFR_LIBRARIES}"
-            IMPORTED_LOCATION "${MPFR_RUNTIME_LIB}"
-        )
-    else()
-        set_target_properties(mpfr::mpfr PROPERTIES
-            IMPORTED_LOCATION "${MPFR_LIBRARIES}"
-        )
-    endif()
-endif()

+ 22 - 26
cmake/recipes/external/boost.cmake

@@ -4,32 +4,27 @@ endif()
 
 message(STATUS "Third-party: creating targets 'Boost::boost'...")
 
+cmake_minimum_required(VERSION 3.24) # Ensure modern FetchContent features
+project(BoostFetchExample)
+
 include(FetchContent)
+
+# Define the Boost library to fetch
 FetchContent_Declare(
-    boost-cmake
-    GIT_REPOSITORY https://github.com/libigl/boost-cmake.git
-    GIT_TAG 6bcae68ffbaaefad4583a2642ce9ea53e5e01707
+    Boost
+    URL https://boostorg.jfrog.io/artifactory/main/release/1.86.0/source/boost_1_86_0.tar.gz
+    URL_HASH MD5=ac857d73bb754b718a039830b07b9624
 )
+# Fetch Boost
+FetchContent_MakeAvailable(Boost)
 
-set(PREVIOUS_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
-set(OLD_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE})
-set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-
-# This guy will download boost using FetchContent
-FetchContent_GetProperties(boost-cmake)
-if(NOT boost-cmake_POPULATED)
-    FetchContent_Populate(boost-cmake)
-    # File lcid.cpp from Boost_locale.cpp doesn't compile on MSVC, so we exclude them from the default
-    # targets being built by the project (only targets explicitly used by other targets will be built).
-    add_subdirectory(${boost-cmake_SOURCE_DIR} ${boost-cmake_BINARY_DIR} EXCLUDE_FROM_ALL)
-endif()
 
-set(CMAKE_POSITION_INDEPENDENT_CODE ${OLD_CMAKE_POSITION_INDEPENDENT_CODE})
-set(CMAKE_CXX_FLAGS "${PREVIOUS_CMAKE_CXX_FLAGS}")
+# Ensure Boost paths are set before CGAL
+set(Boost_INCLUDE_DIR ${boost_SOURCE_DIR})
+set(Boost_LIBRARY_DIR ${boost_BINARY_DIR})
 
-# Set VS target folders
-set(boost_modules
+# Add Boost libraries needed for your project
+set(BOOST_LIBRARIES
     container
     regex
     atomic
@@ -48,6 +43,7 @@ set(boost_modules
     log_setup
     unit_test_framework
     math
+    multiprecision
     program_options
     timer
     random
@@ -55,10 +51,10 @@ set(boost_modules
     system
     thread
     type_erasure
-)
-foreach(module IN ITEMS ${boost_modules})
-    if(TARGET Boost_${module})
-        set_target_properties(Boost_${module} PROPERTIES FOLDER ThirdParty/Boost)
-    endif()
-endforeach()
+  )
 
+foreach(lib IN LISTS BOOST_LIBRARIES)
+    add_library(boost_${lib} INTERFACE)
+    target_include_directories(boost_${lib} INTERFACE ${Boost_SOURCE_DIR})
+    target_link_libraries(boost_${lib} INTERFACE Boost::${lib})
+endforeach()

+ 6 - 14
cmake/recipes/external/cgal.cmake

@@ -7,8 +7,8 @@ message(STATUS "Third-party: creating target 'CGAL::CGAL'")
 include(FetchContent)
 FetchContent_Declare(
     cgal
-    URL https://github.com/CGAL/cgal/releases/download/v5.6/CGAL-5.6-library.tar.xz
-    URL_MD5 793da2d1597f3a5c0e3524f73a0b4039
+    URL https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1-library.tar.xz
+    URL_MD5 ea827f6778063e00554ae41f4c845492
 )
 FetchContent_GetProperties(cgal)
 if(cgal_POPULATED)
@@ -29,29 +29,21 @@ function(cgal_import_target)
         set(${NAME}_ROOT ${CMAKE_CURRENT_BINARY_DIR}/${NAME} CACHE PATH "")
     endmacro()
 
-    include(gmp)
-    include(mpfr)
     include(boost)
 
-    ignore_package(GMP 5.0.1)
-    set(GMP_INCLUDE_DIR ${gmp_INCLUDE_DIR})
-    set(GMP_LIBRARIES gmp::gmp)
-    set(GMPXX_INCLUDE_DIR ${GMP_INCLUDE_DIR})
-    set(GMPXX_LIBRARIES ${GMP_LIBRARIES})
-
-    ignore_package(MPFR 3.0.0)
-    set(MPFR_INCLUDE_DIR "")
-    set(MPFR_LIBRARIES mpfr::mpfr)
 
     ignore_package(Boost 1.71.0)
     set(Boost_INCLUDE_DIRS "")
-    set(Boost_LIBRARIES Boost::thread Boost::system)
+    set(Boost_LIBRARIES Boost::thread Boost::system Boost::multiprecision)
 
     # Prefer Config mode before Module mode to prevent CGAL from loading its own FindXXX.cmake
     set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE)
 
     # https://stackoverflow.com/a/71714947/148668
     set(CGAL_DATA_DIR "unspecified")
+
+    set(CGAL_CMAKE_EXACT_NT_BACKEND "BOOST_BACKEND" CACHE STRING "CGAL exact NT backend")
+    set(CGAL_DISABLE_GMP ON CACHE BOOL "Disable GMP")
     find_package(CGAL CONFIG COMPONENTS Core PATHS ${cgal_SOURCE_DIR} NO_DEFAULT_PATH)
 endfunction()
 

+ 0 - 96
cmake/recipes/external/gmp.cmake

@@ -1,96 +0,0 @@
-if(TARGET gmp::gmp)
-    return()
-endif()
-
-# Download precompiled .dll on Windows
-if(WIN32)
-  include(gmp_mpfr)
-  # Find_package will look for our downloaded lib on Windows, and system-wide on Linux/macOS
-  find_package(GMP REQUIRED)
-else()
-  message(STATUS "Third-party: creating target 'gmp::gmp'")
-
-  # SERIOUSLY !?! CMAKE and configure use transposed definitions of "build" and
-  # "host"?
-  #
-  # https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html#variable:CMAKE_SYSTEM_NAME
-  # https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html
-  #
-  # Seems these aren't to be trusted much
-  # https://gitlab.kitware.com/cmake/cmake/-/issues/20989
-  if(APPLE)
-    # https://gmplib.org/list-archives/gmp-discuss/2020-November/006607.html
-    if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
-      set(gmp_BUILD "x86_64-apple-darwin")
-      set(gmp_HOST "arm64-apple-darwin")
-      set(gmp_CFLAGS "--target=arm64-apple-darwin")
-      set(gmp_LDFLAGS "-arch arm64")
-      message(STATUS "GMP Recipe notices building on ${gmp_BUILD} for ${gmp_HOST}")
-    elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" AND CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
-      set(gmp_HOST "x86_64-apple-darwin")
-      set(gmp_BUILD "arm64-apple-darwin")
-      set(gmp_CFLAGS "--target=x86_64-apple-darwin13.0.0")
-      set(gmp_LDFLAGS "")
-      message(STATUS "GMP Recipe notices building on ${gmp_HOST} for ${gmp_BUILD}")
-    endif()
-  endif()
-
-  include(FetchContent)
-  include(ProcessorCount)
-  ProcessorCount(Ncpu)
-  include(ExternalProject)
-  set(prefix ${FETCHCONTENT_BASE_DIR}/gmp)
-  set(gmp_INSTALL ${prefix}/install)
-  set(gmp_LIB_DIR ${gmp_INSTALL}/lib)
-  set(gmp_LIBRARY 
-    ${gmp_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmp${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${gmp_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmpxx${CMAKE_STATIC_LIBRARY_SUFFIX}
-    )
-  set(gmp_INCLUDE_DIR ${gmp_INSTALL}/include)
-
-  # Try to use CONFIGURE_HANDLED_BY_BUILD ON to avoid constantly reconfiguring
-  if(${CMAKE_VERSION} VERSION_LESS 3.20)
-    # CMake < 3.20, do not use any extra option
-    set(gmp_ExternalProject_Add_extra_options)
-  else()
-    # CMake >= 3.20
-    set(gmp_ExternalProject_Add_extra_options "CONFIGURE_HANDLED_BY_BUILD;ON")
-  endif()
-
-  ExternalProject_Add(gmp
-    PREFIX ${prefix}
-    URL  https://github.com/alisw/GMP/archive/refs/tags/v6.2.1.tar.gz
-    URL_MD5 f060ad4e762ae550d16f1bb477aadba5
-    UPDATE_DISCONNECTED true  # need this to avoid constant rebuild
-    PATCH_COMMAND 
-      curl "https://gist.githubusercontent.com/alecjacobson/d34d9307c17d1b853571699b9786e9d1/raw/8d14fc21cb7654f51c2e8df4deb0f82f9d0e8355/gmp-patch" "|" git apply -v
-    ${gmp_ExternalProject_Add_extra_options}
-    CONFIGURE_COMMAND 
-     ${CMAKE_COMMAND} -E env
-      CFLAGS=${gmp_CFLAGS}
-     LDFLAGS=${gmp_LDFLAGS}
-      ${prefix}/src/gmp/configure 
-      --disable-debug --disable-dependency-tracking --enable-cxx --with-pic
-      --prefix=${gmp_INSTALL}
-      --build=${gmp_BUILD}
-      --host=${gmp_HOST}
-      --disable-shared
-    BUILD_COMMAND make -j${Ncpu}
-    INSTALL_COMMAND make -j${Ncpu} install
-    INSTALL_DIR ${gmp_INSTALL}
-    TEST_COMMAND ""
-    BUILD_BYPRODUCTS ${gmp_LIBRARY}
-  )
-  ExternalProject_Get_Property(gmp SOURCE_DIR)
-  set(gmp_LIBRARIES ${gmp_LIBRARY})
-  add_library(gmp::gmp INTERFACE IMPORTED GLOBAL)
-  file(MAKE_DIRECTORY ${gmp_INCLUDE_DIR})  # avoid race condition
-  target_include_directories(gmp::gmp INTERFACE ${gmp_INCLUDE_DIR})
-  target_link_libraries(gmp::gmp INTERFACE "${gmp_LIBRARIES}")  # need the quotes to expand list
-  add_dependencies(gmp::gmp gmp)
-
-endif()
-
-if(NOT TARGET gmp::gmp)
-    message(FATAL_ERROR "Creation of target 'gmp::gmp' failed")
-endif()

+ 0 - 34
cmake/recipes/external/gmp_mpfr.cmake

@@ -1,34 +0,0 @@
-if(WIN32)
-    message(STATUS "Third-party: downloading gmp + mpfr")
-
-    include(FetchContent)
-
-    # CGAL 5+ ships with a single .zip combining GMP + MPFR's precompiled dlls.
-    # For now we still download them separately.
-
-    FetchContent_Declare(
-        gmp
-        URL     https://cgal.geometryfactory.com/CGAL/precompiled_libs/auxiliary/x64/GMP/5.0.1/gmp-all-CGAL-3.9.zip
-        URL_MD5 508c1292319c832609329116a8234c9f
-    )
-    FetchContent_MakeAvailable(gmp)
-
-    FetchContent_Declare(
-        mpfr
-        URL https://cgal.geometryfactory.com/CGAL/precompiled_libs/auxiliary/x64/MPFR/3.0.0/mpfr-all-CGAL-3.9.zip
-        URL_MD5 48840454eef0ff18730050c05028734b
-    )
-    FetchContent_MakeAvailable(mpfr)
-
-    # FetchContent_Declare(
-    #     gmp_mpfr
-    #     URL https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip
-    #     URL_MD5 247f4dca741c6b9a9be76286414070fa
-    # )
-
-    # For CGAL
-    set(ENV{GMP_DIR} "${gmp_SOURCE_DIR}")
-    set(ENV{MPFR_DIR} "${mpfr_SOURCE_DIR}")
-else()
-    # On Linux/macOS, gmp+mpfr will be fetched and compiled
-endif()

+ 0 - 91
cmake/recipes/external/mpfr.cmake

@@ -1,91 +0,0 @@
-# Expects
-#   gmp_INCLUDE_DIR
-#   gmp_LIB_DIR
-#   gmp_LIBRARIES
-if(TARGET mpfr::mpfr)
-    return()
-endif()
-
-# Download precompiled .dll on Windows
-if(WIN32)
-  include(gmp_mpfr)
-  # Find_package will look for our downloaded lib on Windows, and system-wide on Linux/macOS
-  find_package(MPFR REQUIRED)
-else()
-  message(STATUS "Third-party: creating target 'mpfr::mpfr'")
-
-  # Praying this will work the same as gmp
-  if(APPLE)
-    # https://gmplib.org/list-archives/gmp-discuss/2020-November/006607.html
-    if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
-      set(mpfr_BUILD "x86_64-apple-darwin")
-      set(mpfr_HOST "arm64-apple-darwin")
-      set(mpfr_CFLAGS "--target=arm64-apple-darwin")
-      set(mpfr_LDFLAGS "-arch arm64")
-    elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" AND CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
-      set(mpfr_HOST "x86_64-apple-darwin")
-      set(mpfr_BUILD "arm64-apple-darwin")
-      set(mpfr_CFLAGS "--target=x86_64-apple-darwin13.0.0")
-      set(mpfr_LDFLAGS "")
-    endif()
-  endif()
-
-  include(FetchContent)
-  include(ProcessorCount)
-  ProcessorCount(Ncpu)
-  include(ExternalProject)
-  set(prefix ${FETCHCONTENT_BASE_DIR}/mpfr)
-  set(mpfr_INSTALL ${prefix}/install)
-  set(mpfr_LIBRARY ${mpfr_INSTALL}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}mpfr${CMAKE_STATIC_LIBRARY_SUFFIX})
-  set(mpfr_INCLUDE_DIR ${mpfr_INSTALL}/include)
-
-  # Try to use CONFIGURE_HANDLED_BY_BUILD ON to avoid constantly reconfiguring
-  if(${CMAKE_VERSION} VERSION_LESS 3.20)
-    # CMake < 3.20, do not use any extra option
-    set(mpfr_ExternalProject_Add_extra_options)
-  else()
-    # CMake >= 3.20
-    set(mpfr_ExternalProject_Add_extra_options "CONFIGURE_HANDLED_BY_BUILD;ON")
-  endif()
-
-  ExternalProject_Add(mpfr
-    PREFIX ${prefix}
-    DEPENDS gmp
-    URL  https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.0.tar.xz
-    URL_MD5 a25091f337f25830c16d2054d74b5af7
-    UPDATE_DISCONNECTED true  # need this to avoid constant rebuild
-    ${mpfr_ExternalProject_Add_extra_options} # avoid constant reconfigure
-    CONFIGURE_COMMAND 
-     ${CMAKE_COMMAND} -E env
-      CFLAGS=${gmp_CFLAGS}
-     LDFLAGS=${gmp_LDFLAGS}
-      ${prefix}/src/mpfr/configure 
-      --disable-debug --disable-dependency-tracking  --disable-silent-rules --enable-cxx --with-pic
-      --with-gmp-include=${gmp_INCLUDE_DIR} --with-gmp-lib=${gmp_LIB_DIR}
-      --disable-shared
-      --prefix=${mpfr_INSTALL}
-      --build=${gmp_BUILD}
-      --host=${gmp_HOST}
-      --disable-shared
-    BUILD_COMMAND make -j${Ncpu}
-    INSTALL_COMMAND make -j${Ncpu} install
-    INSTALL_DIR ${mpfr_INSTALL}
-    TEST_COMMAND ""
-    BUILD_BYPRODUCTS ${mpfr_LIBRARY}
-  )
-  #PATCH_COMMAND  curl "https://raw.githubusercontent.com/Homebrew/formula-patches/03cf8088210822aa2c1ab544ed58ea04c897d9c4/libtool/configure-big_sur.diff" "|" sed -e "s/configure.orig/configure/g" "|" git apply -v
-  ExternalProject_Get_Property(mpfr SOURCE_DIR)
-  set(mpfr_LIBRARIES ${mpfr_LIBRARY})
-  add_library(mpfr::mpfr INTERFACE IMPORTED GLOBAL)
-  file(MAKE_DIRECTORY ${mpfr_INCLUDE_DIR})  # avoid race condition
-  target_include_directories(mpfr::mpfr INTERFACE ${mpfr_INCLUDE_DIR})
-  target_link_libraries(mpfr::mpfr INTERFACE "${mpfr_LIBRARIES}")  # need the quotes to expand list
-  # This is necessary to ensure that mpfr appears before gmp in link order.
-  # Otherwise undefined reference errors occur at link time on Linux with gcc
-  target_link_libraries(mpfr::mpfr INTERFACE "${gmp_LIBRARIES}") 
-  add_dependencies(mpfr::mpfr mpfr)
-endif()
-
-if(NOT TARGET mpfr::mpfr)
-    message(FATAL_ERROR "Creation of target 'mpfr::mpfr' failed")
-endif()

+ 0 - 37
include/igl/copyleft/cgal/assign_scalar.cpp

@@ -152,43 +152,6 @@ IGL_INLINE void igl::copyleft::cgal::assign_scalar(
   } while (d < float(interval.second));
 }
 
-#ifndef WIN32
-
-IGL_INLINE void igl::copyleft::cgal::assign_scalar(
-  const CGAL::Simple_cartesian<mpq_class>::FT & cgal,
-  CGAL::Simple_cartesian<mpq_class>::FT & d)
-{
-  d = cgal;
-}
-
-IGL_INLINE void igl::copyleft::cgal::assign_scalar(
-  const CGAL::Simple_cartesian<mpq_class>::FT & cgal,
-  double & d)
-{
-  const auto interval = CGAL::to_interval(cgal);
-  d = interval.first;
-  do {
-      const double next = std::nextafter(d, interval.second);
-      if (CGAL::abs(cgal-d) < CGAL::abs(cgal-next)) break;
-      d = next;
-  } while (d < interval.second);
-}
-
-IGL_INLINE void igl::copyleft::cgal::assign_scalar(
-  const CGAL::Simple_cartesian<mpq_class>::FT & cgal,
-  float& d)
-{
-  const auto interval = CGAL::to_interval(cgal);
-  d = interval.first;
-  do {
-      const float next = std::nextafter(d, float(interval.second));
-      if (CGAL::abs(cgal-d) < CGAL::abs(cgal-next)) break;
-      d = next;
-  } while (d < float(interval.second));
-}
-
-#endif // WIN32
-
 #ifdef IGL_STATIC_LIBRARY
 // Explicit template instantiation
 // generated by autoexplicit.sh

+ 0 - 17
include/igl/copyleft/cgal/assign_scalar.h

@@ -11,9 +11,6 @@
 #include "../../igl_inline.h"
 #include <CGAL/Exact_predicates_exact_constructions_kernel.h>
 #include <CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h>
-#ifndef WIN32
-#include <CGAL/gmpxx.h>
-#endif
 
 namespace igl
 {
@@ -85,20 +82,6 @@ namespace igl
       IGL_INLINE void assign_scalar(
         const CGAL::Exact_predicates_exact_constructions_kernel_with_sqrt::FT & cgal,
         float& d);
-#ifndef WIN32
-      /// \overload
-      IGL_INLINE void assign_scalar(
-        const CGAL::Simple_cartesian<mpq_class>::FT & cgal,
-        CGAL::Simple_cartesian<mpq_class>::FT & d);
-      /// \overload
-      IGL_INLINE void assign_scalar(
-        const CGAL::Simple_cartesian<mpq_class>::FT & cgal,
-        double & d);
-      /// \overload
-      IGL_INLINE void assign_scalar(
-        const CGAL::Simple_cartesian<mpq_class>::FT & cgal,
-        float& d);
-#endif
     }
   }
 }