Browse Source

added glew in external folder to make the tutorial examples fully self-contained

Former-commit-id: 59b9325c5bce6597827adb4b2d896a1f458b5398
Daniele Panozzo 11 years ago
parent
commit
fc5f9344a5

+ 3 - 3
tutorial/CMakeLists.shared

@@ -46,11 +46,11 @@ link_directories(
 #set(CMAKE_CXX_FLAGS -Wall -W -pedantic -std=c99)
 
 if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-	add_definitions(-std=c++11)
-	add_definitions(-Wno-deprecated-register)
+	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})
+set(SHARED_SOURCES ${LIBIGL_SOURCES} ${GLEW_SOURCES})
 
 # message(FATAL_ERROR ${LIBIGL_SOURCES})
 

+ 40 - 0
tutorial/cmake/FindANTTWEAKBAR.cmake

@@ -0,0 +1,40 @@
+#
+# Try to find AntTweakBar library and include path.
+# Once done this will define
+#
+# ANT_TWEAK_BAR_FOUND
+# ANT_TWEAK_BAR_INCLUDE_DIR
+# ANT_TWEAK_BAR_LIBRARY
+#
+
+FIND_PATH(ANT_TWEAK_BAR_INCLUDE_DIR AntTweakBar.h
+      PATHS
+	    ${PROJECT_SOURCE_DIR}/../libigl/external/AntTweakBar/include/
+      ${PROJECT_SOURCE_DIR}/../../external/AntTweakBar/include/
+      /usr/local/include
+      /usr/X11/include
+      /usr/include)
+
+set(ANT_TWEAK_BAR_INCLUDE_DIR ${ANT_TWEAK_BAR_INCLUDE_DIR} ${ANT_TWEAK_BAR_INCLUDE_DIR}/../src/)
+
+FIND_LIBRARY( ANT_TWEAK_BAR_LIBRARY AntTweakBar
+  PATHS
+		${PROJECT_SOURCE_DIR}/../libigl/external/AntTweakBar/lib
+    ${PROJECT_SOURCE_DIR}/../../external/AntTweakBar/lib
+    /usr/local
+    /usr/X11
+    /usr
+  PATH_SUFFIXES
+    a
+    lib64
+    lib
+    dylib
+)
+
+# message(FATAL_ERROR ${ANT_TWEAK_BAR_LIBRARY})
+
+if(ANT_TWEAK_BAR_INCLUDE_DIR AND ANT_TWEAK_BAR_LIBRARY)
+	message(STATUS "Found ANTTWEAKBAR: ${ANT_TWEAK_BAR_INCLUDE_DIR}")
+else(ANT_TWEAK_BAR_INCLUDE_DIR AND ANT_TWEAK_BAR_LIBRARY)
+	message(FATAL_ERROR "could NOT find ANTTWEAKBAR")
+endif(ANT_TWEAK_BAR_INCLUDE_DIR AND ANT_TWEAK_BAR_LIBRARY)

+ 81 - 0
tutorial/cmake/FindEIGEN.cmake

