Skip to content

Commit b602a0d

Browse files
committed
[CMake] clean: keep minimal required instructions
1 parent 499fce4 commit b602a0d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+67
-114
lines changed

CMakeLists.txt

100755100644
Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,69 @@
1-
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
1+
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
22

3-
INCLUDE(cmake/base.cmake)
4-
INCLUDE(cmake/eigen.cmake)
5-
6-
# Compiles despite warnings
7-
SET(CXX_DISABLE_WERROR True)
8-
# Display all warnings
9-
SET(CMAKE_VERBOSE_MAKEFILE True)
10-
11-
# Set project identity
3+
# Project properties
4+
SET(PROJECT_ORG stack-of-tasks)
125
SET(PROJECT_NAME ddp-actuator-solver)
136
SET(PROJECT_DESCRIPTION "DDP/iLQR solver for robotics actuators command")
14-
SET(PROJECT_URL "https://github.com/stack-of-tasks/ddp-actuator-solver")
7+
SET(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}")
8+
9+
# Project options
10+
OPTION(SUFFIX_SO_VERSION "Suffix library name with its version" ON)
11+
12+
# Project configuration
13+
SET(PROJECT_USE_CMAKE_EXPORT TRUE)
14+
SET(CUSTOM_HEADER_DIR "${PROJECT_NAME}")
15+
SET(CXX_DISABLE_WERROR TRUE)
16+
SET(CMAKE_VERBOSE_MAKEFILE TRUE)
17+
18+
# JRL-cmakemodule setup
19+
INCLUDE(cmake/base.cmake)
1520

16-
SETUP_PROJECT()
21+
# Project definition
22+
COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
23+
PROJECT(${PROJECT_NAME} ${PROJECT_ARGS})
1724

25+
# Project dependencies
26+
ADD_PROJECT_DEPENDENCY(Eigen3 REQUIRED PKG_CONFIG_REQUIRES eigen3)
1827
SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/find-external/qpOASES")
1928
FIND_PACKAGE("qpOASES" REQUIRED)
20-
INCLUDE_DIRECTORIES(SYSTEM ${qpOASES_INCLUDE_DIRS})
2129

22-
# Add eigen3 as another needed dependency
23-
ADD_REQUIRED_DEPENDENCY("eigen3 >= 3.0.5")
24-
25-
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
2630

2731
# Set the headers to be installed
2832
SET(${PROJECT_NAME}_HEADERS
2933
include/ddp-actuator-solver/costfunction.hh
3034
include/ddp-actuator-solver/dynamicmodel.hh
31-
include/ddp-actuator-solver/ddpsolver.hh)
35+
include/ddp-actuator-solver/ddpsolver.hh
36+
)
3237

33-
SET(HEADERS
34-
${${PROJECT_NAME}_HEADERS}
38+
SET(${PROJECT_NAME}_SOURCES
39+
src/pyrene_actuator/pyreneCostFunction.cpp
40+
src/pyrene_actuator/pyreneActuator.cpp
41+
src/romeo_actuator/costfunctionromeoactuator.cpp
42+
src/romeo_actuator/romeosimpleactuator.cpp
43+
src/romeo_actuator/romeotorqueactuator.cpp
44+
src/temperature_control/costtemp.cpp
45+
src/temperature_control/dctemp.cpp
46+
src/linear/costLinear.cpp
47+
src/linear/modelLinear.cpp
48+
src/inverse_pendulum/costIP.cpp
49+
src/inverse_pendulum/modelIP.cpp
3550
)
3651

52+
ADD_LIBRARY(${PROJECT_NAME} SHARED
53+
${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS})
54+
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} SYSTEM PUBLIC
55+
${EIGEN3_INCLUDE_DIR} ${qpOASES_INCLUDE_DIRS})
56+
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
57+
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${qpOASES_LIBRARIES})
58+
59+
IF(SUFFIX_SO_VERSION)
60+
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
61+
ENDIF(SUFFIX_SO_VERSION)
62+
63+
INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib)
64+
3765
ADD_SUBDIRECTORY(src)
38-
ADD_SUBDIRECTORY(test)
66+
ADD_SUBDIRECTORY(tests)
3967
ADD_SUBDIRECTORY(examples)
4068

41-
# Generate dependency to ddp-actuator-solver-examples in pc file
42-
PKG_CONFIG_APPEND_LIBS(ddp-actuator-solver-examples)
43-
44-
SETUP_PROJECT_FINALIZE()
69+
PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME})

examples/CMakeLists.txt

100755100644
Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
21
macro(_local_test_ddp)
32
set(list_var "${ARGN}")
4-
foreach(loop_var IN LISTS list_var)
5-
ADD_EXECUTABLE(${loop_var} ${loop_var}.cpp)
6-
TARGET_LINK_LIBRARIES(${loop_var} ${PROJECT_NAME}-examples
7-
${qpOASES_LIBRARIES})
8-
PKG_CONFIG_USE_DEPENDENCY(${loop_var} eigen3)
3+
foreach(ex IN LISTS list_var)
4+
ADD_EXECUTABLE(${ex} ${ex}.cpp)
5+
TARGET_LINK_LIBRARIES(${ex} ${PROJECT_NAME}-examples ${qpOASES_LIBRARIES})
96
endforeach()
107
endmacro()
118

12-
SET(source_files
9+
SET(${PROJECT_NAME}_EXAMPLE_SOURCES
1310
pyrene_actuator/pyreneCostFunction.cpp
1411
pyrene_actuator/pyreneActuator.cpp
1512
romeo_actuator/costfunctionromeoactuator.cpp
@@ -21,9 +18,9 @@ SET(source_files
2118
linear/modelLinear.cpp
2219
inverse_pendulum/costIP.cpp
2320
inverse_pendulum/modelIP.cpp
24-
)
21+
)
2522

26-
SET(header_files
23+
SET(${PROJECT_NAME}_EXAMPLE_HEADERS
2724
pyrene_actuator/pyreneCostFunction.hh
2825
pyrene_actuator/pyreneActuator.hh
2926
romeo_actuator/costfunctionromeoactuator.hh
@@ -33,17 +30,13 @@ SET(header_files
3330
temperature_control/dctemp.hh
3431
)
3532

36-
ADD_LIBRARY(${PROJECT_NAME}-examples SHARED ${source_files})
37-
SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/find-external/qpOASES")
38-
FIND_PACKAGE("qpOASES" REQUIRED)
39-
INCLUDE_DIRECTORIES(SYSTEM ${qpOASES_INCLUDE_DIRS})
40-
33+
ADD_LIBRARY(${PROJECT_NAME}-examples SHARED
34+
${${PROJECT_NAME}_EXAMPLE_SOURCES} ${${PROJECT_NAME}_EXAMPLE_HEADERS})
4135
TARGET_LINK_LIBRARIES(${PROJECT_NAME}-examples ${qpOASES_LIBRARIES})
42-
PKG_CONFIG_USE_DEPENDENCY(${PROJECT_NAME}-examples qpOASES)
43-
PKG_CONFIG_USE_DEPENDENCY(${PROJECT_NAME}-examples eigen3)
36+
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME}-examples SYSTEM PUBLIC
37+
${EIGEN3_INCLUDE_DIRS} ${qpOASES_INCLUDE_DIRS})
4438

45-
INSTALL(TARGETS ${PROJECT_NAME}-examples LIBRARY DESTINATION lib)
46-
INSTALL(FILES ${header_files} DESTINATION include/ddp-actuator-solver/examples)
39+
INSTALL(TARGETS ${PROJECT_NAME}-examples EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib)
4740

4841
ADD_SUBDIRECTORY(pyrene_actuator)
4942
ADD_SUBDIRECTORY(romeo_actuator)

examples/inverse_pendulum/CMakeLists.txt

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
_local_test_ddp( mainIP )
1+
_local_test_ddp(mainIP)

examples/inverse_pendulum/costIP.cpp

100755100644
File mode changed.

examples/inverse_pendulum/costIP.hh

100755100644
File mode changed.

examples/inverse_pendulum/mainIP.cpp

100755100644
File mode changed.

examples/inverse_pendulum/modelIP.cpp

100755100644
File mode changed.

examples/inverse_pendulum/modelIP.hh

100755100644
File mode changed.

examples/linear/CMakeLists.txt

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
_local_test_ddp( mainLinear )
1+
_local_test_ddp(mainLinear)

0 commit comments

Comments
 (0)