Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Stack Of Tasks
sot-core
Commits
d776d94e
Commit
d776d94e
authored
Jul 18, 2018
by
Guilhem Saurel
Committed by
Guilhem Saurel
Aug 01, 2018
Browse files
[CMake] Add BUILD_PYTHON_INTERFACE option, fix #57
parent
d4b0e0e1
Changes
4
Hide whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
d776d94e
...
...
@@ -20,6 +20,7 @@ INCLUDE(cmake/boost.cmake)
INCLUDE
(
cmake/eigen.cmake
)
INCLUDE
(
cmake/lapack.cmake
)
INCLUDE
(
cmake/cpack.cmake
)
INCLUDE
(
cmake/python.cmake
)
SET
(
PROJECT_NAME sot-core
)
SET
(
PROJECT_DESCRIPTION
"Hierarchical task solver plug-in for dynamic-graph."
)
...
...
@@ -43,11 +44,20 @@ PKG_CONFIG_APPEND_LIBS("sot-core")
# Search for dependencies.
# Boost
SET
(
BOOST_COMPONENTS thread filesystem program_options unit_test_framework system regex
)
SEARCH_FOR_BOOST
()
SEARCH_FOR_EIGEN
()
ADD_REQUIRED_DEPENDENCY
(
"dynamic-graph >= 3.0.0"
)
ADD_REQUIRED_DEPENDENCY
(
"dynamic-graph-python >= 3.0.0"
)
OPTION
(
BUILD_PYTHON_INTERFACE
"Build the python binding"
ON
)
IF
(
BUILD_PYTHON_INTERFACE
)
FINDPYTHON
()
STRING
(
REGEX REPLACE
"-"
"_"
PY_NAME
${
PROJECT_NAME
}
)
SET
(
${
PY_NAME
}
_INSTALL_DIR
${
PYTHON_SITELIB
}
/
${
PY_NAME
}
)
INCLUDE_DIRECTORIES
(
${
PYTHON_INCLUDE_DIRS
}
)
ADD_REQUIRED_DEPENDENCY
(
"dynamic-graph-python >= 3.0.0"
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
SEARCH_FOR_BOOST
()
ADD_SUBDIRECTORY
(
include
)
ADD_SUBDIRECTORY
(
src
)
...
...
doc/CMakeLists.txt
View file @
d776d94e
...
...
@@ -4,13 +4,13 @@
#
# get the python script install path
INCLUDE
(
../cmake/python.cmake
)
FINDPYTHON
()
INCLUDE
(
../cmake/sphinx.cmake
)
SPHINX_SETUP
()
SPHINX_FINALIZE
()
INSTALL
(
FILES
pictures/feature.png
pictures/task.png
DESTINATION
${
_PKG_CONFIG_DOXYGENDOCDIR
}
/pictures
)
IF
(
BUILD_PYTHON_INTERFACE
)
INCLUDE
(
../cmake/sphinx.cmake
)
SPHINX_SETUP
()
SPHINX_FINALIZE
()
INSTALL
(
FILES
pictures/feature.png
pictures/task.png
DESTINATION
${
_PKG_CONFIG_DOXYGENDOCDIR
}
/pictures
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
src/CMakeLists.txt
View file @
d776d94e
...
...
@@ -13,10 +13,6 @@
# received a copy of the GNU Lesser General Public License along with
# sot-core. If not, see <http://www.gnu.org/licenses/>.
INCLUDE
(
../cmake/python.cmake
)
FINDPYTHON
()
INCLUDE_DIRECTORIES
(
${
PYTHON_INCLUDE_PATH
}
)
# Verbosity level
IF
(
NOT
(
\"
${
CMAKE_VERBOSITY_LEVEL
}
\" STREQUAL \"\"
))
ADD_DEFINITIONS
(
-DVP_DEBUG_MODE=
${
CMAKE_VERBOSITY_LEVEL
}
-DVP_DEBUG
)
...
...
@@ -24,7 +20,6 @@ ENDIF (NOT (\"${CMAKE_VERBOSITY_LEVEL}\" STREQUAL \"\"))
# The main include dir
INCLUDE_DIRECTORIES
(
${
CMAKE_SOURCE_DIR
}
/include
)
LINK_DIRECTORIES
(
${
PYTHON_LIBRARY_DIRS
}
)
#define DEBUG=2 if we're building in debug mode (what for?)
IF
(
"
${
CMAKE_BUILD_TYPE
}
"
STREQUAL DEBUG
)
...
...
@@ -167,7 +162,9 @@ SET_TARGET_PROPERTIES(${LIBRARY_NAME}
SOVERSION
${
PROJECT_VERSION
}
)
PKG_CONFIG_USE_DEPENDENCY
(
${
LIBRARY_NAME
}
dynamic-graph
)
PKG_CONFIG_USE_DEPENDENCY
(
${
LIBRARY_NAME
}
dynamic-graph-python
)
IF
(
BUILD_PYTHON_INTERFACE
)
PKG_CONFIG_USE_DEPENDENCY
(
${
LIBRARY_NAME
}
dynamic-graph-python
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
IF
(
UNIX
)
TARGET_LINK_LIBRARIES
(
${
LIBRARY_NAME
}
${
CMAKE_DL_LIBS
}
)
...
...
@@ -179,7 +176,7 @@ ENDIF(UNIX AND NOT APPLE)
TARGET_LINK_LIBRARIES
(
${
LIBRARY_NAME
}
${
Boost_LIBRARIES
}
)
INSTALL
(
TARGETS
${
LIBRARY_NAME
}
INSTALL
(
TARGETS
${
LIBRARY_NAME
}
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
#Plugins compilation, link, and installation
...
...
@@ -187,7 +184,7 @@ INSTALL(TARGETS ${LIBRARY_NAME}
FOREACH
(
plugin
${
plugins
}
)
#retrieve plugin name
GET_FILENAME_COMPONENT
(
LIBRARY_NAME
${
plugin
}
NAME
)
# only one source file per plugin
ADD_LIBRARY
(
${
LIBRARY_NAME
}
SHARED
...
...
@@ -212,8 +209,8 @@ FOREACH(plugin ${plugins})
IF
(
ADDITIONAL_
${
LIBRARY_NAME
}
_LIBS
)
ADD_DEPENDENCIES
(
${
LIBRARY_NAME
}
${
ADDITIONAL_
${
LIBRARY_NAME
}
_LIBS
}
)
TARGET_LINK_LIBRARIES
(
${
LIBRARY_NAME
}
${
ADDITIONAL_
${
LIBRARY_NAME
}
_LIBS
}
)
ENDIF
(
ADDITIONAL_
${
LIBRARY_NAME
}
_LIBS
)
ENDIF
(
ADDITIONAL_
${
LIBRARY_NAME
}
_LIBS
)
# Linux dynamic loading library flags
IF
(
UNIX
)
TARGET_LINK_LIBRARIES
(
${
LIBRARY_NAME
}
${
CMAKE_DL_LIBS
}
)
...
...
@@ -222,44 +219,47 @@ FOREACH(plugin ${plugins})
PKG_CONFIG_USE_DEPENDENCY
(
${
LIBRARY_NAME
}
dynamic-graph
)
# build python submodule
STRING
(
REPLACE - _ PYTHON_LIBRARY_NAME
${
LIBRARY_NAME
}
)
DYNAMIC_GRAPH_PYTHON_MODULE
(
"sot/core/
${
PYTHON_LIBRARY_NAME
}
"
${
LIBRARY_NAME
}
sot-core-
${
PYTHON_LIBRARY_NAME
}
-wrap
)
IF
(
BUILD_PYTHON_INTERFACE
)
STRING
(
REPLACE - _ PYTHON_LIBRARY_NAME
${
LIBRARY_NAME
}
)
DYNAMIC_GRAPH_PYTHON_MODULE
(
"sot/core/
${
PYTHON_LIBRARY_NAME
}
"
${
LIBRARY_NAME
}
sot-core-
${
PYTHON_LIBRARY_NAME
}
-wrap
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
# Install plugins
INSTALL
(
TARGETS
${
LIBRARY_NAME
}
DESTINATION
${
DYNAMIC_GRAPH_PLUGINDIR
}
)
ENDFOREACH
(
plugin
)
# Bindings Python
DYNAMIC_GRAPH_PYTHON_MODULE
(
"sot/core"
${
SOTCORE_LIB_NAME
}
wrap
)
IF
(
BUILD_PYTHON_INTERFACE
)
DYNAMIC_GRAPH_PYTHON_MODULE
(
"sot/core"
${
SOTCORE_LIB_NAME
}
wrap
)
# Install empty __init__.py files in intermediate directories.
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/__init__.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot
)
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/__init__.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/math_small_entities.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/feature_position.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/feature_position_relative.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/matrix_util.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_tasks.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_task_6d.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_tasks_kine.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_tasks_kine_relative.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_task_posture.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_task_visual_point.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot/core
)
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/__init__.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/attime.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/history.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/thread_interruptible_loop.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/viewer_loger.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/viewer_helper.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot/core/utils
)
# Install empty __init__.py files in intermediate directories.
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/__init__.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot
)
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/__init__.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/math_small_entities.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/feature_position.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/feature_position_relative.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/matrix_util.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_tasks.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_task_6d.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_tasks_kine.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_tasks_kine_relative.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_task_posture.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/meta_task_visual_point.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot/core
)
INSTALL
(
FILES
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/__init__.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/attime.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/history.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/thread_interruptible_loop.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/viewer_loger.py
${
CMAKE_CURRENT_SOURCE_DIR
}
/dynamic_graph/sot/core/utils/viewer_helper.py
DESTINATION
${
PYTHON_SITELIB
}
/dynamic_graph/sot/core/utils
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
unitTesting/CMakeLists.txt
View file @
d776d94e
...
...
@@ -137,7 +137,9 @@ FOREACH(test ${tests})
ENDIF
(
UNIX
)
PKG_CONFIG_USE_DEPENDENCY
(
${
EXECUTABLE_NAME
}
dynamic-graph
)
PKG_CONFIG_USE_DEPENDENCY
(
${
EXECUTABLE_NAME
}
dynamic-graph-python
)
IF
(
BUILD_PYTHON_INTERFACE
)
PKG_CONFIG_USE_DEPENDENCY
(
${
EXECUTABLE_NAME
}
dynamic-graph-python
)
ENDIF
(
BUILD_PYTHON_INTERFACE
)
# Link against Boost.
TARGET_LINK_LIBRARIES
(
${
EXECUTABLE_NAME
}
${
Boost_LIBRARIES
}
${
Boost_SYSTEM_LIBRARY
}
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment