From 6dbc4e28dfb233bc61141cf21d472d3dc8aacfdf Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 16 Sep 2026 13:02:30 +0500 Subject: [PATCH] cmake: add minimum required CGAL version --- cmake/CMakeLists.txt | 8 +++++++- cmake/FindCGAL.cmake | 16 ++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 5a5ce2f991..9d84cc777d 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -260,7 +260,13 @@ endforeach() set(SWIG_DEFINES "") if(WITH_CGAL) - find_package(CGAL REQUIRED) + # 5.4 is the version shipped with Ubuntu 22.04. + set(CGAL_MIN_VERSION 5.4) + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15) + # https://github.com/CGAL/cgal/issues/8313 + set(CGAL_MIN_VERSION 5.6.2) + endif() + find_package(CGAL ${CGAL_MIN_VERSION} REQUIRED) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL) list(APPEND GEOMETRY_KERNELS cgal) endif() diff --git a/cmake/FindCGAL.cmake b/cmake/FindCGAL.cmake index 931c20ffc4..438cfa9bed 100644 --- a/cmake/FindCGAL.cmake +++ b/cmake/FindCGAL.cmake @@ -25,12 +25,16 @@ UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR) if(CGAL_INCLUDE_DIR) find_library(libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH) find_library(libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH) - if(NOT libGMP) - message(FATAL_ERROR "Unable to find GMP library files, aborting") - endif() - if(NOT libMPFR) - message(FATAL_ERROR "Unable to find MPFR library files, aborting") - endif() + + file(STRINGS "${CGAL_INCLUDE_DIR}/CGAL/version.h" CGAL_VERSION_LINE REGEX "^#define CGAL_VERSION ") + string(REGEX REPLACE "^#define CGAL_VERSION ([0-9.]+)$" "\\1" CGAL_VERSION "${CGAL_VERSION_LINE}") + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args( + CGAL + REQUIRED_VARS CGAL_INCLUDE_DIR libGMP libMPFR + VERSION_VAR CGAL_VERSION + ) add_library(CGAL::CGAL INTERFACE IMPORTED) target_include_directories(CGAL::CGAL INTERFACE "${CGAL_INCLUDE_DIR}")