|
1 | 1 | # Copyright 2010, François Bleibel, Olivier Stasse, JRL, CNRS/AIST |
2 | 2 |
|
3 | | -CMAKE_MINIMUM_REQUIRED(VERSION 3.1) |
| 3 | +cmake_minimum_required(VERSION 3.1) |
4 | 4 |
|
5 | 5 | # Project properties |
6 | | -SET(PROJECT_ORG stack-of-tasks) |
7 | | -SET(PROJECT_NAME sot-dynamic-pinocchio) |
8 | | -SET(PROJECT_DESCRIPTION "pinocchio bindings for dynamic-graph.") |
9 | | -SET(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}") |
| 6 | +set(PROJECT_ORG stack-of-tasks) |
| 7 | +set(PROJECT_NAME sot-dynamic-pinocchio) |
| 8 | +set(PROJECT_DESCRIPTION "pinocchio bindings for dynamic-graph.") |
| 9 | +set(PROJECT_URL "https://github.com/${PROJECT_ORG}/${PROJECT_NAME}") |
10 | 10 |
|
11 | 11 | # Project options |
12 | | -OPTION(BUILD_PYTHON_INTERFACE "Build the python bindings" ON) |
13 | | -OPTION(INSTALL_PYTHON_INTERFACE_ONLY "Install *ONLY* the python bindings" OFF) |
14 | | -OPTION(SUFFIX_SO_VERSION "Suffix library name with its version" ON) |
| 12 | +option(BUILD_PYTHON_INTERFACE "Build the python bindings" ON) |
| 13 | +option(INSTALL_PYTHON_INTERFACE_ONLY "Install *ONLY* the python bindings" OFF) |
| 14 | +option(SUFFIX_SO_VERSION "Suffix library name with its version" ON) |
15 | 15 |
|
16 | 16 | # Project configuration |
17 | | -IF(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
18 | | - SET(PROJECT_USE_CMAKE_EXPORT TRUE) |
19 | | -ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
20 | | -SET(CUSTOM_HEADER_DIR "sot/dynamic-pinocchio") |
21 | | -SET(CXX_DISABLE_WERROR TRUE) |
22 | | -SET(DOXYGEN_USE_MATHJAX YES) |
| 17 | +if(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 18 | + set(PROJECT_USE_CMAKE_EXPORT TRUE) |
| 19 | +endif(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 20 | +set(CUSTOM_HEADER_DIR "sot/dynamic-pinocchio") |
| 21 | +set(CXX_DISABLE_WERROR TRUE) |
| 22 | +set(DOXYGEN_USE_MATHJAX YES) |
23 | 23 |
|
24 | 24 | # JRL-cmakemodule setup |
25 | | -INCLUDE(cmake/base.cmake) |
26 | | -INCLUDE(cmake/boost.cmake) |
27 | | -INCLUDE(cmake/lapack.cmake) |
28 | | -INCLUDE(cmake/python.cmake) |
| 25 | +include(cmake/base.cmake) |
| 26 | +include(cmake/boost.cmake) |
| 27 | +include(cmake/lapack.cmake) |
| 28 | +include(cmake/python.cmake) |
29 | 29 |
|
30 | 30 | # Project definition |
31 | | -COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX) |
32 | | -PROJECT(${PROJECT_NAME} ${PROJECT_ARGS}) |
| 31 | +compute_project_args(PROJECT_ARGS LANGUAGES CXX) |
| 32 | +project(${PROJECT_NAME} ${PROJECT_ARGS}) |
33 | 33 |
|
34 | 34 | # Project dependencies |
35 | | -ADD_PROJECT_DEPENDENCY(sot-tools REQUIRED) |
36 | | - |
37 | | -IF(BUILD_TESTING) |
38 | | - FIND_PACKAGE(Boost REQUIRED COMPONENTS unit_test_framework) |
39 | | - ADD_PROJECT_DEPENDENCY(example-robot-data 3.8.0 REQUIRED) |
40 | | -ENDIF(BUILD_TESTING) |
41 | | - |
42 | | -IF(BUILD_PYTHON_INTERFACE) |
43 | | - FINDPYTHON() |
44 | | - SEARCH_FOR_BOOST_PYTHON(REQUIRED) |
45 | | - STRING(REGEX REPLACE "-" "_" PYTHON_DIR ${CUSTOM_HEADER_DIR}) |
46 | | - ADD_PROJECT_DEPENDENCY(dynamic-graph-python 4.0.0 REQUIRED) |
47 | | - |
48 | | - IF(Boost_VERSION GREATER 107299) |
49 | | - # Silence a warning about a deprecated use of boost bind by boost python |
50 | | - # at least fo boost 1.73 to 1.75 |
51 | | - ADD_DEFINITIONS(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) |
52 | | - ENDIF() |
53 | | -ENDIF(BUILD_PYTHON_INTERFACE) |
| 35 | +add_project_dependency(sot-tools REQUIRED) |
| 36 | + |
| 37 | +if(BUILD_TESTING) |
| 38 | + find_package(Boost REQUIRED COMPONENTS unit_test_framework) |
| 39 | + add_project_dependency(example-robot-data 3.8.0 REQUIRED) |
| 40 | +endif(BUILD_TESTING) |
| 41 | + |
| 42 | +if(BUILD_PYTHON_INTERFACE) |
| 43 | + findpython() |
| 44 | + search_for_boost_python(REQUIRED) |
| 45 | + string(REGEX REPLACE "-" "_" PYTHON_DIR ${CUSTOM_HEADER_DIR}) |
| 46 | + add_project_dependency(dynamic-graph-python 4.0.0 REQUIRED) |
| 47 | + |
| 48 | + if(Boost_VERSION GREATER 107299) |
| 49 | + # Silence a warning about a deprecated use of boost bind by boost python at |
| 50 | + # least fo boost 1.73 to 1.75 |
| 51 | + add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) |
| 52 | + endif() |
| 53 | +endif(BUILD_PYTHON_INTERFACE) |
54 | 54 |
|
55 | 55 | # Main Library |
56 | | -SET(${PROJECT_NAME}_HEADERS |
57 | | - include/${CUSTOM_HEADER_DIR}/dynamic-pinocchio.h |
58 | | - include/${CUSTOM_HEADER_DIR}/integrator-force-exact.h |
59 | | - include/${CUSTOM_HEADER_DIR}/zmpreffromcom.h |
60 | | - include/${CUSTOM_HEADER_DIR}/integrator-force.h |
61 | | - include/${CUSTOM_HEADER_DIR}/force-compensation.h |
62 | | - include/${CUSTOM_HEADER_DIR}/mass-apparent.h |
63 | | - include/${CUSTOM_HEADER_DIR}/waist-attitude-from-sensor.h |
64 | | - include/${CUSTOM_HEADER_DIR}/matrix-inertia.h |
65 | | - include/${CUSTOM_HEADER_DIR}/integrator-force-rk4.h |
66 | | - include/${CUSTOM_HEADER_DIR}/angle-estimator.h |
67 | | - ) |
68 | | - |
69 | | -SET(${PROJECT_NAME}_SOURCES |
70 | | - src/sot-dynamic-pinocchio |
71 | | - ) |
72 | | - |
73 | | -ADD_LIBRARY(${PROJECT_NAME} SHARED |
74 | | - ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) |
75 | | -TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>) |
76 | | -TARGET_LINK_LIBRARIES(${PROJECT_NAME} sot-core::sot-core) |
77 | | - |
78 | | -IF(SUFFIX_SO_VERSION) |
79 | | - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION}) |
80 | | -ENDIF(SUFFIX_SO_VERSION) |
81 | | - |
82 | | -IF(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
83 | | - INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib) |
84 | | - INSTALL(FILES package.xml DESTINATION share/${PROJECT_NAME}) |
85 | | -ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
86 | | - |
87 | | -ADD_SUBDIRECTORY(src) |
88 | | -IF(BUILD_TESTING) |
89 | | - ADD_SUBDIRECTORY(tests) |
90 | | -ENDIF(BUILD_TESTING) |
| 56 | +set(${PROJECT_NAME}_HEADERS |
| 57 | + include/${CUSTOM_HEADER_DIR}/dynamic-pinocchio.h |
| 58 | + include/${CUSTOM_HEADER_DIR}/integrator-force-exact.h |
| 59 | + include/${CUSTOM_HEADER_DIR}/zmpreffromcom.h |
| 60 | + include/${CUSTOM_HEADER_DIR}/integrator-force.h |
| 61 | + include/${CUSTOM_HEADER_DIR}/force-compensation.h |
| 62 | + include/${CUSTOM_HEADER_DIR}/mass-apparent.h |
| 63 | + include/${CUSTOM_HEADER_DIR}/waist-attitude-from-sensor.h |
| 64 | + include/${CUSTOM_HEADER_DIR}/matrix-inertia.h |
| 65 | + include/${CUSTOM_HEADER_DIR}/integrator-force-rk4.h |
| 66 | + include/${CUSTOM_HEADER_DIR}/angle-estimator.h) |
| 67 | + |
| 68 | +set(${PROJECT_NAME}_SOURCES src/sot-dynamic-pinocchio) |
| 69 | + |
| 70 | +add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES} |
| 71 | + ${${PROJECT_NAME}_HEADERS}) |
| 72 | +target_include_directories(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>) |
| 73 | +target_link_libraries(${PROJECT_NAME} sot-core::sot-core) |
| 74 | + |
| 75 | +if(SUFFIX_SO_VERSION) |
| 76 | + set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION}) |
| 77 | +endif(SUFFIX_SO_VERSION) |
| 78 | + |
| 79 | +if(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 80 | + install( |
| 81 | + TARGETS ${PROJECT_NAME} |
| 82 | + EXPORT ${TARGETS_EXPORT_NAME} |
| 83 | + DESTINATION lib) |
| 84 | + install(FILES package.xml DESTINATION share/${PROJECT_NAME}) |
| 85 | +endif(NOT INSTALL_PYTHON_INTERFACE_ONLY) |
| 86 | + |
| 87 | +add_subdirectory(src) |
| 88 | +if(BUILD_TESTING) |
| 89 | + add_subdirectory(tests) |
| 90 | +endif(BUILD_TESTING) |
0 commit comments