SuiteSparse: bugfix CMakeLists.txt (#8987)

## Summary of Changes

bugfix of CMake scripts
Adding log to example/test to indicate whether Eigen3 or SuiteSparse is
used

## Release Management

* Affected package(s): Surface_mesh_parameterization
This commit is contained in:
Sebastien Loriot 2025-07-31 14:59:33 +02:00 committed by GitHub
commit ab1426ce0e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 28 additions and 3 deletions

View File

@ -26,6 +26,11 @@ namespace SMP = CGAL::Surface_mesh_parameterization;
int main(int argc, char** argv)
{
#ifdef CGAL_SMP_USE_SUITESPARSE_SOLVERS
std::cout << "Using SuiteSparse" << std::endl;
#else
std::cout << "Using Eigen3" << std::endl;
#endif
const std::string filename = (argc>1) ? argv[1] : CGAL::data_file_path("meshes/head.off");
SurfaceMesh sm;

View File

@ -34,9 +34,11 @@ if(TARGET CGAL::Eigen3_support)
target_link_libraries(square_border_parameterizer PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program( "iterative_authalic_parameterizer.cpp" )
target_link_libraries(iterative_authalic_parameterizer PUBLIC CGAL::Eigen3_support)
if(SuiteSparse_FOUND)
target_link_libraries(ARAP_parameterization PRIVATE ${SuiteSparse_LIBRARIES})
target_link_libraries(orbifold PRIVATE ${SuiteSparse_LIBRARIES})
if(TARGET SuiteSparse::UMFPACK)
target_link_libraries(ARAP_parameterization PRIVATE SuiteSparse::UMFPACK)
target_link_libraries(orbifold PRIVATE PRIVATE SuiteSparse::UMFPACK)
target_compile_definitions(ARAP_parameterization PRIVATE EIGEN_DONT_ALIGN_STATICALLY CGAL_SMP_USE_SUITESPARSE_SOLVERS)
target_compile_definitions(orbifold PRIVATE EIGEN_DONT_ALIGN_STATICALLY CGAL_SMP_USE_SUITESPARSE_SOLVERS)
endif()
else()

View File

@ -6,11 +6,24 @@ project(Surface_mesh_parameterization_Tests)
# Find CGAL
find_package(CGAL REQUIRED)
find_package(UMFPACK QUIET NO_MODULE)
if(TARGET SuiteSparse::UMFPACK)
message(STATUS "Orbifold Tutte Embeddings will use UmfPackLU")
else()
message(STATUS "NOTICE: Examples will be compiled without the SuiteSparse library and UmfPack. Try setting CMAKE_PREFIX_PATH to your SuiteSparse installation.")
endif()
find_package(Eigen3 3.1.0 QUIET) #(requires 3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("extensive_parameterization_test.cpp")
target_link_libraries(extensive_parameterization_test PUBLIC CGAL::Eigen3_support)
if(TARGET SuiteSparse::UMFPACK)
target_link_libraries(extensive_parameterization_test PRIVATE SuiteSparse::UMFPACK)
target_compile_definitions(extensive_parameterization_test PRIVATE EIGEN_DONT_ALIGN_STATICALLY CGAL_SMP_USE_SUITESPARSE_SOLVERS)
endif()
else()
message("NOTICE: The tests require Eigen 3.1 (or greater), and will not be compiled.")
endif()

View File

@ -78,6 +78,11 @@ typedef boost::graph_traits<SM_Seam_mesh>::halfedge_descriptor SM_SE_halfedge
int main(int, char**)
{
#ifdef CGAL_SMP_USE_SUITESPARSE_SOLVERS
std::cout << "Using SuiteSparse" << std::endl;
#else
std::cout << "Using Eigen3" << std::endl;
#endif
std::cout.precision(17);
CGAL::IO::set_pretty_mode(std::cout);