-
Notifications
You must be signed in to change notification settings - Fork 39
/
CMakeLists.txt
130 lines (95 loc) · 3.91 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
cmake_minimum_required(VERSION 3.5)
project(simbenchmark)
########################################################################################################################
# ascii logo
message("")
message("===========================================================================")
message(" _____ ______ _______ _______ __________ ____ ______ ____ __ __")
message(" / ___// _/ |/ / __ )/ ____/ | / / ____/ / / / |/ / | / __ \\/ //_/")
message(" \\__ \\ / // /|_/ / __ / __/ / |/ / / / /_/ / /|_/ / /| | / /_/ / ,< ")
message(" ___/ // // / / / /_/ / /___/ /| / /___/ __ / / / / ___ |/ _, _/ /| | ")
message("/____/___/_/ /_/_____/_____/_/ |_/\\____/_/ /_/_/ /_/_/ |_/_/ |_/_/ |_| ")
message(" ")
message("===========================================================================")
message("")
message("This project is maintaied by Dongho Kang")
message("Contact [email protected] for bug report")
message("")
########################################################################################################################
## compiler
set(CMAKE_C_COMPILER "/usr/bin/gcc-7")
set(CMAKE_CXX_COMPILER "/usr/bin/g++-7")
#set(CMAKE_CXX_STANDARD 17)
add_definitions(-std=c++17)
########################################################################################################################
# cmake mode
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DRAIDEBUG)
else ()
remove_definitions(-DRAIDEBUG)
endif()
########################################################################################################################
# options
option(RAISIM "benchmark raiSim" ON)
option(BULLET "benchmark Bullet Multibody(bullet3 API)" ON)
option(ODE "benchmark ODE" ON)
option(MUJOCO "benchmark MUJOCO" ON)
option(DART "benchmark DART" ON)
option(BUILD_DEMO "build demos" ON)
option(BUILD_TEST "build tests" ON)
option(BUILD_BENCHMARK "build benchmark tests" ON)
# backend of raiSim: "ODE" or "BULLET"
set(RAISIM_BACKEND "ODE")
########################################################################################################################
message(STATUS "Benchmark the following physics engines:")
if(RAISIM)
message(STATUS " raiSim")
endif(RAISIM)
if(BULLET)
message(STATUS " Bullet")
endif(BULLET)
if(ODE)
message(STATUS " ODE")
endif(ODE)
if(MUJOCO)
message(STATUS " MUJOCO")
endif(MUJOCO)
if(DART)
message(STATUS " DART")
endif(DART)
########################################################################################################################
# dependencies
# global libs
# eigen
find_package(Eigen3 REQUIRED)
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIR})
# boost
find_package(Boost COMPONENTS system filesystem program_options REQUIRED)
include_directories(SYSTEM ${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIRS})
# external projects
# this libraries will be installed in the build directory
add_subdirectory(lib)
########################################################################################################################
# macro variable
add_definitions(-DROOTPATH="${CMAKE_CURRENT_SOURCE_DIR}")
add_definitions(-DRESOURCEPATH="${CMAKE_CURRENT_SOURCE_DIR}/res")
add_definitions(-DDATAPATH="${CMAKE_CURRENT_SOURCE_DIR}/data")
########################################################################################################################
# sims
include_directories(sim)
add_subdirectory(sim)
if(BUILD_DEMO)
add_subdirectory(demo)
endif(BUILD_DEMO)
if(BUILD_BENCHMARK)
add_subdirectory(benchmark)
endif(BUILD_BENCHMARK)
if(BUILD_TEST)
add_subdirectory(test)
endif(BUILD_TEST)
########################################################################################################################
# custom targets
add_custom_target(clean_all
COMMAND rm -rf *
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})