forked from simba518/MPRGP
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
103 lines (82 loc) · 2.92 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# cmake ../../ -DCMAKE_BUILD_TYPE=RELEASE
# cmake ../../ -DCMAKE_BUILD_TYPE=DEBUG
PROJECT(CollisionHandle C CXX)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
ADD_DEFINITIONS(-DPROJ_PATH="${CMAKE_SOURCE_DIR}/")
# debug and release
set(CMAKE_CXX_FLAGS_RELEASE "-fopenmp -O3 -Wall -fPIC -std=c++0x -fpermissive ${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "-fopenmp -O0 -g -ggdb -fPIC -std=c++0x -fpermissive ${CMAKE_CXX_FLAGS}")
ADD_DEFINITIONS(-DDOUBLE_PRECISION)
# ADD_DEFINITIONS(-DDEBUG_FUN)
ADD_DEFINITIONS(-DUTILITY_ASSERT)
ADD_DEFINITIONS(-DUTILITY_LOG)
ADD_DEFINITIONS(-DUTILITY_TIMER)
ADD_DEFINITIONS(-DUSE_FUNC_TIMER)
# # print log informations
ADD_DEFINITIONS(-DLOG_INFO)
ADD_DEFINITIONS(-DLOG_ERROR)
# ADD_DEFINITIONS(-DLOG_WARN)
# ADD_DEFINITIONS(-DLOG_TRACE)
# ADD_DEFINITIONS(-DLOG_DEBUG)
# remove all self-defined asserts
ADD_DEFINITIONS(-DNDEBUG)
# check release or debug version
IF (NOT CMAKE_BUILD_TYPE)
MESSAGE("generate release version")
SET(CMAKE_BUILD_TYPE "release")
SET(CMAKE_BUILD_TYPE_DIR "release")
ELSEIF (CMAKE_BUILD_TYPE STREQUAL "RELEASE")
MESSAGE("generate release version")
SET(CMAKE_BUILD_TYPE "release")
SET(CMAKE_BUILD_TYPE_DIR "release")
ELSEIF(${CMAKE_BUILD_TYPE} STREQUAL "DEBUG")
MESSAGE("generate debug version")
SET(CMAKE_BUILD_TYPE_DIR "debug")
SET(CMAKE_BUILD_TYPE "debug")
ENDIF (NOT CMAKE_BUILD_TYPE)
MESSAGE("CMAKE_CXX_FLAGS_DEBUG: " ${CMAKE_CXX_FLAGS_DEBUG})
MESSAGE("CMAKE_CXX_FLAGS_RELEASE: " ${CMAKE_CXX_FLAGS_RELEASE})
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib/${CMAKE_BUILD_TYPE_DIR})
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE_DIR})
# find packages
SET( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules/;${CMAKE_MODULE_PATH}" )
# ARPACK
# find_package(Arpack REQUIRED)
# GLUT
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
find_package(GLEW REQUIRED)
SET(Boost_USE_STATIC_LIBS ON)
SET(Boost_USE_MULTITHREADED ON)
SET(Boost_USE_STATIC_RUNTIME OFF)
FIND_PACKAGE( Boost COMPONENTS filesystem system REQUIRED)
IF(NOT LAPACK_FOUND)
SET(BLA_VENDOR "OpenBlas")
FIND_PACKAGE(BlasLapack)
ENDIF(NOT LAPACK_FOUND)
IF(NOT LAPACK_FOUND)
SET(BLA_VENDOR "Generic")
FIND_PACKAGE(BlasLapack)
ENDIF(NOT LAPACK_FOUND)
FIND_PACKAGE(SuiteSparse REQUIRED)
IF(SUITESPARSE_FOUND)
INCLUDE_DIRECTORIES(${SUITESPARSE_INCLUDE_DIRS})
ENDIF(SUITESPARSE_FOUND)
FIND_PACKAGE(Eigen3 REQUIRED)
IF(EIGEN3_FOUND)
INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})
ENDIF(EIGEN3_FOUND)
SET(LIBDIR ${PROJECT_SOURCE_DIR}/lib/${CMAKE_BUILD_TYPE_DIR})
INCLUDE_DIRECTORIES(
${PROJECT_SOURCE_DIR}/src/CollisionHandle
${PROJECT_SOURCE_DIR}/src/CommonFile
${PROJECT_SOURCE_DIR}/src/CommonFile/solvers
${PROJECT_SOURCE_DIR}/src/CommonFile/geom
${PROJECT_SOURCE_DIR}/src/ElasticSolver
${PROJECT_SOURCE_DIR}/src/MPRGPSolver
${PROJECT_SOURCE_DIR}/src/MPRGPSolver/SimpleQP
${PROJECT_SOURCE_DIR}/src/Utility
)
# projects
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(test_case)