فهرست منبع

comiso now links statically if found, build is likely to be broken on windows due to the lack of blas

Former-commit-id: 8558b40e2b3e7bcc9c3f49c38c0cf9d08932fb6d
Daniele Panozzo 9 سال پیش
والد
کامیت
9e6d6f2e86

+ 1 - 1
optional/CMakeLists.txt

@@ -61,7 +61,7 @@ endif(Boost_FOUND)
 
 
 ## Check for CoMiSo, if not available skip the examples that depends on it
-find_package(LIBCOMISO QUIET)
+find_package(LIBCOMISOH QUIET)
 if (LIBCOMISO_FOUND)
   include_directories( ${LIBCOMISO_INCLUDE_DIRS})
 endif(LIBCOMISO_FOUND)

+ 1 - 6
tutorial/504_NRosyDesign/CMakeLists.txt

@@ -3,14 +3,9 @@ project(504_NRosyDesign)
 
 include("../CMakeLists.shared")
 
-find_package(LIBCOMISO REQUIRED)
-
-include_directories( ${LIBCOMISO_INCLUDE_DIR}
-                     ${LIBCOMISO_INCLUDE_DIRS} )
-
 set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
 add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})
+target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES})

+ 1 - 6
tutorial/505_MIQ/CMakeLists.txt

@@ -3,14 +3,9 @@ project(505_MIQ)
 
 include("../CMakeLists.shared")
 
-find_package(LIBCOMISO REQUIRED)
-
-include_directories( ${LIBCOMISO_INCLUDE_DIR}
-                     ${LIBCOMISO_INCLUDE_DIRS} )
-
 set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
 add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})
+target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES})

+ 1 - 0
tutorial/505_MIQ/main.cpp

@@ -18,6 +18,7 @@
 Eigen::MatrixXd V;
 Eigen::MatrixXi F;
 
+
 // Face barycenters
 Eigen::MatrixXd B;
 

+ 1 - 6
tutorial/506_FrameField/CMakeLists.txt

@@ -3,14 +3,9 @@ project(506_FrameField)
 
 include("../CMakeLists.shared")
 
-find_package(LIBCOMISO REQUIRED)
-
-include_directories( ${LIBCOMISO_INCLUDE_DIR}
-                     ${LIBCOMISO_INCLUDE_DIRS} )
-
 set(SOURCES
 ${PROJECT_SOURCE_DIR}/main.cpp
 )
 
 add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES})
-target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES} ${LIBCOMISO_LIBRARY})
+target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES})

+ 20 - 1
tutorial/CMakeLists.txt

@@ -23,7 +23,7 @@ ENDIF(MSVC)
 find_package(CORK QUIET)
 find_package(CGAL QUIET)
 find_package(EMBREE QUIET)
-find_package(LIBCOMISO QUIET)
+find_package(LIBCOMISOH QUIET)
 find_package(MATLAB QUIET)
 find_package(MOSEK QUIET)
 find_package(TETGEN QUIET)
@@ -41,6 +41,7 @@ if(LIBIGL_USE_STATIC_LIBRARY)
 endif(LIBIGL_USE_STATIC_LIBRARY)
 include_directories("../include")
 
+# if(True)
 #Compile nanogui
 add_subdirectory("../external/nanogui/" "nanogui")
 include_directories("../external/nanogui/include")
@@ -67,6 +68,24 @@ add_subdirectory("../external/embree/" "embree")
 include_directories("../external/embree/include")
 list(APPEND SHARED_LIBRARIES "embree")
 
+# endif(True)
+
+#Compile CoMISo (if found)
+# NOTE: this cmakefile works only with the
+# comiso available here: https://github.com/libigl/CoMISo
+IF(LIBCOMISO_FOUND)
+  include_directories("../../CoMISo/ext/gmm-4.2/include")
+  include_directories("../../")
+  add_subdirectory("../../CoMISo/" "CoMISo")
+
+  if(APPLE)
+    find_library(accelerate_library Accelerate)
+    list(APPEND SHARED_LIBRARIES "CoMISo" ${accelerate_library})
+  else(APPLE) #APPLE
+    list(APPEND SHARED_LIBRARIES "CoMISo")
+  endif(APPLE)
+
+ENDIF(LIBCOMISO_FOUND)
 
 message(STATUS "Linking with: ${LIBIGL_LIBRARIES}")
 list(APPEND SHARED_LIBRARIES ${LIBIGL_LIBRARIES})

+ 61 - 0
tutorial/cmake/FindLIBCOMISOH.cmake

@@ -0,0 +1,61 @@
+# - Try to find the LIBCOMISO library
+# Once done this will define
+#
+#  LIBCOMISO_FOUND - system has LIBCOMISO
+#  LIBCOMISO_INCLUDE_DIR - the LIBCOMISO include directory
+#  LIBCOMISO_LIBRARY - the LIBCOMISO binary lib
+
+FIND_PATH(LIBCOMISO_INCLUDE_DIR CoMISo/Solver/ConstrainedSolver.hh
+   /usr/include
+   /usr/local/include
+   $ENV{LIBCOMISOROOT}/include
+   $ENV{LIBCOMISO_ROOT}/include
+   $ENV{LIBCOMISO_DIR}/include
+   $ENV{LIBCOMISO_DIR}/inc
+   ${PROJECT_SOURCE_DIR}/../
+   ${PROJECT_SOURCE_DIR}/../../
+   ${PROJECT_SOURCE_DIR}/../../../
+   ${PROJECT_SOURCE_DIR}/../CoMISo/
+   ${PROJECT_SOURCE_DIR}/../CoMISo/include
+   ${PROJECT_SOURCE_DIR}/../../CoMISo/
+   ${PROJECT_SOURCE_DIR}/../../CoMISo/include
+   /Users/daniele/Dropbox/igl/MIQ/src
+   /Users/olkido/Documents/igl/MIQ/src
+)
+
+SET(LIBCOMISO_FOUND "NO")
+IF (COMISO_INCLUDE_DIR)
+	SET(LIBCOMISO_FOUND "YES")
+ENDIF (COMISO_INCLUDE_DIR)
+
+
+
+if(LIBCOMISO_INCLUDE_DIR)
+
+   #message("${LIBCOMISO_INCLUDE_DIR}")
+
+   set(LIBCOMISO_INCLUDE_DIRS
+      ${LIBCOMISO_INCLUDE_DIR}
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/Solver
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/EigenSolver
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/NSolver
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/Config
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/Utils
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/QtWidgets
+      ${LIBCOMISO_INCLUDE_DIR}/CoMISo/gmm/include
+      )
+
+   #message("${LIBCOMISO_INCLUDE_DIRS}")
+
+   set(LIBCOMISO_INCLUDE_DIR ${LIBCOMISO_INCLUDE_DIR})
+
+   add_definitions(-DINCLUDE_TEMPLATES)
+   message(STATUS "Found LIBCOMISO: ${LIBCOMISO_INCLUDE_DIR}")
+   set(LIBCOMISO_FOUND TRUE)
+else(LIBCOMISO_INCLUDE_DIR)
+  if (NOT LIBCOMISOH_FIND_QUIETLY)
+   message(FATAL_ERROR "could NOT find LIBCOMISO")
+ endif (NOT LIBCOMISO_FIND_QUIETLY)
+
+endif(LIBCOMISO_INCLUDE_DIR)