Skip to content

Commit ae7339a

Browse files
committed
[CMake] clean: keep minimal required instructions
1 parent b1a543f commit ae7339a

File tree

7 files changed

+57
-52
lines changed

7 files changed

+57
-52
lines changed

CMakeLists.txt

Lines changed: 51 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,77 @@
55

66
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
77

8-
SET(PROJECT_NAMESPACE stack-of-tasks)
8+
# Project properties
9+
SET(PROJECT_ORG stack-of-tasks)
910
SET(PROJECT_NAME dynamic-graph-tutorial)
1011
SET(PROJECT_DESCRIPTION "Tutorial for dynamic-graph")
11-
SET(PROJECT_URL "http://github.com/${PROJECT_NAME}/${PROJECT_NAME}")
12+
SET(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}")
1213

14+
# Project options
15+
OPTION(BUILD_PYTHON_INTERFACE "Build the python bindings" ON)
16+
OPTION(INSTALL_PYTHON_INTERFACE_ONLY "Install *ONLY* the python bindings" OFF)
17+
OPTION(SUFFIX_SO_VERSION "Suffix library name with its version" ON)
18+
19+
# Project configuration
20+
IF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
21+
SET(PROJECT_USE_CMAKE_EXPORT TRUE)
22+
ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
23+
SET(CUSTOM_HEADER_DIR "dynamic-graph/tutorial")
24+
25+
# JRL-cmakemodule setup
1326
INCLUDE(cmake/base.cmake)
1427
INCLUDE(cmake/boost.cmake)
15-
INCLUDE(cmake/test.cmake)
1628
INCLUDE(cmake/python.cmake)
1729
INCLUDE(cmake/sphinx.cmake)
1830

19-
OPTION (BUILD_PYTHON_INTERFACE "Build the python binding" ON)
20-
OPTION (INSTALL_PYTHON_INTERFACE_ONLY "Install *ONLY* the python binding" OFF)
21-
SET (CUSTOM_HEADER_DIR "dynamic-graph/tutorial")
22-
31+
# Project definition
2332
COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
2433
PROJECT(${PROJECT_NAME} ${PROJECT_ARGS})
2534

35+
# Project dependencies
2636
ADD_PROJECT_DEPENDENCY(dynamic-graph REQUIRED PKG_CONFIG_REQUIRES dynamic-graph)
27-
2837
SET(BOOST_COMPONENTS unit_test_framework)
2938

3039
IF(BUILD_PYTHON_INTERFACE)
31-
ADD_PROJECT_DEPENDENCY(dynamic-graph-python REQUIRED PKG_CONFIG_REQUIRES dynamic-graph-python)
3240
FINDPYTHON()
33-
STRING(REGEX REPLACE "-" "_" PY_NAME ${PROJECT_NAME})
41+
ADD_PROJECT_DEPENDENCY(dynamic-graph-python REQUIRED
42+
PKG_CONFIG_REQUIRES dynamic-graph-python)
3443
SET(BOOST_COMPONENTS ${BOOST_COMPONENTS} python)
35-
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
3644
ENDIF(BUILD_PYTHON_INTERFACE)
3745

3846
SEARCH_FOR_BOOST()
39-
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
4047

