Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
S
sot-core
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Stack Of Tasks
sot-core
Commits
016cea45
Commit
016cea45
authored
2 years ago
by
Guilhem Saurel
Browse files
Options
Downloads
Patches
Plain Diff
CMake: project is not viable without python interface
parent
9cb49dd3
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
CMakeLists.txt
+6
-16
6 additions, 16 deletions
CMakeLists.txt
doc/CMakeLists.txt
+6
-8
6 additions, 8 deletions
doc/CMakeLists.txt
src/CMakeLists.txt
+59
-65
59 additions, 65 deletions
src/CMakeLists.txt
tests/CMakeLists.txt
+1
-3
1 addition, 3 deletions
tests/CMakeLists.txt
with
72 additions
and
92 deletions
CMakeLists.txt
+
6
−
16
View file @
016cea45
...
...
@@ -10,14 +10,10 @@ SET(PROJECT_DESCRIPTION "Hierarchical task solver plug-in for dynamic-graph.")
SET
(
PROJECT_URL
"https://github.com/
${
PROJECT_ORG
}
/
${
PROJECT_NAME
}
"
)
# Project options
OPTION
(
BUILD_PYTHON_INTERFACE
"Build the python bindings"
ON
)
OPTION
(
INSTALL_PYTHON_INTERFACE_ONLY
"Install *ONLY* the python bindings"
OFF
)
OPTION
(
SUFFIX_SO_VERSION
"Suffix library name with its version"
ON
)
# Project configuration
IF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
SET
(
PROJECT_USE_CMAKE_EXPORT TRUE
)
ENDIF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
SET
(
PROJECT_USE_CMAKE_EXPORT TRUE
)
SET
(
CUSTOM_HEADER_DIR
"sot/core"
)
SET
(
CXX_DISABLE_WERROR TRUE
)
SET
(
DOXYGEN_USE_MATHJAX YES
)
...
...
@@ -38,6 +34,8 @@ ADD_PROJECT_DEPENDENCY(dynamic-graph REQUIRED)
ADD_PROJECT_DEPENDENCY
(
dynamic-graph-python 4.0.6 REQUIRED
)
ADD_PROJECT_DEPENDENCY
(
pinocchio REQUIRED
)
ADD_PROJECT_DEPENDENCY
(
Boost REQUIRED COMPONENTS regex program_options
)
ADD_PROJECT_DEPENDENCY
(
eigenpy REQUIRED
)
include
(
cmake/python.cmake
)
# TODO: overwriting eigenpy/python.cmake
IF
(
BUILD_TESTING
)
ADD_PROJECT_DEPENDENCY
(
example-robot-data 3.8.0
)
FIND_PACKAGE
(
Boost REQUIRED COMPONENTS unit_test_framework
)
...
...
@@ -49,11 +47,7 @@ IF(Boost_VERSION GREATER 107299 OR Boost_VERSION_MACRO GREATER 107299)
ADD_DEFINITIONS
(
-DBOOST_BIND_GLOBAL_PLACEHOLDERS
)
ENDIF
()
IF
(
BUILD_PYTHON_INTERFACE
)
STRING
(
REGEX REPLACE
"-"
"_"
PYTHON_DIR
${
CUSTOM_HEADER_DIR
}
)
ADD_PROJECT_DEPENDENCY
(
eigenpy REQUIRED
)
include
(
cmake/python.cmake
)
# TODO: overwriting eigenpy/python.cmake
ENDIF
(
BUILD_PYTHON_INTERFACE
)
STRING
(
REGEX REPLACE
"-"
"_"
PYTHON_DIR
${
CUSTOM_HEADER_DIR
}
)
# Verbosity level
IF
(
NOT
(
\"
${
CMAKE_VERBOSITY_LEVEL
}
\" STREQUAL \"\"
))
...
...
@@ -187,9 +181,7 @@ IF(SUFFIX_SO_VERSION)
SET_TARGET_PROPERTIES
(
${
PROJECT_NAME
}
PROPERTIES SOVERSION
${
PROJECT_VERSION
}
)
ENDIF
(
SUFFIX_SO_VERSION
)
IF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
INSTALL
(
TARGETS
${
PROJECT_NAME
}
EXPORT
${
TARGETS_EXPORT_NAME
}
DESTINATION lib
)
ENDIF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
INSTALL
(
TARGETS
${
PROJECT_NAME
}
EXPORT
${
TARGETS_EXPORT_NAME
}
DESTINATION lib
)
ADD_SUBDIRECTORY
(
src
)
IF
(
BUILD_TESTING
)
...
...
@@ -197,6 +189,4 @@ IF(BUILD_TESTING)
ENDIF
(
BUILD_TESTING
)
ADD_SUBDIRECTORY
(
doc
)
IF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
INSTALL
(
FILES package.xml DESTINATION share/
${
PROJECT_NAME
}
)
ENDIF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
INSTALL
(
FILES package.xml DESTINATION share/
${
PROJECT_NAME
}
)
This diff is collapsed.
Click to expand it.
doc/CMakeLists.txt
+
6
−
8
View file @
016cea45
...
...
@@ -5,11 +5,9 @@
# get the python script install path
IF
(
BUILD_PYTHON_INTERFACE
)
IF
(
INSTALL_DOCUMENTATION
)
INSTALL
(
FILES
pictures/feature.png
pictures/task.png
DESTINATION
${
_PKG_CONFIG_DOXYGENDOCDIR
}
/pictures
)
ENDIF
(
INSTALL_DOCUMENTATION
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
IF
(
INSTALL_DOCUMENTATION
)
INSTALL
(
FILES
pictures/feature.png
pictures/task.png
DESTINATION
${
_PKG_CONFIG_DOXYGENDOCDIR
}
/pictures
)
ENDIF
(
INSTALL_DOCUMENTATION
)
This diff is collapsed.
Click to expand it.
src/CMakeLists.txt
+
59
−
65
View file @
016cea45
...
...
@@ -102,72 +102,66 @@ FOREACH(plugin ${plugins})
TARGET_LINK_LIBRARIES
(
${
LIBRARY_NAME
}
PUBLIC
${
PROJECT_NAME
}
${${
LIBRARY_NAME
}
_deps
}
)
IF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
INSTALL
(
TARGETS
${
LIBRARY_NAME
}
EXPORT
${
TARGETS_EXPORT_NAME
}
DESTINATION
${
DYNAMIC_GRAPH_PLUGINDIR
}
)
ENDIF
(
NOT INSTALL_PYTHON_INTERFACE_ONLY
)
IF
(
BUILD_PYTHON_INTERFACE
)
STRING
(
REPLACE - _ PYTHON_LIBRARY_NAME
${
LIBRARY_NAME
}
)
if
(
EXISTS
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
plugin
}
-python-module-py.cc"
)
DYNAMIC_GRAPH_PYTHON_MODULE
(
"
${
PYTHON_DIR
}
/
${
PYTHON_LIBRARY_NAME
}
"
${
LIBRARY_NAME
}
${
PROJECT_NAME
}
-
${
PYTHON_LIBRARY_NAME
}
-wrap
SOURCE_PYTHON_MODULE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
plugin
}
-python-module-py.cc"
)
else
()
DYNAMIC_GRAPH_PYTHON_MODULE
(
"
${
PYTHON_DIR
}
/
${
PYTHON_LIBRARY_NAME
}
"
${
LIBRARY_NAME
}
${
PROJECT_NAME
}
-
${
PYTHON_LIBRARY_NAME
}
-wrap
MODULE_HEADER
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
plugin
}
-python.h"
)
endif
()
target_link_libraries
(
${
PROJECT_NAME
}
-
${
PYTHON_LIBRARY_NAME
}
-wrap eigenpy::eigenpy
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
INSTALL
(
TARGETS
${
LIBRARY_NAME
}
EXPORT
${
TARGETS_EXPORT_NAME
}
DESTINATION
${
DYNAMIC_GRAPH_PLUGINDIR
}
)
STRING
(
REPLACE - _ PYTHON_LIBRARY_NAME
${
LIBRARY_NAME
}
)
if
(
EXISTS
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
plugin
}
-python-module-py.cc"
)
DYNAMIC_GRAPH_PYTHON_MODULE
(
"
${
PYTHON_DIR
}
/
${
PYTHON_LIBRARY_NAME
}
"
${
LIBRARY_NAME
}
${
PROJECT_NAME
}
-
${
PYTHON_LIBRARY_NAME
}
-wrap
SOURCE_PYTHON_MODULE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
plugin
}
-python-module-py.cc"
)
else
()
DYNAMIC_GRAPH_PYTHON_MODULE
(
"
${
PYTHON_DIR
}
/
${
PYTHON_LIBRARY_NAME
}
"
${
LIBRARY_NAME
}
${
PROJECT_NAME
}
-
${
PYTHON_LIBRARY_NAME
}
-wrap
MODULE_HEADER
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
plugin
}
-python.h"
)
endif
()
target_link_libraries
(
${
PROJECT_NAME
}
-
${
PYTHON_LIBRARY_NAME
}
-wrap eigenpy::eigenpy
)
ENDFOREACH
(
plugin
)
IF
(
BUILD_PYTHON_INTERFACE
)
DYNAMIC_GRAPH_PYTHON_MODULE
(
"
${
PYTHON_DIR
}
"
${
PROJECT_NAME
}
${
PROJECT_NAME
}
-wrap
SOURCE_PYTHON_MODULE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/python-module.cc"
)
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/__init__.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot
)
SET
(
${
PROJECT_NAME
}
_PYTHON
__init__.py
math_small_entities.py
feature_position.py
feature_position_relative.py
matrix_util.py
meta_tasks.py
meta_task_6d.py
meta_tasks_kine.py
meta_tasks_kine_relative.py
meta_task_posture.py
meta_task_visual_point.py
)
DYNAMIC_GRAPH_PYTHON_MODULE
(
"
${
PYTHON_DIR
}
"
${
PROJECT_NAME
}
${
PROJECT_NAME
}
-wrap
SOURCE_PYTHON_MODULE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/python-module.cc"
)
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/__init__.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot
)
SET
(
${
PROJECT_NAME
}
_PYTHON
__init__.py
math_small_entities.py
feature_position.py
feature_position_relative.py
matrix_util.py
meta_tasks.py
meta_task_6d.py
meta_tasks_kine.py
meta_tasks_kine_relative.py
meta_task_posture.py
meta_task_visual_point.py
)
FOREACH
(
file
${${
PROJECT_NAME
}
_PYTHON
}
)
PYTHON_INSTALL_ON_SITE
(
"dynamic_graph/
${
PYTHON_DIR
}
"
${
file
}
)
ENDFOREACH
(
file
${${
PROJECT_NAME
}
_PYTHON
}
)
SET
(
${
PY_NAME
}
_PYTHON_UTILS
__init__.py
attime.py
history.py
thread_interruptible_loop.py
viewer_loger.py
viewer_helper.py
)
FOREACH
(
file
${${
PROJECT_NAME
}
_PYTHON
}
)
PYTHON_INSTALL_ON_SITE
(
"dynamic_graph/
${
PYTHON_DIR
}
"
${
file
}
)
ENDFOREACH
(
file
${${
PROJECT_NAME
}
_PYTHON
}
)
SET
(
${
PY_NAME
}
_PYTHON_UTILS
__init__.py
attime.py
history.py
thread_interruptible_loop.py
viewer_loger.py
viewer_helper.py
)
FOREACH
(
file
${${
PY_NAME
}
_PYTHON_UTILS
}
)
PYTHON_INSTALL_ON_SITE
(
"dynamic_graph/
${
PYTHON_DIR
}
/utils"
${
file
}
)
ENDFOREACH
(
file
${${
PY_NAME
}
_PYTHON_UTILS
}
)
# **********************************
# Robot_utils_sot_py PYTHON module *
# **********************************
ADD_LIBRARY
(
robot_utils_sot_py SHARED tools/robot-utils-py.cpp
)
TARGET_LINK_LIBRARIES
(
robot_utils_sot_py PUBLIC
${
PROJECT_NAME
}
)
TARGET_LINK_BOOST_PYTHON
(
robot_utils_sot_py PRIVATE
)
SET_TARGET_PROPERTIES
(
robot_utils_sot_py PROPERTIES PREFIX
""
)
INSTALL
(
TARGETS robot_utils_sot_py DESTINATION
"
${
PYTHON_SITELIB
}
/dynamic_graph/
${
PYTHON_DIR
}
"
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
FOREACH
(
file
${${
PY_NAME
}
_PYTHON_UTILS
}
)
PYTHON_INSTALL_ON_SITE
(
"dynamic_graph/
${
PYTHON_DIR
}
/utils"
${
file
}
)
ENDFOREACH
(
file
${${
PY_NAME
}
_PYTHON_UTILS
}
)
# **********************************
# Robot_utils_sot_py PYTHON module *
# **********************************
ADD_LIBRARY
(
robot_utils_sot_py SHARED tools/robot-utils-py.cpp
)
TARGET_LINK_LIBRARIES
(
robot_utils_sot_py PUBLIC
${
PROJECT_NAME
}
)
TARGET_LINK_BOOST_PYTHON
(
robot_utils_sot_py PRIVATE
)
SET_TARGET_PROPERTIES
(
robot_utils_sot_py PROPERTIES PREFIX
""
)
INSTALL
(
TARGETS robot_utils_sot_py DESTINATION
"
${
PYTHON_SITELIB
}
/dynamic_graph/
${
PYTHON_DIR
}
"
)
This diff is collapsed.
Click to expand it.
tests/CMakeLists.txt
+
1
−
3
View file @
016cea45
...
...
@@ -134,6 +134,4 @@ FOREACH(path ${tests})
ENDIF
(
UNIX
)
ENDFOREACH
(
path
${
tests
}
)
IF
(
BUILD_PYTHON_INTERFACE
)
ADD_SUBDIRECTORY
(
python
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
ADD_SUBDIRECTORY
(
python
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment