Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit f844c3b

Browse files
author
Guilhem Saurel
authored
Merge pull request #36 from nim65s/devel
[CMake] add BUILD_PYTHON_INTERFACE option
2 parents 5630492 + d4c9754 commit f844c3b

File tree

5 files changed

+37
-29
lines changed

5 files changed

+37
-29
lines changed

CMakeLists.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,23 @@ SET(PKG_CONFIG_ADDITIONAL_VARIABLES
4141

4242
SETUP_PROJECT()
4343
# Search for dependencies.
44-
ADD_REQUIRED_DEPENDENCY("pinocchio >= 1.2.6")
4544
ADD_REQUIRED_DEPENDENCY("eigenpy")
45+
ADD_REQUIRED_DEPENDENCY("pinocchio >= 1.2.6")
4646
ADD_REQUIRED_DEPENDENCY("dynamic-graph >= 3.0.0")
47-
ADD_REQUIRED_DEPENDENCY("dynamic-graph-python >= 3.0.0")
4847
ADD_REQUIRED_DEPENDENCY("sot-core >= 3.0.0")
4948
ADD_REQUIRED_DEPENDENCY("sot-tools >= 2.0.0")
5049

50+
SET(BOOST_COMPONENTS filesystem system unit_test_framework)
51+
52+
OPTION (BUILD_PYTHON_INTERFACE "Build the python binding" ON)
53+
IF(BUILD_PYTHON_INTERFACE)
54+
FINDPYTHON()
55+
ADD_REQUIRED_DEPENDENCY("dynamic-graph-python >= 3.0.0")
56+
SET(BOOST_COMPONENTS ${BOOST_COMPONENTS} python)
57+
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
58+
ENDIF(BUILD_PYTHON_INTERFACE)
59+
60+
5161
# List plug-ins that will be compiled.
5262
SET(plugins
5363
zmpreffromcom
@@ -67,10 +77,6 @@ LIST(APPEND plugins dynamic)
6777
# Add dependency toward sot-dynamic-pinocchio library in pkg-config file.
6878
PKG_CONFIG_APPEND_LIBS(${LIBRARY_NAME})
6979

70-
# Search for dependencies.
71-
# Boost
72-
SET(BOOST_COMPONENTS filesystem system unit_test_framework python)
73-
FINDPYTHON()
7480
SEARCH_FOR_BOOST()
7581
SEARCH_FOR_EIGEN()
7682

include/sot-dynamic-pinocchio/dynamic-pinocchio.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,11 @@
2727

2828

2929
/* STD */
30-
#include <Python.h>
3130
#include <string>
3231
#include <map>
3332
/* Matrix */
3433
#include <dynamic-graph/linear-algebra.h>
3534

36-
/*Python API*/
37-
3835
/* SOT */
3936
#include <sot/core/flags.hh>
4037
#include <dynamic-graph/entity.h>

python/CMakeLists.txt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
INSTALL(
2-
FILES kine_romeo.py kine_romeo_small.py
3-
DESTINATION ${PYTHON_SITELIB}/dynamic_graph/tutorial
4-
)
5-
1+
IF(BUILD_PYTHON_INTERFACE)
2+
INSTALL(
3+
FILES kine_romeo.py kine_romeo_small.py
4+
DESTINATION ${PYTHON_SITELIB}/dynamic_graph/tutorial
5+
)
6+
ENDIF(BUILD_PYTHON_INTERFACE)

src/CMakeLists.txt

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@ FOREACH(lib ${plugins})
5050
INSTALL(TARGETS ${libname} DESTINATION ${DYNAMIC_GRAPH_PLUGINDIR})
5151

5252
# build python submodule
53-
STRING(REPLACE - _ PYTHON_LIBRARY_NAME ${lib})
53+
IF(BUILD_PYTHON_INTERFACE)
54+
STRING(REPLACE - _ PYTHON_LIBRARY_NAME ${lib})
5455

55-
DYNAMIC_GRAPH_PYTHON_MODULE("sot/dynamics_pinocchio/${PYTHON_LIBRARY_NAME}"
56-
${libname}
57-
sot-dynamic-pinocchio-${PYTHON_LIBRARY_NAME}-wrap
58-
)
56+
DYNAMIC_GRAPH_PYTHON_MODULE("sot/dynamics_pinocchio/${PYTHON_LIBRARY_NAME}"
57+
${libname}
58+
sot-dynamic-pinocchio-${PYTHON_LIBRARY_NAME}-wrap
59+
)
60+
ENDIF(BUILD_PYTHON_INTERFACE)
5961
UNSET({libname})
6062
ENDFOREACH(lib)
6163

@@ -73,10 +75,12 @@ INSTALL(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
7375
TARGET_LINK_LIBRARIES(dp-dynamic ${LIBRARY_NAME})
7476

7577
# Install empty __init__.py files in intermediate directories.
76-
INSTALL(FILES
77-
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/__init__.py
78-
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/humanoid_robot.py
79-
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/tools.py
80-
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/parser.py
81-
DESTINATION ${PYTHON_SITELIB}/dynamic_graph/sot/dynamics_pinocchio
82-
)
78+
IF(BUILD_PYTHON_INTERFACE)
79+
INSTALL(FILES
80+
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/__init__.py
81+
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/humanoid_robot.py
82+
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/tools.py
83+
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_graph/sot/dynamics_pinocchio/parser.py
84+
DESTINATION ${PYTHON_SITELIB}/dynamic_graph/sot/dynamics_pinocchio
85+
)
86+
ENDIF(BUILD_PYTHON_INTERFACE)

unitTesting/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ FOREACH(test ${tests})
5252
SET(EXECUTABLE_NAME "${test}_exe")
5353
ADD_EXECUTABLE(${EXECUTABLE_NAME}
5454
${test}.cpp)
55-
MESSAGE("PYTHON_INCLUDE_PATH: ${PYTHON_INCLUDE_PATH}")
56-
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
5755

5856
TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME}
5957
dp-zmpreffromcom
@@ -70,7 +68,9 @@ FOREACH(test ${tests})
7068
PKG_CONFIG_USE_DEPENDENCY(${EXECUTABLE_NAME} pinocchio)
7169
PKG_CONFIG_USE_DEPENDENCY(${EXECUTABLE_NAME} sot-core)
7270
PKG_CONFIG_USE_DEPENDENCY(${EXECUTABLE_NAME} dynamic-graph)
73-
PKG_CONFIG_USE_DEPENDENCY(${EXECUTABLE_NAME} dynamic-graph-python)
71+
IF(BUILD_PYTHON_INTERFACE)
72+
PKG_CONFIG_USE_DEPENDENCY(${EXECUTABLE_NAME} dynamic-graph-python)
73+
ENDIF(BUILD_PYTHON_INTERFACE)
7474

7575
IF(${test}_plugins_dependencies)
7676
ADD_DEPENDENCIES(${EXECUTABLE_NAME} "${${test}_plugins_dependencies}")

0 commit comments

Comments
 (0)