@@ -0,0 +1,81 @@
+# - Try to find Eigen3 lib
+#
+# This module supports requiring a minimum version, e.g. you can do
+#   find_package(Eigen3 3.1.2)
+# to require version 3.1.2 or newer of Eigen3.
+#
+# Once done this will define
+#
+#  EIGEN_FOUND - system has eigen lib with correct version
+#  EIGEN_INCLUDE_DIR - the eigen include directory
+#  EIGEN_VERSION - eigen version
+
+# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
+# Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>
+# Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+# Redistribution and use is allowed according to the terms of the 2-clause BSD license.
+
+if(NOT Eigen_FIND_VERSION)
+  if(NOT Eigen_FIND_VERSION_MAJOR)
+    set(Eigen_FIND_VERSION_MAJOR 2)
+  endif(NOT Eigen_FIND_VERSION_MAJOR)
+  if(NOT Eigen_FIND_VERSION_MINOR)
+    set(Eigen_FIND_VERSION_MINOR 91)
+  endif(NOT Eigen_FIND_VERSION_MINOR)
+  if(NOT Eigen_FIND_VERSION_PATCH)
+    set(Eigen_FIND_VERSION_PATCH 0)
+  endif(NOT Eigen_FIND_VERSION_PATCH)
+
+  set(Eigen_FIND_VERSION "${Eigen_FIND_VERSION_MAJOR}.${Eigen_FIND_VERSION_MINOR}.${Eigen_FIND_VERSION_PATCH}")
+endif(NOT Eigen_FIND_VERSION)
+
+macro(_eigen3_check_version)
+  file(READ "${EIGEN_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
+
+  string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}")
+  set(EIGEN_WORLD_VERSION "${CMAKE_MATCH_1}")
+  string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}")
+  set(EIGEN_MAJOR_VERSION "${CMAKE_MATCH_1}")
+  string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}")
+  set(EIGEN_MINOR_VERSION "${CMAKE_MATCH_1}")
+
+  set(EIGEN_VERSION ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})
+  if(${EIGEN_VERSION} VERSION_LESS ${Eigen_FIND_VERSION})
+    set(EIGEN_VERSION_OK FALSE)
+  else(${EIGEN_VERSION} VERSION_LESS ${Eigen_FIND_VERSION})
+    set(EIGEN_VERSION_OK TRUE)
+  endif(${EIGEN_VERSION} VERSION_LESS ${Eigen_FIND_VERSION})
+
+  if(NOT EIGEN_VERSION_OK)
+
+    message(STATUS "Eigen version ${EIGEN_VERSION} found in ${EIGEN_INCLUDE_DIR}, "
+                   "but at least version ${Eigen_FIND_VERSION} is required")
+  endif(NOT EIGEN_VERSION_OK)
+endmacro(_eigen3_check_version)
+
+if (EIGEN_INCLUDE_DIRS)
+
+  # in cache already
+  _eigen3_check_version()
+  set(EIGEN_FOUND ${EIGEN_VERSION_OK})
+
+else ()
+
+  find_path(EIGEN_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
+      PATHS
+      ${CMAKE_INSTALL_PREFIX}/include
+      ${KDE4_INCLUDE_DIR}
+      PATH_SUFFIXES eigen3 eigen
+    )
+
+  if(EIGEN_INCLUDE_DIR)
+    _eigen3_check_version()
+  endif(EIGEN_INCLUDE_DIR)
+
+  include(FindPackageHandleStandardArgs)
+  find_package_handle_standard_args(Eigen DEFAULT_MSG EIGEN_INCLUDE_DIR EIGEN_VERSION_OK)
+
+  mark_as_advanced(EIGEN_INCLUDE_DIR)
+  SET(EIGEN_INCLUDE_DIRS ${EIGEN_INCLUDE_DIR} CACHE PATH "The Eigen include path.")
+
+endif()

+ 42 - 0
tutorial/cmake/FindGLEW.cmake

@@ -0,0 +1,42 @@
+# - Try to find the GLEW library
+# Once done this will define
+#
+#  GLEW_FOUND - system has GLEW
+#  GLEW_INCLUDE_DIR - the GLEW include directory
+#  GLEW_LIBRARIES - The libraries needed to use GLEW
+
+if(GLEW_INCLUDE_DIR AND GLEW_LIBRARIES)
+   set(GLEW_FOUND TRUE)
+else(GLEW_INCLUDE_DIR AND GLEW_LIBRARIES)
+
+FIND_PATH(GLEW_INCLUDE_DIR GL/glew.h
+   ${PROJECT_SOURCE_DIR}/../../external/glew/include
+   /usr/include
+   /usr/local/include
+   $ENV{GLEWROOT}/include
+   $ENV{GLEW_ROOT}/include
+   $ENV{GLEW_DIR}/include
+   $ENV{GLEW_DIR}/inc
+   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC]/PlatformSDK/Include
+   NO_DEFAULT_PATH
+)
+
+if(GLEW_INCLUDE_DIR)
+   set(GLEW_FOUND TRUE)
+endif(GLEW_INCLUDE_DIR)
+
+
+if(GLEW_FOUND)
+  set(GLEW_SOURCES ${GLEW_INCLUDE_DIR}/../src/glew.c)
+   if(NOT GLEW_FIND_QUIETLY)
+      message(STATUS "Found GLEW: ${GLEW_LIBRARIES}")
+   endif(NOT GLEW_FIND_QUIETLY)
+else(GLEW_FOUND)
+   if(GLEW_FIND_REQUIRED)
+      message(FATAL_ERROR "could NOT find glew")
+   endif(GLEW_FIND_REQUIRED)
+endif(GLEW_FOUND)
+
+MARK_AS_ADVANCED(GLEW_INCLUDE_DIR)
+
+endif(GLEW_INCLUDE_DIR)

+ 42 - 0
tutorial/cmake/FindGLFW.cmake

