From 57a724e80f0a4dc5aee8b8c6bad93187dd632c09 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 20 Nov 2025 16:55:19 +0500 Subject: [PATCH] FindCGAL.cmake --- cmake/CMakeLists.txt | 24 +----------------------- cmake/FindCGAL.cmake | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 23 deletions(-) create mode 100644 cmake/FindCGAL.cmake diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index a0af8835ce..7cd439b7df 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -206,12 +206,6 @@ if(NOT MINIMAL_BUILD) UNIFY_ENVVARS_AND_CACHE(PYTHON_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(PYTHON_LIBRARY) UNIFY_ENVVARS_AND_CACHE(PYTHON_EXECUTABLE) - UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR) - UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR) - UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR) endif() # Get a list of all OPTION flags from the CMakeLists.txt @@ -223,28 +217,12 @@ foreach(option_flag IN LISTS option_flags) endforeach() if(WITH_CGAL) - if(NOT CGAL_INCLUDE_DIR) - # CGAL is not respecting default Boost_USE_STATIC_LIBS value - # and sometiems it's getting in the way. - if(NOT DEFINED Boost_USE_STATIC_LIBS) - set(CGAL_Boost_USE_STATIC_LIBS OFF) - else() - set(CGAL_Boost_USE_STATIC_LIBS "${Boost_USE_STATIC_LIBS}") - endif() find_package(CGAL REQUIRED) - if(NOT CGAL_DIR) - message( - FATAL_ERROR - "CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found." - ) - endif() - message(STATUS "CGAL: found config at '${CGAL_DIR}'.") + if(TARGET CGAL::CGAL) link_libraries(CGAL::CGAL) endif() - add_definitions(-DIFOPSH_WITH_CGAL) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL) - list(APPEND GEOMETRY_KERNELS cgal) endif() diff --git a/cmake/FindCGAL.cmake b/cmake/FindCGAL.cmake new file mode 100644 index 0000000000..caf13ec791 --- /dev/null +++ b/cmake/FindCGAL.cmake @@ -0,0 +1,42 @@ +# +# Input variables: +# - `CGAL_INCLUDE_DIR` +# - `CGAL_LIBRARY_DIR` +# - `GMP_INCLUDE_DIR` +# - `GMP_LIBRARY_DIR` +# - `MPFR_INCLUDE_DIR` +# - `MPFR_LIBRARY_DIR` +# If input variables are not specified, try to find HDF5 config. +# Input variables could also be provided as environment variables. +# +# Output variables: +# - `CGAL_INCLUDE_DIR` +# + +UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR) +UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR) +UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR) + +if(NOT CGAL_INCLUDE_DIR) + # CGAL is not respecting default Boost_USE_STATIC_LIBS value + # and sometiems it's getting in the way. + if(NOT DEFINED Boost_USE_STATIC_LIBS) + set(CGAL_Boost_USE_STATIC_LIBS OFF) + else() + set(CGAL_Boost_USE_STATIC_LIBS "${Boost_USE_STATIC_LIBS}") + endif() + find_package(CGAL CONFIG REQUIRED) + if(NOT CGAL_DIR) + message( + FATAL_ERROR + "CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found." + ) + endif() + message(STATUS "CGAL: found config at '${CGAL_DIR}'.") +endif() + +add_definitions(-DIFOPSH_WITH_CGAL) +set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL)