local names for python wrapper libs

This commit is contained in:
Robert Haschke 2018-05-13 07:21:57 +02:00
parent f7ddd43d53
commit e615b7c9da
4 changed files with 39 additions and 15 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
*.swp *.swp
*.pyc
*.so

View File

@ -1 +1 @@
from _moveit_python_tools import * from _python_tools import *

View File

@ -1,3 +1,3 @@
import moveit.python_tools import moveit.python_tools
from _moveit_task_constructor_core_core import * from _core import *
from _moveit_task_constructor_core_stages import * from _stages import *

View File

@ -23,14 +23,30 @@ install(TARGETS ${TOOLS_LIB_NAME}
) )
# python_tools # python_tools
set(TOOLS_LIB_NAME _moveit_python_tools) set(TOOLS_LIB_NAME _python_tools)
configure_file(src/python_tools.cpp.in python_tools.cpp @ONLY) configure_file(src/python_tools.cpp.in python_tools.cpp @ONLY)
add_library(${TOOLS_LIB_NAME} SHARED ${CMAKE_CURRENT_BINARY_DIR}/python_tools.cpp) add_library(${TOOLS_LIB_NAME} SHARED ${CMAKE_CURRENT_BINARY_DIR}/python_tools.cpp)
target_link_libraries(${TOOLS_LIB_NAME} PRIVATE moveit_python_tools) target_link_libraries(${TOOLS_LIB_NAME} PRIVATE moveit_python_tools)
set(MOVEIT_PYTHON_MODULE_PATH moveit/python_tools)
set_target_properties(${TOOLS_LIB_NAME} ${CORE_LIB_NAME} ${STAGES_LIB_NAME}
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_PYTHON_DESTINATION}/${MOVEIT_PYTHON_MODULE_PATH}
PREFIX "")
install(TARGETS ${TOOLS_LIB_NAME}
ARCHIVE DESTINATION ${CATKIN_GLOBAL_PYTHON_DESTINATION}/${MOVEIT_PYTHON_MODULE_PATH}
LIBRARY DESTINATION ${CATKIN_GLOBAL_PYTHON_DESTINATION}/${MOVEIT_PYTHON_MODULE_PATH}
)
add_custom_command(TARGET ${TOOLS_LIB_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink "$<TARGET_FILE:${TOOLS_LIB_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/../src/${MOVEIT_PYTHON_MODULE_PATH}/$<TARGET_FILE_NAME:${TOOLS_LIB_NAME}>"
COMMENT "Creating symlink to $<TARGET_FILE_NAME:${TOOLS_LIB_NAME}> in source space"
)
# core # core
set(CORE_LIB_NAME _${PROJECT_NAME}_core) set(CORE_LIB_NAME _core)
set(INCLUDES include/moveit/python/task_constructor) set(INCLUDES include/moveit/python/task_constructor)
configure_file(src/core.cpp.in core.cpp @ONLY) configure_file(src/core.cpp.in core.cpp @ONLY)
add_library(${CORE_LIB_NAME} SHARED add_library(${CORE_LIB_NAME} SHARED
@ -46,7 +62,7 @@ target_include_directories(${CORE_LIB_NAME}
target_link_libraries(${CORE_LIB_NAME} PUBLIC ${PROJECT_NAME} moveit_python_tools) target_link_libraries(${CORE_LIB_NAME} PUBLIC ${PROJECT_NAME} moveit_python_tools)
# stages # stages
set(STAGES_LIB_NAME _${PROJECT_NAME}_stages) set(STAGES_LIB_NAME _stages)
configure_file(src/stages.cpp.in stages.cpp @ONLY) configure_file(src/stages.cpp.in stages.cpp @ONLY)
add_library(${STAGES_LIB_NAME} SHARED add_library(${STAGES_LIB_NAME} SHARED
${CMAKE_CURRENT_BINARY_DIR}/stages.cpp ${CMAKE_CURRENT_BINARY_DIR}/stages.cpp
@ -54,15 +70,22 @@ add_library(${STAGES_LIB_NAME} SHARED
target_link_libraries(${STAGES_LIB_NAME} ${CORE_LIB_NAME} ${PROJECT_NAME}_stages) target_link_libraries(${STAGES_LIB_NAME} ${CORE_LIB_NAME} ${PROJECT_NAME}_stages)
# common properties of all python wrapper libs set(MOVEIT_PYTHON_MODULE_PATH moveit/task_constructor)
set_target_properties(${TOOLS_LIB_NAME} ${CORE_LIB_NAME} ${STAGES_LIB_NAME} set_target_properties(${CORE_LIB_NAME} ${STAGES_LIB_NAME}
PROPERTIES PROPERTIES
# create all libs in python's main folder to enable loading also from devel space LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_PYTHON_DESTINATION}/${MOVEIT_PYTHON_MODULE_PATH}
LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_PYTHON_DESTINATION}
# no "lib" prefix
PREFIX "") PREFIX "")
install(TARGETS ${TOOLS_LIB_NAME} ${CORE_LIB_NAME} ${STAGES_LIB_NAME} install(TARGETS ${CORE_LIB_NAME} ${STAGES_LIB_NAME}
ARCHIVE DESTINATION ${CATKIN_GLOBAL_PYTHON_DESTINATION} ARCHIVE DESTINATION ${CATKIN_GLOBAL_PYTHON_DESTINATION}/${MOVEIT_PYTHON_MODULE_PATH}
LIBRARY DESTINATION ${CATKIN_GLOBAL_PYTHON_DESTINATION} LIBRARY DESTINATION ${CATKIN_GLOBAL_PYTHON_DESTINATION}/${MOVEIT_PYTHON_MODULE_PATH}
) )
# Add symlinks from source space to devel-space libs
# This is necessary to find them from devel-space too
foreach(tgt ${CORE_LIB_NAME} ${STAGES_LIB_NAME})
add_custom_command(TARGET ${tgt} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink "$<TARGET_FILE:${tgt}>" "${CMAKE_CURRENT_SOURCE_DIR}/../src/${MOVEIT_PYTHON_MODULE_PATH}/$<TARGET_FILE_NAME:${tgt}>"
COMMENT "Creating symlink to $<TARGET_FILE_NAME:${tgt}> in source space"
)
endforeach()