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

Commit be6a8d6

Browse files
author
Guilhem Saurel
committed
[CMake] add BUILD_PYTHON_INTERFACE option
1 parent 5630492 commit be6a8d6

File tree

4 files changed

+36
-24
lines changed

4 files changed

+36
-24
lines changed

CMakeLists.txt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,9 @@ 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

@@ -69,8 +68,16 @@ PKG_CONFIG_APPEND_LIBS(${LIBRARY_NAME})
6968

7069
# Search for dependencies.
7170
# Boost
72-
SET(BOOST_COMPONENTS filesystem system unit_test_framework python)
73-
FINDPYTHON()
71+
SET(BOOST_COMPONENTS filesystem system unit_test_framework)
72+
73+
OPTION (BUILD_PYTHON_INTERFACE "Build the python binding" ON)
74+
IF(BUILD_PYTHON_INTERFACE)
75+
FINDPYTHON()
76+
ADD_REQUIRED_DEPENDENCY("dynamic-graph-python >= 3.0.0")
77+
SET(BOOST_COMPONENTS ${BOOST_COMPONENTS} python)
78+
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
79+
ENDIF(BUILD_PYTHON_INTERFACE)
80+
7481
SEARCH_FOR_BOOST()
7582
SEARCH_FOR_EIGEN()
7683

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)