bugfix CMakeLists.txt

adding log to example/test to indicate whether Eigen3 or SuiteSparse is used
This commit is contained in:
Sven Oesau 2025-07-17 15:32:23 +02:00
parent 59c253af78
commit 1fab8f77b5
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) 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"); const std::string filename = (argc>1) ? argv[1] : CGAL::data_file_path("meshes/head.off");
SurfaceMesh sm; SurfaceMesh sm;

View File

@ -34,9 +34,11 @@ if(TARGET CGAL::Eigen3_support)
target_link_libraries(square_border_parameterizer PUBLIC CGAL::Eigen3_support) target_link_libraries(square_border_parameterizer PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program( "iterative_authalic_parameterizer.cpp" ) create_single_source_cgal_program( "iterative_authalic_parameterizer.cpp" )
target_link_libraries(iterative_authalic_parameterizer PUBLIC CGAL::Eigen3_support) target_link_libraries(iterative_authalic_parameterizer PUBLIC CGAL::Eigen3_support)
if(SuiteSparse_FOUND) if(TARGET SuiteSparse::UMFPACK)
target_link_libraries(ARAP_parameterization PRIVATE ${SuiteSparse_LIBRARIES}) target_link_libraries(ARAP_parameterization PRIVATE SuiteSparse::UMFPACK)
target_link_libraries(orbifold PRIVATE ${SuiteSparse_LIBRARIES}) 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() endif()
else() else()

View File

@ -6,11 +6,24 @@ project(Surface_mesh_parameterization_Tests)
# Find CGAL # Find CGAL
find_package(CGAL REQUIRED) 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) find_package(Eigen3 3.1.0 QUIET) #(requires 3.1.0 or greater)
include(CGAL_Eigen3_support) include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support) if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("extensive_parameterization_test.cpp") create_single_source_cgal_program("extensive_parameterization_test.cpp")
target_link_libraries(extensive_parameterization_test PUBLIC CGAL::Eigen3_support) 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() else()
message("NOTICE: The tests require Eigen 3.1 (or greater), and will not be compiled.") message("NOTICE: The tests require Eigen 3.1 (or greater), and will not be compiled.")
endif() endif()

View File

@ -78,6 +78,11 @@ typedef boost::graph_traits<SM_Seam_mesh>::halfedge_descriptor SM_SE_halfedge
int main(int, char**) 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); std::cout.precision(17);
CGAL::IO::set_pretty_mode(std::cout); CGAL::IO::set_pretty_mode(std::cout);