|
1 | 1 | # |
2 | | -# Copyright 2010, 2018-2020 CNRS |
3 | | -# Authors: Florent Lamiraux, Guilhem Saurel |
| 2 | +# Copyright 2010, 2018-2020 CNRS Authors: Florent Lamiraux, Guilhem Saurel |
4 | 3 | # |
5 | 4 |
|
6 | | -CMAKE_MINIMUM_REQUIRED(VERSION 3.1) |
| 5 | +cmake_minimum_required(VERSION 3.1) |
7 | 6 |
|
8 | 7 | # Project properties |
9 | | -SET(PROJECT_ORG stack-of-tasks) |
10 | | -SET(PROJECT_NAME dynamic-graph-tutorial) |
11 | | -SET(PROJECT_DESCRIPTION "Tutorial for dynamic-graph") |
12 | | -SET(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}") |
| 8 | +set(PROJECT_ORG stack-of-tasks) |
| 9 | +set(PROJECT_NAME dynamic-graph-tutorial) |
| 10 | +set(PROJECT_DESCRIPTION "Tutorial for dynamic-graph") |
| 11 | +set(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}") |
13 | 12 |
|
14 | 13 | # 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) |
| 14 | +option(BUILD_PYTHON_INTERFACE "Build the python bindings" ON) |
| 15 | +option(INSTALL_PYTHON_INTERFACE_ONLY "Install *ONLY* the python bindings" OFF) |
| 16 | +option(SUFFIX_SO_VERSION "Suffix library name with its version" ON) |
18 | 17 |
|
19 | 18 | # 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") |
| 19 | +if(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 20 | + set(PROJECT_USE_CMAKE_EXPORT TRUE) |
| 21 | +endif(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 22 | +set(CUSTOM_HEADER_DIR "dynamic-graph/tutorial") |
24 | 23 |
|
25 | 24 | # JRL-cmakemodule setup |
26 | | -INCLUDE(cmake/base.cmake) |
27 | | -INCLUDE(cmake/boost.cmake) |
| 25 | +include(cmake/base.cmake) |
| 26 | +include(cmake/boost.cmake) |
28 | 27 |
|
29 | 28 | # Project definition |
30 | | -COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX) |
31 | | -PROJECT(${PROJECT_NAME} ${PROJECT_ARGS}) |
| 29 | +compute_project_args(PROJECT_ARGS LANGUAGES CXX) |
| 30 | +project(${PROJECT_NAME} ${PROJECT_ARGS}) |
32 | 31 |
|
33 | 32 | # Project dependencies |
34 | | -ADD_PROJECT_DEPENDENCY(dynamic-graph REQUIRED) |
35 | | -IF(BUILD_TESTING) |
36 | | - FIND_PACKAGE(Boost REQUIRED COMPONENTS unit_test_framework) |
37 | | -ENDIF(BUILD_TESTING) |
| 33 | +add_project_dependency(dynamic-graph REQUIRED) |
| 34 | +if(BUILD_TESTING) |
| 35 | + find_package(Boost REQUIRED COMPONENTS unit_test_framework) |
| 36 | +endif(BUILD_TESTING) |
38 | 37 |
|
39 | | -IF(BUILD_PYTHON_INTERFACE) |
40 | | - ADD_PROJECT_DEPENDENCY(dynamic-graph-python 4.0.6 REQUIRED) |
41 | | -ENDIF(BUILD_PYTHON_INTERFACE) |
| 38 | +if(BUILD_PYTHON_INTERFACE) |
| 39 | + add_project_dependency(dynamic-graph-python 4.0.6 REQUIRED) |
| 40 | +endif(BUILD_PYTHON_INTERFACE) |
42 | 41 |
|
43 | | -IF(Boost_VERSION GREATER 107299 OR Boost_VERSION_MACRO GREATER 107299) |
| 42 | +if(Boost_VERSION GREATER 107299 OR Boost_VERSION_MACRO GREATER 107299) |
44 | 43 | # Silence a warning about a deprecated use of boost bind by boost >= 1.73 |
45 | 44 | # without dropping support for boost < 1.73 |
46 | | - ADD_DEFINITIONS(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) |
47 | | -ENDIF() |
| 45 | + add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) |
| 46 | +endif() |
48 | 47 |
|
49 | 48 | # Main Library |
50 | | -SET(${PROJECT_NAME}_HEADERS |
51 | | - include/${CUSTOM_HEADER_DIR}/inverted-pendulum.hh |
52 | | - include/${CUSTOM_HEADER_DIR}/feedback-controller.hh |
53 | | - ) |
54 | | - |
55 | | -SET(${PROJECT_NAME}_SOURCES |
56 | | - src/inverted-pendulum.cpp |
57 | | - src/feedback-controller.cpp |
58 | | - ) |
59 | | - |
60 | | -ADD_LIBRARY(${PROJECT_NAME} SHARED |
61 | | - ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) |
62 | | -TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>) |
63 | | -TARGET_LINK_LIBRARIES(${PROJECT_NAME} PUBLIC 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(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
70 | | - INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib) |
71 | | -ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
72 | | - |
73 | | -ADD_SUBDIRECTORY(src) |
74 | | -IF(BUILD_TESTING) |
75 | | - ADD_SUBDIRECTORY(tests) |
76 | | -ENDIF(BUILD_TESTING) |
77 | | - |
78 | | -IF(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
79 | | - INSTALL(FILES package.xml DESTINATION share/${PROJECT_NAME}) |
80 | | -ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 49 | +set(${PROJECT_NAME}_HEADERS include/${CUSTOM_HEADER_DIR}/inverted-pendulum.hh |
| 50 | + include/${CUSTOM_HEADER_DIR}/feedback-controller.hh) |
| 51 | + |
| 52 | +set(${PROJECT_NAME}_SOURCES src/inverted-pendulum.cpp |
| 53 | + src/feedback-controller.cpp) |
| 54 | + |
| 55 | +add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES} |
| 56 | + ${${PROJECT_NAME}_HEADERS}) |
| 57 | +target_include_directories(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>) |
| 58 | +target_link_libraries(${PROJECT_NAME} PUBLIC dynamic-graph::dynamic-graph) |
| 59 | + |
| 60 | +if(SUFFIX_SO_VERSION) |
| 61 | + set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION}) |
| 62 | +endif(SUFFIX_SO_VERSION) |
| 63 | + |
| 64 | +if(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 65 | + install( |
| 66 | + TARGETS ${PROJECT_NAME} |
| 67 | + EXPORT ${TARGETS_EXPORT_NAME} |
| 68 | + DESTINATION lib) |
| 69 | +endif(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 70 | + |
| 71 | +add_subdirectory(src) |
| 72 | +if(BUILD_TESTING) |
| 73 | + add_subdirectory(tests) |
| 74 | +endif(BUILD_TESTING) |
| 75 | + |
| 76 | +if(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 77 | + install(FILES package.xml DESTINATION share/${PROJECT_NAME}) |
| 78 | +endif(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
0 commit comments