41-
ADD_SUBDIRECTORY(include/${CUSTOM_HEADER_DIR})
48+
# Main Library
49+
SET(${PROJECT_NAME}_HEADERS
50+
include/${CUSTOM_HEADER_DIR}/inverted-pendulum.hh
51+
include/${CUSTOM_HEADER_DIR}/feedback-controller.hh
52+
)
53+
54+
SET(${PROJECT_NAME}_SOURCES
55+
src/inverted-pendulum
56+
src/feedback-controller
57+
)
58+
59+
ADD_LIBRARY(${PROJECT_NAME} SHARED
60+
${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS})
61+
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
62+
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Boost_LIBRARIES}
63+
dynamic-graph::dynamic-graph)
64+
65+
IF(SUFFIX_SO_VERSION)
66+
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
67+
ENDIF(SUFFIX_SO_VERSION)
68+
69+
#IF(BUILD_PYTHON_INTERFACE) # TODO
70+
#TARGET_LINK_LIBRARIES(${PROJECT_NAME} dynamic-graph-python::dynamic-graph-python)
71+
#ENDIF(BUILD_PYTHON_INTERFACE)
72+
73+
IF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
74+
INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib)
75+
ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
76+
4277
ADD_SUBDIRECTORY(src)
43-
ADD_SUBDIRECTORY(doc)
4478
ADD_SUBDIRECTORY(tests)
79+
ADD_SUBDIRECTORY(doc)
80+
81+
#INSTALL(FILES package.xml DESTINATION share/${PROJECT_NAME}) # TODO

doc/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright 2010, 2019-2020, Florent Lamiraux, Guilhem Saurel CNRS
22
#
33

4-
IF(BUILD_PYTHON_INTERFACE)
4+
IF(BUILD_PYTHON_INTERFACE AND NOT INSTALL_PYTHON_INTERFACE_ONLY)
55
SPHINX_SETUP()
66
SPHINX_FINALIZE()
7-
ENDIF(BUILD_PYTHON_INTERFACE)
7+
ENDIF(BUILD_PYTHON_INTERFACE AND NOT INSTALL_PYTHON_INTERFACE_ONLY)

include/dynamic-graph/tutorial/CMakeLists.txt

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/CMakeLists.txt

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,4 @@
1-
# Copyright 2010, 2018, Florent Lamiraux, CNRS
2-
#
3-
4-
5-
SET(${PROJECT_NAME}_SOURCES
6-
inverted-pendulum
7-
feedback-controller
8-
)
9-
10-
SET(${PY_NAME}_PYTHON
11-
simu.py
12-
)
13-
14-
ADD_LIBRARY(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES})
15-
16-
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC dynamic-graph::dynamic-graph)
17-
TARGET_LINK_LIBRARIES(${PROJECT_NAME} dynamic-graph::dynamic-graph)
18-
191
IF(BUILD_PYTHON_INTERFACE)
20-
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC dynamic-graph-python::dynamic-graph-python)
21-
TARGET_LINK_LIBRARIES(${PROJECT_NAME} dynamic-graph-python::dynamic-graph-python)
2+
PYTHON_INSTALL_ON_SITE("dynamic_graph/tutorial" simu.py)
223
DYNAMIC_GRAPH_PYTHON_MODULE("tutorial" ${PROJECT_NAME} wrap)
23-
INSTALL(FILES ${${PY_NAME}_PYTHON} DESTINATION "${PYTHON_SITELIB}/dynamic_graph/tutorial/")
244
ENDIF(BUILD_PYTHON_INTERFACE)
25-
26-
IF (NOT INSTALL_PYTHON_INTERFACE_ONLY)
27-
INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
28-
ENDIF (NOT INSTALL_PYTHON_INTERFACE_ONLY)
File renamed without changes.

tests/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN)
22

3-
ADD_UNIT_TEST(pendulum pendulum)
3+
ADD_UNIT_TEST(pendulum pendulum.cpp)
44
TARGET_LINK_LIBRARIES(pendulum ${PROJECT_NAME} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} dynamic-graph::dynamic-graph)
55
TARGET_INCLUDE_DIRECTORIES(pendulum PUBLIC dynamic-graph::dynamic-graph)
66

7-
ADD_UNIT_TEST(controller controller)
7+
ADD_UNIT_TEST(controller controller.cpp)
88
TARGET_LINK_LIBRARIES(controller ${PROJECT_NAME} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} dynamic-graph::dynamic-graph)
99
TARGET_INCLUDE_DIRECTORIES(controller PUBLIC dynamic-graph::dynamic-graph)

0 commit comments

Comments
 (0)