@@ -0,0 +1,42 @@
+#
+# Try to find GLFW library and include path.
+# Once done this will define
+#
+# GLFW_FOUND
+# GLFW_INCLUDE_DIR
+# GLFW_LIBRARIES
+#
+
+FIND_PATH(GLFW_INCLUDE_DIR GLFW/glfw3.h
+  PATHS
+    ${PROJECT_SOURCE_DIR}/../../external/glfw/include
+    /usr/local/include
+    /usr/X11/include
+    /usr/include
+    /opt/local/include
+    NO_DEFAULT_PATH
+    )
+
+FIND_LIBRARY( GLFW_LIBRARIES NAMES glfw glfw3
+  PATHS
+    ${PROJECT_SOURCE_DIR}/../../external/glfw/src
+    /usr/local
+    /usr/X11
+    /usr
+    PATH_SUFFIXES
+    a
+    lib64
+    lib
+    NO_DEFAULT_PATH
+)
+
+SET(GLFW_FOUND "NO")
+IF (GLFW_INCLUDE_DIR AND GLFW_LIBRARIES)
+	SET(GLFW_FOUND "YES")
+ENDIF (GLFW_INCLUDE_DIR AND GLFW_LIBRARIES)
+
+if(GLFW_FOUND)
+  message(STATUS "Found GLFW: ${GLFW_INCLUDE_DIR}")
+else(GLFW_FOUND)
+  message(FATAL_ERROR "could NOT find GLFW")
+endif(GLFW_FOUND)

+ 45 - 0
tutorial/cmake/FindLIBIGL.cmake

@@ -0,0 +1,45 @@
+# - Try to find the LIBIGL library
+# Once done this will define
+#
+#  LIBIGL_FOUND - system has LIBIGL
+#  LIBIGL_INCLUDE_DIR - the LIBIGL include directory
+#  LIBIGL_SOURCES - the LIBIGL source files
+
+
+if(LIBIGL_INCLUDE_DIR AND LIBIGL_SOURCES)
+   set(LIBIGL_FOUND TRUE)
+else(LIBIGL_INCLUDE_DIR AND LIBIGL_SOURCES)
+
+FIND_PATH(LIBIGL_INCLUDE_DIR igl/readOBJ.h
+   /usr/include
+   /usr/local/include
+   $ENV{LIBIGLROOT}/include
+   $ENV{LIBIGL_ROOT}/include
+   $ENV{LIBIGL_DIR}/include
+   $ENV{LIBIGL_DIR}/inc
+   ${PROJECT_SOURCE_DIR}/../libigl/include
+   ${PROJECT_SOURCE_DIR}/../../libigl/include
+   ${PROJECT_SOURCE_DIR}/../../include
+)
+
+if(LIBIGL_INCLUDE_DIR)
+   set(LIBIGL_FOUND TRUE)
+#   add_definitions(-DIGL_HEADER_ONLY)
+   set(LIBIGL_SOURCES
+      ${LIBIGL_INCLUDE_DIR}/igl/viewer/Viewer.cpp
+   )
+endif(LIBIGL_INCLUDE_DIR)
+
+if(LIBIGL_FOUND)
+   if(NOT LIBIGL_FIND_QUIETLY)
+      message(STATUS "Found LIBIGL: ${LIBIGL_INCLUDE_DIR}")
+   endif(NOT LIBIGL_FIND_QUIETLY)
+else(LIBIGL_FOUND)
+   if(LIBIGL_FIND_REQUIRED)
+      message(FATAL_ERROR "could NOT find LIBIGL")
+   endif(LIBIGL_FIND_REQUIRED)
+endif(LIBIGL_FOUND)
+
+MARK_AS_ADVANCED(LIBIGL_INCLUDE_DIR LIBIGL_LIBRARIES IGL_VIEWER_SOURCES)
+
+endif(LIBIGL_INCLUDE_DIR AND LIBIGL_SOURCES)

+ 23 - 0
tutorial/cmake/FindTINYXML2.cmake

@@ -0,0 +1,23 @@
+# - Try to find the TINYXML2 library
+# Once done this will define
+#
+#  TINYXML2_FOUND - system has TINYXML2
+#  TINYXML2_INCLUDE_DIR - the TINYXML2 include directory
+#  TINYXML2_SOURCES - the TINYXML2 source files
+
+FIND_PATH(TINYXML2_INCLUDE_DIR tinyxml2.h
+   /usr/include
+   /usr/local/include
+   ${PROJECT_SOURCE_DIR}/../libigl/external/tinyxml2/
+   ${PROJECT_SOURCE_DIR}/../../external/tinyxml2/
+)
+
+set(TINYXML2_SOURCES ${TINYXML2_INCLUDE_DIR}/tinyxml2.cpp)
+
+if(TINYXML2_INCLUDE_DIR)
+   message(STATUS "Found TINYXML2: ${TINYXML2_INCLUDE_DIR}")
+else(TINYXML2_INCLUDE_DIR)
+   message(FATAL_ERROR "could NOT find TINYXML2")
+endif(TINYXML2_INCLUDE_DIR)
+
+MARK_AS_ADVANCED(TINYXML2_INCLUDE_DIR TINYXML2_LIBRARIES TINYXML2_SOURCES)