enhance the conditional build of the edit plugin

This commit is contained in:
Sébastien Loriot 2013-06-27 10:35:20 +02:00
parent a72ba8fac3
commit abae9100f0
3 changed files with 21 additions and 21 deletions

View File

@ -120,7 +120,6 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
qt4_wrap_ui( PreferencesUI_FILES Preferences.ui )
qt4_wrap_ui( point_inside_polyhedronUI_FILES Point_inside_polyhedron_widget.ui)
qt4_wrap_ui( polyhedron_slicerUI_FILES Polyhedron_slicer_widget.ui)
qt4_wrap_ui( editionUI_FILES Deform_mesh.ui )
qt4_wrap_ui( funcUI_FILES Function_dialog.ui )
qt4_generate_moc( "MainWindow.h" "${CMAKE_CURRENT_BINARY_DIR}/MainWindow_moc.cpp" )
@ -145,7 +144,6 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
Scene_polyhedron_item.cpp
Scene_polyhedron_transform_item.cpp
Scene_polylines_item.cpp
Scene_edit_polyhedron_item.cpp
Scene_textured_polyhedron_item.cpp
Scene_c2t3_item.cpp
Scene_nef_polyhedron_item.cpp
@ -212,11 +210,6 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
add_item(custom_manipulated_frame Custom_manipulated_frame.cpp Custom_manipulated_frame.moc)
add_item(scene_edit_polyhedron_item Scene_edit_polyhedron_item.cpp Scene_edit_polyhedron_item.moc ${editionUI_FILES})
# special
target_link_libraries(scene_edit_polyhedron_item scene_polyhedron_item custom_manipulated_frame)
if(EIGEN3_FOUND OR TAUCS_FOUND)
add_item(scene_textured_polyhedron_item Scene_textured_polyhedron_item.cpp texture.cpp Scene_textured_polyhedron_item.moc)
endif(EIGEN3_FOUND OR TAUCS_FOUND)
@ -418,9 +411,18 @@ if(CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
polyhedron_demo_plugin(trivial_plugin Polyhedron_demo_trivial_plugin)
if(TAUCS_FOUND OR EIGEN3_FOUND )
# Edit polyhedron scene item and plugin
if ( TAUCS_FOUND OR ( EIGEN3_FOUND AND ( SUPERLU_FOUND OR ( "${EIGEN3_VERSION}" VERSION_GREATER "3.1.90" ) ) ) )
qt4_wrap_ui( editionUI_FILES Deform_mesh.ui )
qt4_automoc( Scene_edit_polyhedron_item.cpp )
add_item(scene_edit_polyhedron_item Scene_edit_polyhedron_item.cpp Scene_edit_polyhedron_item.moc ${editionUI_FILES})
target_link_libraries(scene_edit_polyhedron_item scene_polyhedron_item custom_manipulated_frame)
polyhedron_demo_plugin(edit_polyhedron_plugin Polyhedron_demo_edit_polyhedron_plugin ${editionUI_FILES})
target_link_libraries(edit_polyhedron_plugin scene_polyhedron_item scene_edit_polyhedron_item)
else()
message(STATUS "NOTICE: Nor Eigen 3.1.91, nor Eigen 3.1 and SuperLU, nor TAUCS were found. Polyhedron edit plugin will not be available.")
endif()
polyhedron_demo_plugin(cut_plugin Polyhedron_demo_cut_plugin)

View File

@ -20,9 +20,14 @@
#define CGAL_EIGEN_SOLVER_TRAITS_H
#include <CGAL/basic.h> // include basic.h before testing #defines
#include <Eigen/Sparse>
#if EIGEN_VERSION_AT_LEAST(3, 1, 91)
#include <Eigen/SparseLU>
#endif
#if defined(CGAL_SUPERLU_ENABLED)
#include <Eigen/SuperLUSupport>
#endif
#include <CGAL/Eigen_matrix.h>
#include <CGAL/Eigen_vector.h>
#include <boost/shared_ptr.hpp>
@ -45,11 +50,12 @@ namespace internal {
struct Get_eigen_matrix< ::Eigen::SimplicialCholesky<EigenMatrix>,FT>{
typedef Eigen_sparse_symmetric_matrix<FT> type;
};
#if EIGEN_VERSION_AT_LEAST(3, 1, 91)
template <class FT, class EigenMatrix, class EigenOrdering>
struct Get_eigen_matrix< ::Eigen::SparseLU<EigenMatrix, EigenOrdering >, FT> {
typedef Eigen_sparse_matrix<FT> type;
};
#endif
} //internal
/// The class Eigen_solver_traits

View File

@ -36,15 +36,7 @@
// for default parameters
#if defined(CGAL_EIGEN3_ENABLED)
#include <CGAL/Eigen_solver_traits.h> // for sparse linear system solver
#include <CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h> // for 3x3 closest rotation computer
#if defined(CGAL_SUPERLU_ENABLED)
#include <Eigen/SuperLUSupport>
#else
#include <Eigen/SparseLU>
#endif
#include <CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h> // for 3x3 closest rotation computer
#endif
namespace CGAL {