提交 c327bbfa 编写于 作者: H henczati 提交者: Gines

Eigen and OpenGL finder (#772)

This also finds manual installs, e.g. in /usr/local.
Based on https://eigen.tuxfamily.org/dox/TopicCMakeGuide.html .
Needs CMake>=3.0
上级 5c6e9c26
......@@ -31,7 +31,8 @@ elseif (${CMAKE_VERSION} VERSION_GREATER 3.0.0)
else (${CMAKE_VERSION} VERSION_GREATER 3.9.0)
project(OpenPose)
endif (${CMAKE_VERSION} VERSION_GREATER 3.9.0)
cmake_minimum_required(VERSION 2.8.7 FATAL_ERROR) # min. cmake version recommended by Caffe
cmake_minimum_required(VERSION 3.0 FATAL_ERROR) # required by cmake eigen finder to find locally installed versions (e.g., CUDA 9.2 support was added in eigen 3.3.5)
# cmake_minimum_required(VERSION 2.8.7 FATAL_ERROR) # min. cmake version recommended by Caffe
### Extra functionality
......@@ -275,11 +276,11 @@ option(WITH_OPENCV_WITH_OPENGL "Much faster GUI display, but you must also enabl
# Set the acceleration library
if (WIN32 OR APPLE)
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode (NONE if not required or DOWNLOAD to let OpenPose download it).")
set_property(CACHE WITH_EIGEN PROPERTY STRINGS NONE BUILD)
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode: NONE if not required, BUILD to let OpenPose download it, or FIND to let CMake find it (e.g., if you installed it manually).")
set_property(CACHE WITH_EIGEN PROPERTY STRINGS NONE BUILD FIND)
elseif (UNIX AND NOT APPLE)
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode (NONE if not required, APT_GET if you used `sudo apt-get install libeigen3-dev`, BUILD to let OpenPose download it).")
set_property(CACHE WITH_EIGEN PROPERTY STRINGS NONE APT_GET BUILD)
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode: NONE if not required, BUILD to let OpenPose download it, or FIND to let CMake find it (e.g., if you installed it manually or used `sudo apt-get install libeigen3-dev`).")
set_property(CACHE WITH_EIGEN PROPERTY STRINGS NONE BUILD FIND)
endif (WIN32 OR APPLE)
# # Suboptions for OpenPose tracking
......@@ -388,11 +389,18 @@ else (${WITH_EIGEN} MATCHES "NONE")
download_zip("eigen_2018_05_23.zip" ${OP_URL} ${FIND_LIB_PREFIX} 29B9B2FD4679D587BB67467F09EE8365)
# Set path
set(EIGEN3_INCLUDE_DIRS "3rdparty/eigen/include/")
# Alread installed with apt-get
elseif (${WITH_EIGEN} MATCHES "APT_GET")
# Leave to CMake to find it
elseif (${WITH_EIGEN} MATCHES "FIND")
# Eigen
find_package(PkgConfig)
pkg_check_modules(EIGEN3 REQUIRED eigen3)
# # Option a) apt-get
# find_package(PkgConfig)
# pkg_check_modules(EIGEN3 REQUIRED eigen3)
# # Option b) Find it (including apt-get)
if (CUDA_VERSION_STRING STRGREATER "9.0")
find_package(Eigen3 3.3.5 REQUIRED NO_MODULE)
else (CUDA_VERSION_STRING STRGREATER "9.0")
find_package(Eigen3 3 REQUIRED NO_MODULE)
endif (CUDA_VERSION_STRING STRGREATER "9.0")
endif (${WITH_EIGEN} MATCHES "BUILD")
endif (${WITH_EIGEN} MATCHES "NONE")
......@@ -419,6 +427,8 @@ if (UNIX OR APPLE)
# 3D
if (WITH_3D_RENDERER)
# OpenGL
find_package(OpenGL REQUIRED)
# GLUT
find_package(GLUT REQUIRED)
# OpenGL
......@@ -440,8 +450,16 @@ if (UNIX OR APPLE)
if (NOT WITH_3D_RENDERER)
message(FATAL_ERROR "WITH_3D_RENDERER is required if WITH_3D_ADAM_MODEL is enabled.")
endif (NOT WITH_3D_RENDERER)
find_package(PkgConfig)
pkg_check_modules(EIGEN3 REQUIRED eigen3)
# Eigen
# # Option a) apt-get
# find_package(PkgConfig)
# pkg_check_modules(EIGEN3 REQUIRED eigen3)
# # Option b) Find it (including apt-get)
if (CUDA_VERSION_STRING STRGREATER "9.0")
find_package(Eigen3 3.3.5 REQUIRED NO_MODULE)
else (CUDA_VERSION_STRING STRGREATER "9.0")
find_package(Eigen3 3 REQUIRED NO_MODULE)
endif (CUDA_VERSION_STRING STRGREATER "9.0")
# Others: sudo apt-get install libglm-dev
# http://ceres-solver.org
find_package(Ceres REQUIRED COMPONENTS SuiteSparse)
......@@ -821,6 +839,7 @@ endif (USE_ASIO)
if (NOT ${WITH_EIGEN} MATCHES "NONE")
include_directories(
${EIGEN3_INCLUDE_DIRS})
set(OpenPose_3rdparty_libraries ${OpenPose_3rdparty_libraries} Eigen3::Eigen)
endif (NOT ${WITH_EIGEN} MATCHES "NONE")
if (APPLE)
......@@ -859,9 +878,10 @@ if (WITH_3D_ADAM_MODEL)
include_directories(include/adam) # TODO: TEMPORARY - TO BE REMOVED IN THE FUTURE
include_directories(${CERES_INCLUDE_DIRS})
include_directories(${EIGEN3_INCLUDE_DIRS})
set(OpenPose_3rdparty_libraries ${OpenPose_3rdparty_libraries} Eigen3::Eigen)
include_directories(${IGL_INCLUDE_DIRS})
include_directories(${LIBIGL_INCLUDE_DIRS})
include_directories(${GLUT_INCLUDE_DIRS} ${GLEW_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIR})
include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIRS} ${GLEW_INCLUDE_DIRS})
endif (WITH_3D_ADAM_MODEL)
# Windows includes
if (WIN32)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册