diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt new file mode 100644 index 000000000..b85fd550a --- /dev/null +++ b/cmake/CMakeLists.txt @@ -0,0 +1,351 @@ +cmake_minimum_required(VERSION 2.6) +project(libigl) + +### Available options ### +option(LIBIGL_USE_STATIC_LIBRARY "Use libIGL as static library" OFF) +option(LIBIGL_WITH_BBW "Use BBW" OFF) +option(LIBIGL_WITH_BOOLEAN "Use Cork boolean" OFF) +option(LIBIGL_WITH_CGAL "Use CGAL" OFF) +option(LIBIGL_WITH_COMISO "Use CoMiso" OFF) +option(LIBIGL_WITH_EMBREE "Use Embree" OFF) +option(LIBIGL_WITH_LIM "Use LIM" OFF) +option(LIBIGL_WITH_MATLAB "Use Matlab" OFF) +option(LIBIGL_WITH_MOSEK "Use MOSEK" OFF) +option(LIBIGL_WITH_OPENGL "Use OpenGL" OFF) +option(LIBIGL_WITH_PNG "Use PNG" OFF) +option(LIBIGL_WITH_TETGEN "Use Tetgen" OFF) +option(LIBIGL_WITH_TRIANGLE "Use Triangle" OFF) +option(LIBIGL_WITH_VIEWER "Use Nanogui Viewer" OFF) +option(LIBIGL_WITH_XML "Use XML" OFF) + +### Compilation configuration ### +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}") + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") + +#if(MSVC) +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /bigobj") ### Enable parallel compilation for Visual Studio +#endif() + + +### Compiling libraries based on chosen options ### +set(LIBIGL_INCLUDE_DIRS "") +set(LIBIGL_LIBRARIES "") +set(LIBIGL_EXTRA_LIBRARIES "") +set(LIBIGL_EXTRA_SOURCES "") +set(LIBIGL_DEFINITIONS "") + +if(LIBIGL_USE_STATIC_LIBRARY) + add_definitions(-DIGL_STATIC_LIBRARY) +endif() + +#if(APPLE) +# set(CMAKE_CXX_LINK_FLAGS "-framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo") +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2") +#endif() + +#if(UNIX AND NOT APPLE) +# set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lGL -lGLU -lrt -lX11 -lXxf86vm -lXrandr -lpthread -lXi -lXcursor -lXinerama ") +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx") +#endif() + +### macro definition ### +set(LIBIGL_ROOT "${PROJECT_SOURCE_DIR}/..") +set(LIBIGL_SOURCE_DIR "${LIBIGL_ROOT}/include") +set(LIBIGL_EXTERNAL "${LIBIGL_ROOT}/external") + +macro(CompileIGL_Module module) + file(GLOB SOURCES_${module} + "${LIBIGL_SOURCE_DIR}/igl/${module}/*.cpp") + add_library(igl${module} STATIC ${SOURCES_${module}}) + list(APPEND LIBIGL_LIBRARIES "igl${module}") +endmacro() + + +### Eigen ### +set(EIGEN_INCLUDE_DIR "${LIBIGL_EXTERNAL}/nanogui/ext/eigen") +include_directories(${EIGEN_INCLUDE_DIR}) +list(APPEND LIBIGL_INCLUDE_DIRS "${EIGEN_INCLUDE_DIR}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") # remove some annoying warning for Eigen (at least with gcc) + +### OpenMP ### +find_package(OpenMP) +if(OPENMP_FOUND AND NOT WIN32) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") +endif() + +### IGL Common ### +list(APPEND LIBIGL_INCLUDE_DIRS "${LIBIGL_SOURCE_DIR}") +if(LIBIGL_USE_STATIC_LIBRARY) + include_directories("${LIBIGL_SOURCE_DIR}") + file(GLOB SOURCES_IGL "${LIBIGL_SOURCE_DIR}/igl/*.cpp") + add_library(igl STATIC ${SOURCES_IGL}) + list(APPEND LIBIGL_LIBRARIES "igl") +endif() + + +### Compile the mosek part ### +if(LIBIGL_WITH_MOSEK) + find_package(MOSEK REQUIRED) + if(NOT MOSEK_FOUND) + message(SEND_ERROR "Could NOT find MOSEK") + endif() + list(APPEND LIBIGL_INCLUDE_DIRS ${MOSEK_INCLUDE_DIR}) + list(APPEND LIBIGL_EXTRA_LIBRARIES ${MOSEK_LIBRARIES}) + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${MOSEK_INCLUDE_DIR}) + CompileIGL_Module("mosek") + endif() +else() + add_definitions(-DIGL_NO_MOSEK) + list(APPEND LIBIGL_DEFINITIONS "-DIGL_NO_MOSEK") +endif() + +### Compile the BBW part ### +if(LIBIGL_WITH_BBW) + if(LIBIGL_USE_STATIC_LIBRARY) + CompileIGL_Module("bbw") + endif() +endif() + +### Compile the comiso part ### +if(LIBIGL_WITH_COMISO) + find_package(LIBCOMISOH REQUIRED) + if(NOT LIBCOMISOH_FOUND) + message(SEND_ERROR "Could NOT find COMISO") + endif() + #include_directories( ${LIBCOMISO_INCLUDE_DIRS}) + list(GET LIBCOMISO_INCLUDE_DIRS 0 COMISO_ROOT) + + add_subdirectory("${COMISO_ROOT}/CoMISo/" "CoMISo") + + set(COMISO_INCLUDE_DIRS + "${COMISO_ROOT}/CoMISo/ext/gmm-4.2/include" + "${COMISO_ROOT}/") + + list(APPEND LIBIGL_INCLUDE_DIRS ${COMISO_INCLUDE_DIRS}) + + if(APPLE) + find_library(accelerate_library Accelerate) + list(APPEND LIBIGL_EXTRA_LIBRARIES "CoMISo" ${accelerate_library}) + else() + list(APPEND LIBIGL_EXTRA_LIBRARIES "CoMISo") + endif() + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${COMISO_INCLUDE_DIRS}) + CompileIGL_Module("comiso") + endif() +endif() + +### Compile the embree part ### +if(LIBIGL_WITH_EMBREE) + set(EMBREE_DIR "${LIBIGL_EXTERNAL}/embree") + + option(ENABLE_ISPC_SUPPORT OFF) + option(RTCORE_TASKING_SYSTEM "INTERNAL") + option(ENABLE_TUTORIALS OFF) + option(ENABLE_STATIC_LIB ON) + + if(MSVC) + option(USE_STATIC_RUNTIME " " OFF) + endif() + + add_subdirectory("${EMBREE_DIR}" "embree") + list(APPEND LIBIGL_INCLUDE_DIRS "${EMBREE_DIR}/include") + list(APPEND LIBIGL_EXTRA_LIBRARIES "embree") + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${EMBREE_DIR}/include) + CompileIGL_Module("embree") + endif() +endif() + +### Compile the lim part ### +if(LIBIGL_WITH_LIM) + set(LIM_DIR "${LIBIGL_EXTERNAL}/lim") + add_subdirectory("${LIM_DIR}" "lim") + list(APPEND LIBIGL_INCLUDE_DIRS ${LIM_DIR}) + list(APPEND LIBIGL_LIBRARIES "lim") # it depends on ligigl, so placing it here solve linking problems + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${LIM_DIR}) + CompileIGL_Module("lim") + endif() +endif() + +### Compile the matlab part ### +if(LIBIGL_WITH_MATLAB) + find_package(MATLAB REQUIRED) + if(NOT MATLAB_FOUND) + message(SEND_ERROR "Could NOT find MATLAB") + endif() + list(APPEND LIBIGL_INCLUDE_DIRS ${MATLAB_INCLUDE_DIR}) + list(APPEND LIBIGL_EXTRA_LIBRARIES ${MATLAB_LIBRARIES}) + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${MATLAB_INCLUDE_DIR}) + CompileIGL_Module("matlab") + endif() +endif() + + +### Compile the opengl and png parts ### +if(LIBIGL_WITH_OPENGL) + if(LIBIGL_USE_STATIC_LIBRARY) + CompileIGL_Module("opengl") + CompileIGL_Module("opengl2") + endif() + + if(LIBIGL_WITH_PNG) + set(STB_IMAGE_DIR "${LIBIGL_EXTERNAL}/stb_image") + add_subdirectory("${STB_IMAGE_DIR}" "stb_image") + list(APPEND LIBIGL_INCLUDE_DIRS ${STB_IMAGE_DIR}) + list(APPEND LIBIGL_EXTRA_LIBRARIES "stb_image") + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${STB_IMAGE_DIR}) + CompileIGL_Module("png") + endif() + endif() +endif() + +### Compile the tetgen part ### +if(LIBIGL_WITH_TETGEN) + set(TETGEN_DIR "${LIBIGL_EXTERNAL}/tetgen") + add_subdirectory("${TETGEN_DIR}" "tetgen") + list(APPEND LIBIGL_INCLUDE_DIRS ${TETGEN_DIR}) + list(APPEND LIBIGL_EXTRA_LIBRARIES "tetgen") + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${TETGEN_DIR}) + CompileIGL_Module("tetgen") + endif() +endif() + +### Compile the triangle part ### +if(LIBIGL_WITH_TRIANGLE) + set(TRIANGLE_DIR "${LIBIGL_EXTERNAL}/triangle") + add_subdirectory("${TRIANGLE_DIR}" "triangle") + list(APPEND LIBIGL_INCLUDE_DIRS ${TRIANGLE_DIR}) + list(APPEND LIBIGL_EXTRA_LIBRARIES "triangle") + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${TRIANGLE_DIR}) + CompileIGL_Module("triangle") + endif() +endif() + +### Compile the viewer ### +if(LIBIGL_WITH_VIEWER) # to finish cleaning + set(NANOGUI_DIR "${LIBIGL_EXTERNAL}/nanogui") + set(NANOGUI_INCLUDE_DIRS + "${NANOGUI_DIR}/include" + "${NANOGUI_DIR}/ext/nanovg/src" + "${NANOGUI_DIR}/ext/glfw/include") + + option(GLFW_INSTALL OFF) + option(NANOGUI_BUILD_PYTHON OFF) + option(NANOGUI_BUILD_EXAMPLE OFF) + option(NANOGUI_BUILD_SHARED OFF) + add_subdirectory("${NANOGUI_DIR}" "nanogui") + list(APPEND LIBIGL_INCLUDE_DIRS ${NANOGUI_INCLUDE_DIRS}) + list(APPEND LIBIGL_EXTRA_LIBRARIES "nanogui" "glfw" ${GLFW_LIBRARIES} pthread) + + # GLEW: this should be cleaned and tested + if(WIN32 OR UNIX) + include_directories("${NANOGUI_DIR}/ext/glew/include") + list(APPEND LIBIGL_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glew/include") + list(APPEND LIBIGL_EXTRA_SOURCES "${NANOGUI_DIR}/ext/glew/src/glew.c") + endif() + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${NANOGUI_INCLUDE_DIRS}) + CompileIGL_Module("viewer") + endif() +endif() + +### Compile the xml part ### +if(LIBIGL_WITH_XML) + set(TINYXML2_DIR "${LIBIGL_EXTERNAL}/tinyxml2") + + add_library(tinyxml2 STATIC ${TINYXML2_DIR}/tinyxml2.cpp ${TINYXML2_DIR}/tinyxml2.h) + set_target_properties(tinyxml2 PROPERTIES + COMPILE_DEFINITONS "TINYXML2_EXPORT" + VERSION "3.0.0" + SOVERSION "3") + list(APPEND LIBIGL_INCLUDE_DIRS ${TINYXML2_DIR}) + list(APPEND LIBIGL_EXTRA_LIBRARIES "tinyxml2") + + if(LIBIGL_USE_STATIC_LIBRARY) + include_directories(${TINYXML2_DIR}) + CompileIGL_Module("xml") + endif() +endif() + + +### Compile the boolean and cgal parts ### +if(LIBIGL_WITH_CGAL) # to be cleaned + set(CGAL_DIR "${LIBIGL_EXTERNAL}/cgal/build") + #option(CGAL_BRANCH_BUILD ON) + #option(BUILD_SHARED_LIBS OFF) + #option(WITH_CGAL_ImageIO OFF) + #option(WITH_CGAL_QT3 OFF) + #option(WITH_CGAL_QT5 OFF) + set(CMAKELISTS_SHARED_INCLUDED FALSE) + find_package(CGAL REQUIRED) + message(${CGAL_USE_FILE}) + include(${CGAL_USE_FILE}) + #add_subdirectory("${LIBIGL_EXTERNAL}/cgal" "cgal") + +# find_package(CGAL REQUIRED) +# if(NOT CGAL_FOUND) +# message(SEND_ERROR "Could NOT find CGAL") +# endif() + + if(LIBIGL_WITH_CORK) +# find_package(CORK REQUIRED) +# if(NOT MOSEK_FOUND) +# message(SEND_ERROR "Could NOT find CORK") +# endif() + +# if(LIBIGL_USE_STATIC_LIBRARY) +# include_directories(${CORK_INCLUDE_DIR}) +# CompileIGL_Module("boolean") +# endif() + else() + add_definitions(-DIGL_NO_CORK) + list(APPEND LIBIGL_DEFINITIONS "-DIGL_NO_CORK") + endif() + + if(LIBIGL_USE_STATIC_LIBRARY) + CompileIGL_Module("cgal") + endif() +endif() + + +### Compile the AntTweakBar part (deprecated) ### +# if(LIBIGL_WITH_ANTTWEAKBAR) # to be cleaned +# find_package(ANTTWEAKBAR REQUIRED) +# include_directories(${ANT_TWEAK_BAR_INCLUDE_DIR}) +# +# if(LIBIGL_USE_STATIC_LIBRARY) +# CompileIGL_Module("anttweakbar") +# endif() +# endif() + +# Pass the list of compiled libraries to the parent if there is one +if(NOT ${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME}) + list(REVERSE LIBIGL_LIBRARIES) + + set(LIBIGL_INCLUDE_DIRS ${LIBIGL_INCLUDE_DIRS} PARENT_SCOPE) + set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} PARENT_SCOPE) + set(LIBIGL_EXTRA_LIBRARIES ${LIBIGL_EXTRA_LIBRARIES} PARENT_SCOPE) + set(LIBIGL_EXTRA_SOURCES ${LIBIGL_EXTRA_SOURCES} PARENT_SCOPE) + set(LIBIGL_DEFINITIONS ${LIBIGL_DEFINITIONS} PARENT_SCOPE) +endif() diff --git a/cmake/FindCGAL.cmake b/cmake/FindCGAL.cmake new file mode 100644 index 000000000..7c6a5f20e --- /dev/null +++ b/cmake/FindCGAL.cmake @@ -0,0 +1,94 @@ +# +# The following module is based on FindVTK.cmake +# + +# - Find a CGAL installation or binary tree. +# The following variables are set if CGAL is found. If CGAL is not +# found, CGAL_FOUND is set to false. +# +# CGAL_FOUND - Set to true when CGAL is found. +# CGAL_USE_FILE - CMake file to use CGAL. +# + +# Construct consitent error messages for use below. +set(CGAL_DIR_DESCRIPTION "directory containing CGALConfig.cmake. This is either the binary directory where CGAL was configured or PREFIX/lib/CGAL for an installation.") +set(CGAL_DIR_MESSAGE "CGAL not found. Set the CGAL_DIR cmake variable or environment variable to the ${CGAL_DIR_DESCRIPTION}") + +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) + +if ( NOT CGAL_DIR ) + + # Get the system search path as a list. + if(UNIX) + string(REGEX MATCHALL "[^:]+" CGAL_DIR_SEARCH1 "$ENV{PATH}") + else() + string(REGEX REPLACE "\\\\" "/" CGAL_DIR_SEARCH1 "$ENV{PATH}") + endif() + + string(REGEX REPLACE "/;" ";" CGAL_DIR_SEARCH2 "${CGAL_DIR_SEARCH1}") + + # Construct a set of paths relative to the system search path. + set(CGAL_DIR_SEARCH "") + + foreach(dir ${CGAL_DIR_SEARCH2}) + + set(CGAL_DIR_SEARCH ${CGAL_DIR_SEARCH} ${dir}/../lib/CGAL ) + + endforeach() + + + # + # Look for an installation or build tree. + # + find_path(CGAL_DIR CGALConfig.cmake + + # Look for an environment variable CGAL_DIR. + $ENV{CGAL_DIR} + + # Look in places relative to the system executable search path. + ${CGAL_DIR_SEARCH} + + # Look in standard UNIX install locations. + /opt/local/share/CGAL/cmake + /usr/local/lib/CGAL + /usr/lib/CGAL + + # Read from the CMakeSetup registry entries. It is likely that + # CGAL will have been recently built. + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9] + [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10] + + # Help the user find it if we cannot. + DOC "The ${CGAL_DIR_DESCRIPTION}" + ) + +endif() + +if ( CGAL_DIR ) + + if ( EXISTS "${CGAL_DIR}/CGALConfig.cmake" ) + include( "${CGAL_DIR}/CGALConfig.cmake" ) + set( CGAL_FOUND TRUE ) + endif() + +endif() + +if(CGAL_FOUND) + MESSAGE(STATUS "Found CGAL: ${CGAL_DIR}") +else() + if(CGAL_FIND_REQUIRED) + MESSAGE(FATAL_ERROR ${CGAL_DIR_MESSAGE}) + else() + if(NOT CGAL_FIND_QUIETLY) + MESSAGE(STATUS ${CGAL_DIR_MESSAGE}) + endif() + endif() +endif() diff --git a/cmake/FindCORK.cmake b/cmake/FindCORK.cmake new file mode 100644 index 000000000..5faee49df --- /dev/null +++ b/cmake/FindCORK.cmake @@ -0,0 +1,52 @@ +# +# Try to find CORK library and include path. +# Once done this will define +# +# CORK_FOUND +# CORK_INCLUDE_DIR +# CORK_LIBRARIES +# + +if(NOT CORK_FOUND) + +FIND_PATH(CORK_INCLUDE_DIR cork.h + PATHS + ${PROJECT_SOURCE_DIR}/../../external/cork/include + ${PROJECT_SOURCE_DIR}/../external/cork/include + ${PROJECT_SOURCE_DIR}/external/cork/include + /usr/local/include + /usr/X11/include + /usr/include + /opt/local/include + NO_DEFAULT_PATH + ) + +FIND_LIBRARY( CORK_LIBRARIES NAMES cork + PATHS + ${PROJECT_SOURCE_DIR}/../../external/cork/lib/ + ${PROJECT_SOURCE_DIR}/../external/cork/lib/ + ${PROJECT_SOURCE_DIR}/external/cork/lib/ + /usr/local + /usr/X11 + /usr + PATH_SUFFIXES + a + lib64 + lib + NO_DEFAULT_PATH +) + +SET(CORK_FOUND "NO") +IF (CORK_INCLUDE_DIR AND CORK_LIBRARIES) + SET(CORK_FOUND "YES") +ENDIF (CORK_INCLUDE_DIR AND CORK_LIBRARIES) + +if(CORK_FOUND) + message(STATUS "Found CORK: ${CORK_INCLUDE_DIR}") +else(CORK_FOUND) + if (NOT CORK_FIND_QUIETLY) + message(FATAL_ERROR "could NOT find CORK") + endif (NOT CORK_FIND_QUIETLY) +endif(CORK_FOUND) + +endif(NOT CORK_FOUND) diff --git a/cmake/FindLIBCOMISOH.cmake b/cmake/FindLIBCOMISOH.cmake new file mode 100644 index 000000000..1521a97de --- /dev/null +++ b/cmake/FindLIBCOMISOH.cmake @@ -0,0 +1,60 @@ +# - 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/ext/gmm-4.2/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 LIBCOMISOH_FIND_QUIETLY) +endif(LIBCOMISO_INCLUDE_DIR) diff --git a/cmake/FindMATLAB.cmake b/cmake/FindMATLAB.cmake new file mode 100644 index 000000000..1d9b2a955 --- /dev/null +++ b/cmake/FindMATLAB.cmake @@ -0,0 +1,216 @@ +# - this module looks for Matlab +# Defines: +# MATLAB_INCLUDE_DIR: include path for mex.h, engine.h +# MATLAB_LIBRARIES: required libraries: libmex, etc +# MATLAB_MEX_LIBRARY: path to libmex.lib +# MATLAB_MX_LIBRARY: path to libmx.lib +# MATLAB_MAT_LIBRARY: path to libmat.lib # added +# MATLAB_ENG_LIBRARY: path to libeng.lib +# MATLAB_ROOT: path to Matlab's root directory + +# This file is part of Gerardus +# +# This is a derivative work of file FindMatlab.cmake released with +# CMake v2.8, because the original seems to be a bit outdated and +# doesn't work with my Windows XP and Visual Studio 10 install +# +# (Note that the original file does work for Ubuntu Natty) +# +# Author: Ramon Casero , Tom Doel +# Version: 0.2.3 +# $Rev$ +# $Date$ +# +# The original file was copied from an Ubuntu Linux install +# /usr/share/cmake-2.8/Modules/FindMatlab.cmake + +#============================================================================= +# Copyright 2005-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +SET(MATLAB_FOUND 0) +IF(WIN32) + # Search for a version of Matlab available, starting from the most modern one to older versions + FOREACH(MATVER "7.14" "7.11" "7.17" "7.10" "7.9" "7.8" "7.7" "7.6" "7.5" "7.4" "8.0" "8.1" "8.2" "8.3" "8.4" "8.5") + IF((NOT DEFINED MATLAB_ROOT) + OR ("${MATLAB_ROOT}" STREQUAL "") + OR ("${MATLAB_ROOT}" STREQUAL "/registry")) + GET_FILENAME_COMPONENT(MATLAB_ROOT + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\${MATVER};MATLABROOT]" + ABSOLUTE) + SET(MATLAB_VERSION ${MATVER}) + ENDIF((NOT DEFINED MATLAB_ROOT) + OR ("${MATLAB_ROOT}" STREQUAL "") + OR ("${MATLAB_ROOT}" STREQUAL "/registry")) + ENDFOREACH(MATVER) + + # Directory name depending on whether the Windows architecture is 32 + # bit or 64 bit + set(CMAKE_SIZEOF_VOID_P 8) # Note: For some weird reason this variable is undefined in my system... + IF(CMAKE_SIZEOF_VOID_P MATCHES "4") + SET(WINDIR "win32") + ELSEIF(CMAKE_SIZEOF_VOID_P MATCHES "8") + SET(WINDIR "win64") + ELSE(CMAKE_SIZEOF_VOID_P MATCHES "4") + MESSAGE(FATAL_ERROR + "CMAKE_SIZEOF_VOID_P (${CMAKE_SIZEOF_VOID_P}) doesn't indicate a valid platform") + ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "4") + + # Folder where the MEX libraries are, depending of the Windows compiler + IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc60") + ELSEIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") + # Assume people are generally using Visual Studio 7.1, + # if using 7.0 need to link to: ../extern/lib/${WINDIR}/microsoft/msvc70 + SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc71") + # SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc70") + ELSEIF(${CMAKE_GENERATOR} MATCHES "Borland") + # Assume people are generally using Borland 5.4, + # if using 7.0 need to link to: ../extern/lib/${WINDIR}/microsoft/msvc70 + SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/bcc54") + # SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/bcc50") + # SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/bcc51") + ELSEIF(${CMAKE_GENERATOR} MATCHES "Visual Studio*") + # If the compiler is Visual Studio, but not any of the specific + # versions above, we try our luck with the microsoft directory + SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/") + ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}") + ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + + # Get paths to the Matlab MEX libraries + FIND_LIBRARY(MATLAB_MEX_LIBRARY + libmex + ${MATLAB_LIBRARIES_DIR} + ) + FIND_LIBRARY(MATLAB_MX_LIBRARY + libmx + ${MATLAB_LIBRARIES_DIR} + ) + FIND_LIBRARY(MATLAB_MAT_LIBRARY + libmat + ${MATLAB_LIBRARIES_DIR} + ) + FIND_LIBRARY(MATLAB_ENG_LIBRARY + libeng + ${MATLAB_LIBRARIES_DIR} + ) + + # Get path to the include directory + FIND_PATH(MATLAB_INCLUDE_DIR + "mex.h" + "${MATLAB_ROOT}/extern/include" + ) + +ELSE(WIN32) + + IF((NOT DEFINED MATLAB_ROOT) + OR ("${MATLAB_ROOT}" STREQUAL "")) + # get path to the Matlab root directory + EXECUTE_PROCESS( + COMMAND which matlab + COMMAND xargs readlink + COMMAND xargs dirname + COMMAND xargs dirname + COMMAND xargs echo -n + OUTPUT_VARIABLE MATLAB_ROOT + ) + ENDIF((NOT DEFINED MATLAB_ROOT) + OR ("${MATLAB_ROOT}" STREQUAL "")) + + # Check if this is a Mac + IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + + SET(LIBRARY_EXTENSION .dylib) + + # If this is a Mac and the attempts to find MATLAB_ROOT have so far failed, + # we look in the applications folder + IF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL "")) + + # Search for a version of Matlab available, starting from the most modern one to older versions + FOREACH(MATVER "R2015b" "R2015a" "R2014b" "R2014a" "R2014a" "R2013b" "R2013a" "R2012b" "R2012a" "R2011b" "R2011a" "R2010b" "R2010a" "R2009b" "R2009a" "R2008b") + IF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL "")) + IF(EXISTS /Applications/MATLAB_${MATVER}.app) + SET(MATLAB_ROOT /Applications/MATLAB_${MATVER}.app) + + ENDIF(EXISTS /Applications/MATLAB_${MATVER}.app) + ENDIF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL "")) + ENDFOREACH(MATVER) + + ENDIF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL "")) + + ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + SET(LIBRARY_EXTENSION .so) + + ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + + # Get path to the MEX libraries + EXECUTE_PROCESS( + #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmex${LIBRARY_EXTENSION} # Peter + COMMAND find "${MATLAB_ROOT}/bin" -name libmex${LIBRARY_EXTENSION} # Standard + COMMAND xargs echo -n + OUTPUT_VARIABLE MATLAB_MEX_LIBRARY + ) + EXECUTE_PROCESS( + #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmx${LIBRARY_EXTENSION} # Peter + COMMAND find "${MATLAB_ROOT}/bin" -name libmx${LIBRARY_EXTENSION} # Standard + COMMAND xargs echo -n + OUTPUT_VARIABLE MATLAB_MX_LIBRARY + ) + EXECUTE_PROCESS( + #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmat${LIBRARY_EXTENSION} # Peter + COMMAND find "${MATLAB_ROOT}/bin" -name libmat${LIBRARY_EXTENSION} # Standard + COMMAND xargs echo -n + OUTPUT_VARIABLE MATLAB_MAT_LIBRARY + ) + EXECUTE_PROCESS( + #COMMAND find "${MATLAB_ROOT}/extern/lib" -name libeng${LIBRARY_EXTENSION} # Peter + COMMAND find "${MATLAB_ROOT}/bin" -name libeng${LIBRARY_EXTENSION} # Standard + COMMAND xargs echo -n + OUTPUT_VARIABLE MATLAB_ENG_LIBRARY + ) + + # Get path to the include directory + FIND_PATH(MATLAB_INCLUDE_DIR + "mex.h" + PATHS "${MATLAB_ROOT}/extern/include" + ) + +ENDIF(WIN32) + +if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + set(MATLAB_LIBSTDCPP "-lstdc++") +endif () + + +# This is common to UNIX and Win32: +SET(MATLAB_LIBRARIES + ${MATLAB_LIBSTDCPP} + ${MATLAB_MAT_LIBRARY} + ${MATLAB_MEX_LIBRARY} + ${MATLAB_MX_LIBRARY} + ${MATLAB_ENG_LIBRARY} +) + +IF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) + SET(MATLAB_FOUND 1) +ENDIF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) + +MARK_AS_ADVANCED( + MATLAB_LIBRARIES + MATLAB_MEX_LIBRARY + MATLAB_MX_LIBRARY + MATLAB_ENG_LIBRARY + MATLAB_INCLUDE_DIR + MATLAB_FOUND + MATLAB_ROOT +) diff --git a/cmake/FindMOSEK.cmake b/cmake/FindMOSEK.cmake new file mode 100644 index 000000000..62c671c46 --- /dev/null +++ b/cmake/FindMOSEK.cmake @@ -0,0 +1,30 @@ +# +# Try to find MOSEK +# Once done this will define +# +# MOSEK_FOUND - system has MOSEK +# MOSEK_INCLUDE_DIRS - the MOSEK include directories +# MOSEK_LIBRARIES - Link these to use MOSEK +# + +FIND_PATH(MOSEK_INCLUDE_DIR mosek.h + PATHS /usr/local/mosek/7/tools/platform/osx64x86/h/ + ) + +SET(SEARCH_PATHS "${MOSEK_INCLUDE_DIR}" "${MOSEK_INCLUDE_DIR}/../bin" "${MOSEK_INCLUDE_DIR}/lib") + +set(MOSEK_LIBRARIES) +FIND_LIBRARY(MOSEK_LIBRARIES NAMES mosek64 PATHS ${SEARCH_PATHS} NO_DEFAULT_PATH DPATH_SUFFIXES a lib dylib) + +if(MOSEK_LIBRARIES AND MOSEK_INCLUDE_DIR) +message(STATUS "Found mosek: ${MOSEK_LIBRARIES}") +set(MOSEK_FOUND TRUE) +endif(MOSEK_LIBRARIES AND MOSEK_INCLUDE_DIR) + +IF (MOSEK_FOUND) + message(STATUS "Found MOSEK: ${MOSEK_INCLUDE_DIR}") + SET(MOSEK_INCLUDE_DIRS ${MOSEK_INCLUDE_DIR} ) +ELSE (MOSEK_FOUND) + #add_definitions(-DIGL_NO_MOSEK) + #message(WARNING "could NOT find MOSEK") +ENDIF (MOSEK_FOUND) diff --git a/include/igl/opengl/OpenGL_convenience.h b/include/igl/opengl/OpenGL_convenience.h index 0d8be6fbe..6add4f297 100644 --- a/include/igl/opengl/OpenGL_convenience.h +++ b/include/igl/opengl/OpenGL_convenience.h @@ -1,9 +1,9 @@ // This file is part of libigl, a simple c++ geometry processing library. -// +// // Copyright (C) 2013 Alec Jacobson -// -// This Source Code Form is subject to the terms of the Mozilla Public License -// v. 2.0. If a copy of the MPL was not distributed with this file, You can +// +// This Source Code Form is subject to the terms of the Mozilla Public License +// v. 2.0. If a copy of the MPL was not distributed with this file, You can // obtain one at http://mozilla.org/MPL/2.0/. #ifndef IGL_OPENGL_OPENGL_CONVENIENCE_H #define IGL_OPENGL_OPENGL_CONVENIENCE_H @@ -14,7 +14,7 @@ // For now this includes glu, glew and glext (perhaps these should be // separated) -#if __APPLE__ +/*#if __APPLE__ # include # include # include @@ -29,6 +29,21 @@ # include # include # include +#endif*/ + +// From Nanogui +#if defined(__APPLE__) + #define GLFW_INCLUDE_GLCOREARB +#elif defined(WIN32) + #define GLEW_STATIC + #include +#else + #define GLEW_STATIC + #include + #define GL_GLEXT_PROTOTYPES #endif +//#define GLFW_INCLUDE_GLU +#include + #endif diff --git a/include/igl/png/render_to_png.cpp b/include/igl/png/render_to_png.cpp index 1bca6e1a2..8571e3677 100644 --- a/include/igl/png/render_to_png.cpp +++ b/include/igl/png/render_to_png.cpp @@ -8,16 +8,7 @@ #include "render_to_png.h" #include -#ifdef __APPLE__ -# include -#else -# ifdef _WIN32 -# define NOMINMAX -# include -# undef NOMINMAX -# endif -# include -#endif +#include "../opengl/OpenGL_convenience.h" IGL_INLINE bool igl::png::render_to_png( const std::string png_file, diff --git a/include/igl/png/render_to_png_async.cpp b/include/igl/png/render_to_png_async.cpp index 8ef205680..109a99554 100644 --- a/include/igl/png/render_to_png_async.cpp +++ b/include/igl/png/render_to_png_async.cpp @@ -8,17 +8,7 @@ #include "render_to_png_async.h" #include -#ifdef __APPLE__ -# include -#else -# ifdef _WIN32 -# define NOMINMAX -# include -# undef NOMINMAX -# endif -# include -#endif - +#include "../opengl/OpenGL_convenience.h" static IGL_INLINE bool render_to_png_async_helper( unsigned char * img, int width, int height, diff --git a/include/igl/viewer/OpenGL_shader.cpp b/include/igl/viewer/OpenGL_shader.cpp index a5e5c7b8b..a898d5d3f 100644 --- a/include/igl/viewer/OpenGL_shader.cpp +++ b/include/igl/viewer/OpenGL_shader.cpp @@ -8,21 +8,6 @@ #include "OpenGL_shader.h" -#ifndef __APPLE__ -# define GLEW_STATIC -# include -#endif - -#ifdef __APPLE__ -# include -# define __gl_h_ /* Prevent inclusion of the old gl.h */ -#else -# ifdef _WIN32 -# include -# endif -# include -#endif - #include #include diff --git a/include/igl/viewer/OpenGL_shader.h b/include/igl/viewer/OpenGL_shader.h index fd1f3e6ab..d51e1e20c 100644 --- a/include/igl/viewer/OpenGL_shader.h +++ b/include/igl/viewer/OpenGL_shader.h @@ -20,20 +20,21 @@ # undef DrawText #endif -#ifndef __APPLE__ +/*#ifndef __APPLE__ # define GLEW_STATIC # include #endif #ifdef __APPLE__ # include -# define __gl_h_ /* Prevent inclusion of the old gl.h */ +# define __gl_h_ // Prevent inclusion of the old gl.h #else # ifdef _WIN32 # include # endif # include -#endif +#endif*/ +#include "../opengl/OpenGL_convenience.h" namespace igl { diff --git a/include/igl/viewer/Viewer.cpp b/include/igl/viewer/Viewer.cpp index 560279e4c..97f1d65d3 100644 --- a/include/igl/viewer/Viewer.cpp +++ b/include/igl/viewer/Viewer.cpp @@ -17,25 +17,28 @@ #include #include -#ifndef __APPLE__ +/*#ifndef __APPLE__ # define GLEW_STATIC # include #endif #ifdef __APPLE__ # include -# define __gl_h_ /* Prevent inclusion of the old gl.h */ +# define __gl_h_ // Prevent inclusion of the old gl.h #else # include -#endif +#endif*/ -#include +#include "../opengl/OpenGL_convenience.h" -#define GLFW_INCLUDE_GLU +/*#define GLFW_INCLUDE_GLU #ifndef _WIN32 #define GLFW_INCLUDE_GLCOREARB #endif -#include +#include */ + +#include + #include #include diff --git a/tutorial/101_FileIO/CMakeLists.txt b/tutorial/101_FileIO/CMakeLists.txt index 60b496c1d..d604b3ef4 100644 --- a/tutorial/101_FileIO/CMakeLists.txt +++ b/tutorial/101_FileIO/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(101_FileIO) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/102_DrawMesh/CMakeLists.txt b/tutorial/102_DrawMesh/CMakeLists.txt index 0437c635f..c7501280b 100644 --- a/tutorial/102_DrawMesh/CMakeLists.txt +++ b/tutorial/102_DrawMesh/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(102_DrawMesh) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/103_Events/CMakeLists.txt b/tutorial/103_Events/CMakeLists.txt index 876a858a1..92033c393 100644 --- a/tutorial/103_Events/CMakeLists.txt +++ b/tutorial/103_Events/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(103_Events) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/104_Colors/CMakeLists.txt b/tutorial/104_Colors/CMakeLists.txt index 7aed56363..35aa19bec 100644 --- a/tutorial/104_Colors/CMakeLists.txt +++ b/tutorial/104_Colors/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(104_Colors) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/105_Overlays/CMakeLists.txt b/tutorial/105_Overlays/CMakeLists.txt index 927973352..eec4c6ec3 100644 --- a/tutorial/105_Overlays/CMakeLists.txt +++ b/tutorial/105_Overlays/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(105_Overlays) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/106_ViewerMenu/CMakeLists.txt b/tutorial/106_ViewerMenu/CMakeLists.txt index 4c33aebcf..655d92dce 100644 --- a/tutorial/106_ViewerMenu/CMakeLists.txt +++ b/tutorial/106_ViewerMenu/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(106_ViewerMenu) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/201_Normals/CMakeLists.txt b/tutorial/201_Normals/CMakeLists.txt index 51cd8802c..36b7a0bc8 100644 --- a/tutorial/201_Normals/CMakeLists.txt +++ b/tutorial/201_Normals/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(201_Normals) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/202_GaussianCurvature/CMakeLists.txt b/tutorial/202_GaussianCurvature/CMakeLists.txt index a9f98640b..01e2f7997 100644 --- a/tutorial/202_GaussianCurvature/CMakeLists.txt +++ b/tutorial/202_GaussianCurvature/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(202_GaussianCurvature) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/203_CurvatureDirections/CMakeLists.txt b/tutorial/203_CurvatureDirections/CMakeLists.txt index d91000776..2d6188699 100644 --- a/tutorial/203_CurvatureDirections/CMakeLists.txt +++ b/tutorial/203_CurvatureDirections/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(203_CurvatureDirections) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/204_Gradient/CMakeLists.txt b/tutorial/204_Gradient/CMakeLists.txt index 3cf6918a0..e22a07791 100644 --- a/tutorial/204_Gradient/CMakeLists.txt +++ b/tutorial/204_Gradient/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(204_Gradient) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/205_Laplacian/CMakeLists.txt b/tutorial/205_Laplacian/CMakeLists.txt index d3f9315f4..b08a4a99d 100644 --- a/tutorial/205_Laplacian/CMakeLists.txt +++ b/tutorial/205_Laplacian/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(205_Laplacian) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/301_Slice/CMakeLists.txt b/tutorial/301_Slice/CMakeLists.txt index c353258bd..bd4b41edf 100644 --- a/tutorial/301_Slice/CMakeLists.txt +++ b/tutorial/301_Slice/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(301_Slice) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/302_Sort/CMakeLists.txt b/tutorial/302_Sort/CMakeLists.txt index 723daafbb..02baeac83 100644 --- a/tutorial/302_Sort/CMakeLists.txt +++ b/tutorial/302_Sort/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(302_Sort) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/303_LaplaceEquation/CMakeLists.txt b/tutorial/303_LaplaceEquation/CMakeLists.txt index a2edecfbd..7f8fe4b82 100644 --- a/tutorial/303_LaplaceEquation/CMakeLists.txt +++ b/tutorial/303_LaplaceEquation/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(303_LaplaceEquation) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/304_LinearEqualityConstraints/CMakeLists.txt b/tutorial/304_LinearEqualityConstraints/CMakeLists.txt index cfc0dccf9..15f061c7b 100644 --- a/tutorial/304_LinearEqualityConstraints/CMakeLists.txt +++ b/tutorial/304_LinearEqualityConstraints/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(304_LinearEqualityConstraints) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/305_QuadraticProgramming/CMakeLists.txt b/tutorial/305_QuadraticProgramming/CMakeLists.txt index 53da9eb58..da6bb9b9d 100644 --- a/tutorial/305_QuadraticProgramming/CMakeLists.txt +++ b/tutorial/305_QuadraticProgramming/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(305_QuadraticProgramming) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/306_EigenDecomposition/CMakeLists.txt b/tutorial/306_EigenDecomposition/CMakeLists.txt index f31cc01e9..287e764f1 100644 --- a/tutorial/306_EigenDecomposition/CMakeLists.txt +++ b/tutorial/306_EigenDecomposition/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(306_EigenDecomposition) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/401_BiharmonicDeformation/CMakeLists.txt b/tutorial/401_BiharmonicDeformation/CMakeLists.txt index dfbf2311e..5e2495243 100644 --- a/tutorial/401_BiharmonicDeformation/CMakeLists.txt +++ b/tutorial/401_BiharmonicDeformation/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(401_BiharmonicDeformation) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/402_PolyharmonicDeformation/CMakeLists.txt b/tutorial/402_PolyharmonicDeformation/CMakeLists.txt index 82c7481ba..30503432c 100644 --- a/tutorial/402_PolyharmonicDeformation/CMakeLists.txt +++ b/tutorial/402_PolyharmonicDeformation/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(402_PolyharmonicDeformation) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/403_BoundedBiharmonicWeights/CMakeLists.txt b/tutorial/403_BoundedBiharmonicWeights/CMakeLists.txt index b92cd3065..5f345d3e8 100644 --- a/tutorial/403_BoundedBiharmonicWeights/CMakeLists.txt +++ b/tutorial/403_BoundedBiharmonicWeights/CMakeLists.txt @@ -1,22 +1,9 @@ cmake_minimum_required(VERSION 2.6) project(403_BoundedBiharmonicWeights) -include("../CMakeLists.shared") - -find_package(MOSEK QUIET) -if(MOSEK_FOUND) - include_directories( ${MOSEK_INCLUDE_DIR} ) -else(MOSEK_FOUND) - add_definitions(-DIGL_NO_MOSEK) - if(LIBIGL_USE_STATIC_LIBRARY) - set(LIBIGLMOSEK_LIBRARY "") - endif(LIBIGL_USE_STATIC_LIBRARY) - set(MOSEK_LIBRARIES "") -endif(MOSEK_FOUND) - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES} ${MOSEK_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_definitions(${LIBIGL_DEFINITIONS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/404_DualQuaternionSkinning/CMakeLists.txt b/tutorial/404_DualQuaternionSkinning/CMakeLists.txt index 5211ebcfe..d9ff78756 100644 --- a/tutorial/404_DualQuaternionSkinning/CMakeLists.txt +++ b/tutorial/404_DualQuaternionSkinning/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(404_DualQuaternionSkinning) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/405_AsRigidAsPossible/CMakeLists.txt b/tutorial/405_AsRigidAsPossible/CMakeLists.txt index f05dea3e7..d36fdddcb 100644 --- a/tutorial/405_AsRigidAsPossible/CMakeLists.txt +++ b/tutorial/405_AsRigidAsPossible/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(405_AsRigidAsPossible) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/406_FastAutomaticSkinningTransformations/CMakeLists.txt b/tutorial/406_FastAutomaticSkinningTransformations/CMakeLists.txt index 64863d6d0..b150d7945 100644 --- a/tutorial/406_FastAutomaticSkinningTransformations/CMakeLists.txt +++ b/tutorial/406_FastAutomaticSkinningTransformations/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(406_FastAutomaticSkinningTransformations) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/407_BiharmonicCoordinates/CMakeLists.txt b/tutorial/407_BiharmonicCoordinates/CMakeLists.txt index 720fbe55b..000f4673b 100644 --- a/tutorial/407_BiharmonicCoordinates/CMakeLists.txt +++ b/tutorial/407_BiharmonicCoordinates/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(407_BiharmonicCoordinates) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/501_HarmonicParam/CMakeLists.txt b/tutorial/501_HarmonicParam/CMakeLists.txt index 55d560005..7dd8548b4 100644 --- a/tutorial/501_HarmonicParam/CMakeLists.txt +++ b/tutorial/501_HarmonicParam/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(501_HarmonicParam) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/502_LSCMParam/CMakeLists.txt b/tutorial/502_LSCMParam/CMakeLists.txt index 80e00aafe..8de9067c3 100644 --- a/tutorial/502_LSCMParam/CMakeLists.txt +++ b/tutorial/502_LSCMParam/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(502_LSCMParam) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/503_ARAPParam/CMakeLists.txt b/tutorial/503_ARAPParam/CMakeLists.txt index 2cf436b19..37872dba4 100644 --- a/tutorial/503_ARAPParam/CMakeLists.txt +++ b/tutorial/503_ARAPParam/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(503_ARAPParam) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/504_NRosyDesign/CMakeLists.txt b/tutorial/504_NRosyDesign/CMakeLists.txt index 6a772cca4..1090771f0 100644 --- a/tutorial/504_NRosyDesign/CMakeLists.txt +++ b/tutorial/504_NRosyDesign/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(504_NRosyDesign) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/505_MIQ/CMakeLists.txt b/tutorial/505_MIQ/CMakeLists.txt index 63863f3e7..871a78168 100644 --- a/tutorial/505_MIQ/CMakeLists.txt +++ b/tutorial/505_MIQ/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(505_MIQ) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/506_FrameField/CMakeLists.txt b/tutorial/506_FrameField/CMakeLists.txt index 540019a24..495a5146b 100644 --- a/tutorial/506_FrameField/CMakeLists.txt +++ b/tutorial/506_FrameField/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(506_FrameField) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/507_PolyVectorField/CMakeLists.txt b/tutorial/507_PolyVectorField/CMakeLists.txt index dc2b478c3..32a9c58ac 100644 --- a/tutorial/507_PolyVectorField/CMakeLists.txt +++ b/tutorial/507_PolyVectorField/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(507_PolyVectorField) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/508_ConjugateField/CMakeLists.txt b/tutorial/508_ConjugateField/CMakeLists.txt index ac6210c1d..e04274148 100644 --- a/tutorial/508_ConjugateField/CMakeLists.txt +++ b/tutorial/508_ConjugateField/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(508_ConjugateField) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/509_Planarization/CMakeLists.txt b/tutorial/509_Planarization/CMakeLists.txt index ef617b696..343f842fd 100644 --- a/tutorial/509_Planarization/CMakeLists.txt +++ b/tutorial/509_Planarization/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(509_Planarization) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/510_Integrable/CMakeLists.txt b/tutorial/510_Integrable/CMakeLists.txt index 8c4a3c3bb..df78fa221 100644 --- a/tutorial/510_Integrable/CMakeLists.txt +++ b/tutorial/510_Integrable/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(510_Integrable) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/601_Serialization/CMakeLists.txt b/tutorial/601_Serialization/CMakeLists.txt index 85d314472..6379231f8 100644 --- a/tutorial/601_Serialization/CMakeLists.txt +++ b/tutorial/601_Serialization/CMakeLists.txt @@ -1,14 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(601_Serialization) -include("../CMakeLists.shared") - -find_package(TINYXML2 REQUIRED) -include_directories( ${TINYXML2_INCLUDE_DIR}) - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES} ${TINYXML2_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/602_Matlab/CMakeLists.txt b/tutorial/602_Matlab/CMakeLists.txt index c2082afbe..ef719695e 100644 --- a/tutorial/602_Matlab/CMakeLists.txt +++ b/tutorial/602_Matlab/CMakeLists.txt @@ -1,20 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(602_Matlab) -include("../CMakeLists.shared") - -find_package(MATLAB REQUIRED) -include_directories( ${MATLAB_INCLUDE_DIR} ) - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -# Alec: This seems like a clang specific thing and also seems to have an extra -# bracket. -# if(APPLE) -# set(CMAKE_EXE_LINKER_FLAGS "-rpath ${MATLAB_INCLUDE_DIR}/../../bin/maci64"}) -# endif (APPLE) #APPLE - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES} ${MATLAB_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/604_Triangle/CMakeLists.txt b/tutorial/604_Triangle/CMakeLists.txt index c55f7f0ce..1fa7d670b 100644 --- a/tutorial/604_Triangle/CMakeLists.txt +++ b/tutorial/604_Triangle/CMakeLists.txt @@ -1,14 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(604_Triangle) -include("../CMakeLists.shared") -find_package(TRIANGLE REQUIRED) - -include_directories( ${TRIANGLE_INCLUDE_DIR}) - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES} ${TRIANGLE_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/605_Tetgen/CMakeLists.txt b/tutorial/605_Tetgen/CMakeLists.txt index 6846976fd..da2a0babe 100644 --- a/tutorial/605_Tetgen/CMakeLists.txt +++ b/tutorial/605_Tetgen/CMakeLists.txt @@ -1,14 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(605_Tetgen) -include("../CMakeLists.shared") -find_package(TETGEN REQUIRED) - -include_directories( ${TETGEN_INCLUDE_DIR}) - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES} ${TETGEN_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/606_AmbientOcclusion/CMakeLists.txt b/tutorial/606_AmbientOcclusion/CMakeLists.txt index 982777090..af74c3329 100644 --- a/tutorial/606_AmbientOcclusion/CMakeLists.txt +++ b/tutorial/606_AmbientOcclusion/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(606_AmbientOcclusion) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/607_Picking/CMakeLists.txt b/tutorial/607_Picking/CMakeLists.txt index 6c420fb8f..88b08cf47 100644 --- a/tutorial/607_Picking/CMakeLists.txt +++ b/tutorial/607_Picking/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(607_Picking) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/608_LIM/CMakeLists.txt b/tutorial/608_LIM/CMakeLists.txt index 0f36c0293..cb42cb83e 100644 --- a/tutorial/608_LIM/CMakeLists.txt +++ b/tutorial/608_LIM/CMakeLists.txt @@ -1,14 +1,15 @@ cmake_minimum_required(VERSION 2.6) project(608_LIM) -include("../CMakeLists.shared") -find_package(LIM REQUIRED) +### OpenMP ### +find_package(OpenMP) +if(OPENMP_FOUND AND NOT WIN32) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") +endif() -include_directories(${LIM_INCLUDE_DIR}) - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES} ${LIM_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/609_Boolean/CMakeLists.txt b/tutorial/609_Boolean/CMakeLists.txt index 0ead203eb..35edbc383 100644 --- a/tutorial/609_Boolean/CMakeLists.txt +++ b/tutorial/609_Boolean/CMakeLists.txt @@ -1,32 +1,11 @@ cmake_minimum_required(VERSION 2.6) project(609_Boolean) -find_package(CGAL REQUIRED) -include(${CGAL_USE_FILE}) -# CGAL's monkeying with all of the flags. Rather than change the CGAL_USE_FILE -# just get ride of this flag. -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - remove_cxx_flag("-stdlib=libc++") -endif() -IF(MSVC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") ### Enable parallel compilation for Visual Studio - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} ) - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} ) -ELSE(MSVC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") #### Libigl requires a modern C++ compiler that supports c++11 - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../" ) -ENDIF(MSVC) +#find_package(CGAL REQUIRED) +#include(${CGAL_USE_FILE}) -# This is absolutely necessary for Exact Construction - -# for some reason must come after cgal include. I think that it's overwriting -# come flags like CXX_FLAGS -#set(CMAKELISTS_SHARED_INCLUDED FALSE) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES} ${CGAL_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/610_CSGTree/CMakeLists.txt b/tutorial/610_CSGTree/CMakeLists.txt index f1779895d..76c787224 100644 --- a/tutorial/610_CSGTree/CMakeLists.txt +++ b/tutorial/610_CSGTree/CMakeLists.txt @@ -1,32 +1,17 @@ cmake_minimum_required(VERSION 2.6) project(610_CSGTree) -find_package(CGAL REQUIRED) -include(${CGAL_USE_FILE}) -# CGAL's monkeying with all of the flags. Rather than change the CGAL_USE_FILE -# just get ride of this flag. -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - remove_cxx_flag("-stdlib=libc++") -endif() -IF(MSVC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") ### Enable parallel compilation for Visual Studio - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} ) - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} ) -ELSE(MSVC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") #### Libigl requires a modern C++ compiler that supports c++11 - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../" ) -ENDIF(MSVC) - +#find_package(CGAL REQUIRED) +#include(${CGAL_USE_FILE}) # This is absolutely necessary for Exact Construction # for some reason must come after cgal include. I think that it's overwriting # come flags like CXX_FLAGS #set(CMAKELISTS_SHARED_INCLUDED FALSE) -include("../CMakeLists.shared") -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES} ${CGAL_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/701_Statistics/CMakeLists.txt b/tutorial/701_Statistics/CMakeLists.txt index 2955af89c..e1af63f4d 100644 --- a/tutorial/701_Statistics/CMakeLists.txt +++ b/tutorial/701_Statistics/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(701_Statistics) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/702_WindingNumber/CMakeLists.txt b/tutorial/702_WindingNumber/CMakeLists.txt index 24086c05c..92b3fa1f1 100644 --- a/tutorial/702_WindingNumber/CMakeLists.txt +++ b/tutorial/702_WindingNumber/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(702_WindingNumber) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/703_Decimation/CMakeLists.txt b/tutorial/703_Decimation/CMakeLists.txt index ee7bcfecb..a9d76be85 100644 --- a/tutorial/703_Decimation/CMakeLists.txt +++ b/tutorial/703_Decimation/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(703_Decimation) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/704_SignedDistance/CMakeLists.txt b/tutorial/704_SignedDistance/CMakeLists.txt index 0af11b2d8..7aad8cf9e 100644 --- a/tutorial/704_SignedDistance/CMakeLists.txt +++ b/tutorial/704_SignedDistance/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(704_SignedDistance) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/705_MarchingCubes/CMakeLists.txt b/tutorial/705_MarchingCubes/CMakeLists.txt index 37f35aea5..831613557 100644 --- a/tutorial/705_MarchingCubes/CMakeLists.txt +++ b/tutorial/705_MarchingCubes/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 2.6) project(705_MarchingCubes) -include("../CMakeLists.shared") - -set(SOURCES -${PROJECT_SOURCE_DIR}/main.cpp -) - -add_executable(${PROJECT_NAME}_bin ${SOURCES} ${SHARED_SOURCES}) -target_link_libraries(${PROJECT_NAME}_bin ${SHARED_LIBRARIES}) +include_directories(${LIBIGL_INCLUDE_DIRS}) +add_executable(${PROJECT_NAME}_bin + main.cpp +${LIBIGL_EXTRA_SOURCES}) +target_link_libraries(${PROJECT_NAME}_bin ${LIBIGL_LIBRARIES} ${LIBIGL_EXTRA_LIBRARIES}) diff --git a/tutorial/CMakeLists.shared b/tutorial/CMakeLists.shared deleted file mode 100644 index 9ff95da7c..000000000 --- a/tutorial/CMakeLists.shared +++ /dev/null @@ -1,112 +0,0 @@ -# http://stackoverflow.com/a/18234926/148668 -# -stdlib=libc++ breaks gcc (for clang, the correct stdlib will be used with -# -std=c++11 anyway) -macro(remove_cxx_flag flag) - string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -endmacro() -remove_cxx_flag("-stdlib=libc++") -if(NOT CMAKELISTS_SHARED_INCLUDED) -set(CMAKELISTS_SHARED_INCLUDED TRUE) - -IF(MSVC) -### Enable parallel compilation for Visual Studio - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") -ELSE(MSVC) -#### Libigl requires a modern C++ compiler that supports c++11 - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -ENDIF(MSVC) - -find_package(OpenMP) -if (OPENMP_FOUND AND NOT WIN32) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") -endif() - -SET(CMAKE_VERBOSE_MAKEFILE ON) - -set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake ${PROJECT_SOURCE_DIR}/cmake) -set(CMAKE_COLOR_MAKEFILE ON) - -############################ -## SEPARATE BUILD OPTIONS ## -############################ - -find_package(OpenGL REQUIRED) -find_package(EIGEN REQUIRED) -find_package(GLFWH REQUIRED) -#find_package(LIBIGL REQUIRED) -#find_package(NANOGUI REQUIRED) - -if(NOT APPLE) - find_package(GLEW REQUIRED) -endif(NOT APPLE) - -if(APPLE) - set(CMAKE_CXX_LINK_FLAGS "-framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2") -endif (APPLE) #APPLE - -if(UNIX AND NOT APPLE) - set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lGL -lGLU -lrt -lX11 -lXxf86vm -lXrandr -lpthread -lXi -lXcursor -lXinerama ") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx") -endif(UNIX AND NOT APPLE) - -#include_directories( ${NANOGUI_INCLUDE_DIRS} ) - - -if(NOT APPLE) - include_directories( ${GLEW_INCLUDE_DIR} ) -endif(NOT APPLE) - -include_directories( ${EIGEN_INCLUDE_DIR}) -#include_directories( ${LIBIGL_INCLUDE_DIRS}) -include_directories( ${GLFW_INCLUDE_DIR}) -include_directories( - /usr/local/include - /opt/local/include - ${PROJECT_SOURCE_DIR} - ${OPENGL_INCLUDE_DIR} -) - -link_directories( - /usr/local/lib - ${EIGEN_DIRS} -) - -#set(CMAKE_CXX_FLAGS -Wall -W -pedantic -std=c99) - -# Disable deprecated opengl code from libigl -add_definitions(-DIGL_OPENGL_4) - -IF(CMAKE_BUILD_TYPE MATCHES RELEASE) - add_definitions(-DNDEBUG) -ENDIF(CMAKE_BUILD_TYPE MATCHES RELEASE) - -#add_definitions(-DENABLE_XML_SERIALIZATION) - - - -if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register") -endif() - -# set(SHARED_SOURCES ${LIBIGL_SOURCES}) - -if(NOT APPLE) - set(SHARED_SOURCES ${SHARED_SOURCES} ${GLEW_SOURCES}) -endif(NOT APPLE) - -# message(FATAL_ERROR ${LIBIGL_SOURCES}) - - -set(SHARED_LIBRARIES -# ${LIBIGL_LIBRARIES} - ${OPENGL_LIBRARIES} -# ${NANOGUI_LIBRARY} - ${EIGEN_LIBRARIES} - ${GLEW_LIBRARIES} -# ${GLFW_LIBRARIES} -) - -endif(NOT CMAKELISTS_SHARED_INCLUDED) diff --git a/tutorial/CMakeLists.txt b/tutorial/CMakeLists.txt index b1f8e6eb2..9376f5098 100644 --- a/tutorial/CMakeLists.txt +++ b/tutorial/CMakeLists.txt @@ -1,211 +1,152 @@ cmake_minimum_required(VERSION 2.6) project(libigl_tutorials) -message("Generated with config types: ${CMAKE_CONFIGURATION_TYPES}") +### Compilation flags: adapt to your needs ### +if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /bigobj") ### Enable parallel compilation + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} ) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} ) +else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") #### Libigl requires a modern C++ compiler that supports c++11 + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../" ) +endif() -option(LIBIGL_USE_STATIC_LIBRARY "Use static library" OFF) - -if(LIBIGL_USE_STATIC_LIBRARY) - add_definitions(-DIGL_STATIC_LIBRARY) -endif(LIBIGL_USE_STATIC_LIBRARY) - -SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) - -IF(MSVC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /bigobj /w") ### Enable parallel compilation for Visual Studio - - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} ) - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} ) - -ELSE(MSVC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") #### Libigl requires a modern C++ compiler that supports c++11 - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../" ) -ENDIF(MSVC) - -find_package(CORK QUIET) -find_package(CGAL QUIET) -find_package(EMBREE QUIET) -find_package(LIBCOMISOH QUIET) -find_package(MATLAB QUIET) -find_package(MOSEK QUIET) -find_package(TETGEN QUIET) -find_package(TINYXML2 QUIET) -find_package(TRIANGLE QUIET) - -message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") -include("CMakeLists.shared") - -#Compile libigl -add_definitions(-DIGL_NO_OPENGL) - -if(LIBIGL_USE_STATIC_LIBRARY) - add_subdirectory("../optional" "libigl") -endif(LIBIGL_USE_STATIC_LIBRARY) -include_directories("../include") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") -#Compile embree -option(ENABLE_ISPC_SUPPORT " " OFF) -option(RTCORE_TASKING_SYSTEM " " INTERNAL) +### libIGL options: choose between header only and comiled static library +option(LIBIGL_USE_STATIC_LIBRARY "Use LibIGL as static library" OFF) -IF(NOT MSVC) # embree static build is broken on visual studio - option(ENABLE_STATIC_LIB " " ON) - set(ENABLE_STATIC_LIB ON CACHE BOOL "force static build of embree" FORCE) -ENDIF(NOT MSVC) +### libIGL options: choose your dependencies (by default everything is OFF, in this example we need the viewer) ### +#option(LIBIGL_WITH_BBW "Use BBW" ON) +option(LIBIGL_WITH_BOOLEAN "Use Cork boolean" OFF) +option(LIBIGL_WITH_CGAL "Use CGAL" OFF) +#option(LIBIGL_WITH_COMISO "Use CoMiso" OFF) +#option(LIBIGL_WITH_EMBREE "Use Embree" ON) +#option(LIBIGL_WITH_LIM "Use LIM" ON) +#option(LIBIGL_WITH_MATLAB "Use Matlab" OFF) +#option(LIBIGL_WITH_MOSEK "Use MOSEK" OFF) +#option(LIBIGL_WITH_OPENGL "Use OpenGL" ON) +#option(LIBIGL_WITH_PNG "Use PNG" ON) +#option(LIBIGL_WITH_TETGEN "Use Tetgen" ON) +#option(LIBIGL_WITH_TRIANGLE "Use Triangle" ON) +option(LIBIGL_WITH_VIEWER "Use Nanogui Viewer" ON) +#option(LIBIGL_WITH_XML "Use XML" OFF) -IF(MSVC) - option(USE_STATIC_RUNTIME " " OFF) - set(USE_STATIC_RUNTIME OFF CACHE BOOL "disable changes in the runtime for VS" FORCE) -ENDIF(MSVC) +### Adding libIGL: choose the path to your local copy libIGL ### +### This is going to compile everything you requested ### +add_subdirectory("${PROJECT_SOURCE_DIR}/../cmake" "libigl") -option(ENABLE_TUTORIALS " " OFF) +### ligIBL information ### +message("libIGL includes: ${LIBIGL_INCLUDE_DIRS}") +message("libIGL libraries: ${LIBIGL_LIBRARIES}") +message("libIGL extra sources: ${LIBIGL_EXTRA_SOURCES}") +message("libIGL extra libraries: ${LIBIGL_EXTRA_LIBRARIES}") +message("libIGL definitions: ${LIBIGL_DEFINITIONS}") -add_subdirectory("../external/embree/" "embree") -include_directories("../external/embree/include") -list(APPEND SHARED_LIBRARIES "embree") +### Choose which chapters to compile ### +option(TUTORIALS_CHAPTER1 "Compile chapter 1" ON) +option(TUTORIALS_CHAPTER2 "Compile chapter 2" OFF) +option(TUTORIALS_CHAPTER3 "Compile chapter 3" OFF) +option(TUTORIALS_CHAPTER4 "Compile chapter 4" OFF) +option(TUTORIALS_CHAPTER5 "Compile chapter 5" OFF) +option(TUTORIALS_CHAPTER6 "Compile chapter 6" OFF) +option(TUTORIALS_CHAPTER7 "Compile chapter 7" OFF) -# endif(True) - -# if(True) -#Compile nanogui -set(NANOGUI_BUILD_PYTHON OFF CACHE BOOL " " FORCE) -set(NANOGUI_BUILD_EXAMPLE OFF CACHE BOOL " " FORCE) -set(NANOGUI_BUILD_SHARED OFF CACHE BOOL " " FORCE) - -add_subdirectory("../external/nanogui/" "nanogui") -include_directories("../external/nanogui/include") -include_directories("../external/nanogui/ext/nanovg/src") -list(APPEND SHARED_LIBRARIES "nanogui") - - -#Compile CoMISo (if found) -# NOTE: this cmakefile works only with the -# comiso available here: https://github.com/libigl/CoMISo -IF(LIBCOMISO_FOUND) - - list(GET LIBCOMISO_INCLUDE_DIRS 0 COMISO_ROOT) - # message( FATAL_ERROR "${COMISO_ROOT}" ) - - if(APPLE) - find_library(accelerate_library Accelerate) - list(APPEND SHARED_LIBRARIES "CoMISo" ${accelerate_library}) - elseif(UNIX) - find_package(BLAS REQUIRED) - list(APPEND SHARED_LIBRARIES "CoMISo" ${BLAS_LIBRARIES}) - endif(APPLE) - - if(MSVC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_SCL_SECURE_NO_DEPRECATE") - #link_directories("${COMISO_ROOT}/CoMISo/ext/OpenBLAS-v0.2.14-Win64-int64/lib/") - list(APPEND SHARED_LIBRARIES "CoMISo" "${COMISO_ROOT}/CoMISo/ext/OpenBLAS-v0.2.14-Win64-int64/lib/libopenblas.dll.a.lib") - endif(MSVC) - - - include_directories("${COMISO_ROOT}/CoMISo/ext/gmm-4.2/include") - include_directories("${COMISO_ROOT}/") - add_subdirectory("${COMISO_ROOT}/CoMISo/" "CoMISo") - - if(MSVC) - # Copy the dll - add_custom_target(Copy-CoMISo-DLL # Adds a post-build event to MyTest - COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${COMISO_ROOT}/CoMISo/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libopenblas.dll" - "${CMAKE_CURRENT_BINARY_DIR}/libopenblas.dll" - COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${COMISO_ROOT}/CoMISo/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libgcc_s_seh-1.dll" - "${CMAKE_CURRENT_BINARY_DIR}/libgcc_s_seh-1.dll" - COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${COMISO_ROOT}/CoMISo/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libgfortran-3.dll" - "${CMAKE_CURRENT_BINARY_DIR}/libgfortran-3.dll" - COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${COMISO_ROOT}/CoMISo/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libquadmath-0.dll" - "${CMAKE_CURRENT_BINARY_DIR}/libquadmath-0.dll") - endif(MSVC) - -ENDIF(LIBCOMISO_FOUND) - -message(STATUS "Linking with: ${LIBIGL_LIBRARIES}") -list(APPEND SHARED_LIBRARIES ${LIBIGL_LIBRARIES}) - -# This is necessary to work around the static linking order dependencies on linux -if(UNIX AND NOT APPLE) - set(SHARED_LIBRARIES ${SHARED_LIBRARIES} ${SHARED_LIBRARIES}) -endif(UNIX AND NOT APPLE) - -#message(FATAL_ERROR ${SHARED_LIBRARIES}) - -# Store location of tutorial/shared directory +# Store location of tutorial/shared directory set(TUTORIAL_SHARED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/shared CACHE PATH "location of shared tutorial resources") add_definitions("-DTUTORIAL_SHARED_PATH=\"${TUTORIAL_SHARED_PATH}\"") +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + # Chapter 1 -add_subdirectory("101_FileIO") -add_subdirectory("102_DrawMesh") -add_subdirectory("103_Events") -add_subdirectory("104_Colors") -add_subdirectory("105_Overlays") -add_subdirectory("106_ViewerMenu") +if(TUTORIALS_CHAPTER1) + add_subdirectory("101_FileIO") + add_subdirectory("102_DrawMesh") + add_subdirectory("103_Events") + add_subdirectory("104_Colors") + add_subdirectory("105_Overlays") + add_subdirectory("106_ViewerMenu") +endif() # Chapter 2 -add_subdirectory("201_Normals") -add_subdirectory("202_GaussianCurvature") -add_subdirectory("203_CurvatureDirections") -add_subdirectory("204_Gradient") -add_subdirectory("205_Laplacian") +if(TUTORIALS_CHAPTER2) + add_subdirectory("201_Normals") + add_subdirectory("202_GaussianCurvature") + add_subdirectory("203_CurvatureDirections") + add_subdirectory("204_Gradient") + add_subdirectory("205_Laplacian") +endif() # Chapter 3 -add_subdirectory("301_Slice") -add_subdirectory("302_Sort") -add_subdirectory("303_LaplaceEquation") -add_subdirectory("304_LinearEqualityConstraints") -add_subdirectory("305_QuadraticProgramming") -add_subdirectory("306_EigenDecomposition") +if(TUTORIALS_CHAPTER3) + add_subdirectory("301_Slice") + add_subdirectory("302_Sort") + add_subdirectory("303_LaplaceEquation") + add_subdirectory("304_LinearEqualityConstraints") + add_subdirectory("305_QuadraticProgramming") + add_subdirectory("306_EigenDecomposition") +endif() # Chapter 4 -add_subdirectory("401_BiharmonicDeformation") -add_subdirectory("402_PolyharmonicDeformation") -add_subdirectory("403_BoundedBiharmonicWeights") -add_subdirectory("404_DualQuaternionSkinning") -add_subdirectory("405_AsRigidAsPossible") -add_subdirectory("406_FastAutomaticSkinningTransformations") -add_subdirectory("407_BiharmonicCoordinates") +if(TUTORIALS_CHAPTER4) + add_subdirectory("401_BiharmonicDeformation") + add_subdirectory("402_PolyharmonicDeformation") + add_subdirectory("403_BoundedBiharmonicWeights") + add_subdirectory("404_DualQuaternionSkinning") + add_subdirectory("405_AsRigidAsPossible") + add_subdirectory("406_FastAutomaticSkinningTransformations") + add_subdirectory("407_BiharmonicCoordinates") +endif() # Chapter 5 -add_subdirectory("501_HarmonicParam") -add_subdirectory("502_LSCMParam") -add_subdirectory("503_ARAPParam") -if(LIBCOMISO_FOUND) - add_subdirectory("504_NRosyDesign") - add_subdirectory("505_MIQ") - add_subdirectory("506_FrameField") -endif(LIBCOMISO_FOUND) -add_subdirectory("507_PolyVectorField") -add_subdirectory("508_ConjugateField") -add_subdirectory("509_Planarization") -add_subdirectory("510_Integrable") +if(TUTORIALS_CHAPTER5) + add_subdirectory("501_HarmonicParam") + add_subdirectory("502_LSCMParam") + add_subdirectory("503_ARAPParam") + if(LIBIGL_WITH_COMISO) + add_subdirectory("504_NRosyDesign") + add_subdirectory("505_MIQ") + add_subdirectory("506_FrameField") + endif() + add_subdirectory("507_PolyVectorField") + add_subdirectory("508_ConjugateField") + add_subdirectory("509_Planarization") + add_subdirectory("510_Integrable") +endif() # Chapter 6 -if(TINYXML2_FOUND) - add_subdirectory("601_Serialization") -endif(TINYXML2_FOUND) -if(MATLAB_FOUND) - add_subdirectory("602_Matlab") -endif(MATLAB_FOUND) -add_subdirectory("604_Triangle") -add_subdirectory("605_Tetgen") - -add_subdirectory("606_AmbientOcclusion") -add_subdirectory("607_Picking") - -if(LIM_FOUND) - add_subdirectory("608_LIM") -endif(LIM_FOUND) -if(CGAL_FOUND) - add_subdirectory("609_Boolean") - add_subdirectory("610_CSGTree") +if(TUTORIALS_CHAPTER6) + if(LIBIGL_WITH_XML) + add_subdirectory("601_Serialization") + endif() + if(LIBIGL_WITH_MATLAB) + add_subdirectory("602_Matlab") + endif() + if(LIBIGL_WITH_TRIANGLE) + add_subdirectory("604_Triangle") + endif() + if(LIBIGL_WITH_TETGEN) + add_subdirectory("605_Tetgen") + endif() + if(LIBIGL_WITH_EMBREE) + add_subdirectory("606_AmbientOcclusion") + add_subdirectory("607_Picking") + endif() + if(LIBIGL_WITH_LIM) + add_subdirectory("608_LIM") + endif() + if(LIBIGL_WITH_CGAL) + add_subdirectory("609_Boolean") + add_subdirectory("610_CSGTree") + endif() +endif() + +# Chapter 7 +if(TUTORIALS_CHAPTER7) + add_subdirectory("701_Statistics") + add_subdirectory("702_WindingNumber") + add_subdirectory("703_Decimation") + add_subdirectory("704_SignedDistance") + add_subdirectory("705_MarchingCubes") endif() -add_subdirectory("701_Statistics") -add_subdirectory("702_WindingNumber") -add_subdirectory("703_Decimation") -add_subdirectory("704_SignedDistance") -add_subdirectory("705_MarchingCubes")