Skip to content

Commit 020e69e

Browse files
committed
Reenable PySide2 support
1 parent 5340258 commit 020e69e

File tree

4 files changed

+95
-103
lines changed

4 files changed

+95
-103
lines changed

src/python_bindings/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
set(rviz_BINDINGS "")
22

3-
# TODO(wjwwood): re-enabled PySide2 support when it is fixed.
4-
# add_subdirectory(shiboken)
3+
add_subdirectory(shiboken)
54
add_subdirectory(sip)
65

76
message(STATUS "Python binding generators: ${rviz_BINDINGS}")

src/python_bindings/shiboken/CMakeLists.txt

Lines changed: 73 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -10,92 +10,84 @@ find_package(python_qt_binding REQUIRED)
1010
include(${python_qt_binding_EXTRAS_DIR}/shiboken_helper.cmake)
1111

1212
if(shiboken_helper_FOUND)
13-
set(_configure_shiboken TRUE)
14-
if(Shiboken_VERSION VERSION_GREATER "1.1.1")
15-
if(APPLE AND Shiboken_VERSION VERSION_GREATER "1.2.1")
16-
# This appears to no longer be a problem at least with Shiboken 1.2.2 on OS X and Boost 1.57.
17-
set(_configure_shiboken TRUE)
18-
else()
19-
# shiboken 1.1.2 and higher will segfault until https://bugreports.qt-project.org/browse/PYSIDE-218 is fixed
20-
set(_configure_shiboken FALSE)
21-
message(WARNING "Shiboken version ${Shiboken_VERSION} would segfault when trying to process rviz (see https://bugreports.qt-project.org/browse/PYSIDE-218). Therefore shiboken bindings are being skipped.")
22-
endif()
23-
endif()
24-
if(_configure_shiboken)
25-
list(APPEND rviz_BINDINGS "shiboken")
26-
set(rviz_BINDINGS "${rviz_BINDINGS}" PARENT_SCOPE)
13+
list(APPEND rviz_BINDINGS "shiboken")
14+
set(rviz_BINDINGS "${rviz_BINDINGS}" PARENT_SCOPE)
2715

28-
# To add a new rviz class to the bindings, add it:
29-
# - in rviz_shiboken_SRCS below, like rviz_myclass_wrapper.cpp
30-
# - in rviz_HDRS below, like ../rviz/my_class.h
31-
# - in global.h, like #include <rviz/my_class.h>
32-
# - in typesystem.xml, like <object-type name="rviz::MyClass"/>
16+
# To add a new rviz class to the bindings, add it:
17+
# - in rviz_shiboken_SRCS below, like rviz_myclass_wrapper.cpp
18+
# - in rviz_HDRS below, like ../rviz/my_class.h
19+
# - in global.h, like #include <rviz/my_class.h>
20+
# - in typesystem.xml, like <object-type name="rviz::MyClass"/>
3321

34-
set(rviz_shiboken_SRCS
35-
librviz_shiboken/librviz_shiboken_module_wrapper.cpp
36-
librviz_shiboken/rviz_visualizationframe_wrapper.cpp
37-
librviz_shiboken/rviz_visualizationmanager_wrapper.cpp
38-
librviz_shiboken/rviz_display_wrapper.cpp
39-
librviz_shiboken/rviz_displaygroup_wrapper.cpp
40-
librviz_shiboken/rviz_ogrelogging_wrapper.cpp
41-
librviz_shiboken/rviz_property_wrapper.cpp
42-
librviz_shiboken/rviz_boolproperty_wrapper.cpp
43-
librviz_shiboken/rviz_paneldockwidget_wrapper.cpp
44-
librviz_shiboken/rviz_viewmanager_wrapper.cpp
45-
librviz_shiboken/rviz_viewcontroller_wrapper.cpp
46-
librviz_shiboken/rviz_tool_wrapper.cpp
47-
librviz_shiboken/rviz_toolmanager_wrapper.cpp
48-
librviz_shiboken/rviz_config_wrapper.cpp
49-
librviz_shiboken/rviz_config_mapiterator_wrapper.cpp
50-
librviz_shiboken/rviz_yamlconfigreader_wrapper.cpp
51-
librviz_shiboken/rviz_yamlconfigwriter_wrapper.cpp
52-
librviz_shiboken/rviz_wrapper.cpp
53-
)
22+
set(rviz_shiboken_SRCS
23+
librviz_shiboken/librviz_shiboken_module_wrapper.cpp
24+
librviz_shiboken/rviz_visualizationframe_wrapper.cpp
25+
librviz_shiboken/rviz_visualizationmanager_wrapper.cpp
26+
librviz_shiboken/rviz_display_wrapper.cpp
27+
librviz_shiboken/rviz_displaygroup_wrapper.cpp
28+
librviz_shiboken/rviz_ogrelogging_wrapper.cpp
29+
librviz_shiboken/rviz_property_wrapper.cpp
30+
librviz_shiboken/rviz_boolproperty_wrapper.cpp
31+
librviz_shiboken/rviz_paneldockwidget_wrapper.cpp
32+
librviz_shiboken/rviz_viewmanager_wrapper.cpp
33+
librviz_shiboken/rviz_viewcontroller_wrapper.cpp
34+
librviz_shiboken/rviz_tool_wrapper.cpp
35+
librviz_shiboken/rviz_toolmanager_wrapper.cpp
36+
librviz_shiboken/rviz_config_wrapper.cpp
37+
librviz_shiboken/rviz_config_mapiterator_wrapper.cpp
38+
librviz_shiboken/rviz_yamlconfigreader_wrapper.cpp
39+
librviz_shiboken/rviz_yamlconfigwriter_wrapper.cpp
40+
librviz_shiboken/rviz_wrapper.cpp
41+
)
42+
foreach(_FILE ${rviz_shiboken_SRCS})
43+
set_property(SOURCE ${_FILE} PROPERTY SKIP_AUTOGEN ON)
44+
endforeach()
5445

55-
set(rviz_shiboken_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/src)
46+
set(rviz_shiboken_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/src)
5647

57-
set(rviz_HDRS
58-
${rviz_shiboken_INCLUDE_DIR}/rviz/visualization_frame.h
59-
${rviz_shiboken_INCLUDE_DIR}/rviz/visualization_manager.h
60-
${rviz_shiboken_INCLUDE_DIR}/rviz/view_manager.h
61-
${rviz_shiboken_INCLUDE_DIR}/rviz/view_controller.h
62-
${rviz_shiboken_INCLUDE_DIR}/rviz/display.h
63-
${rviz_shiboken_INCLUDE_DIR}/rviz/display_group.h
64-
${rviz_shiboken_INCLUDE_DIR}/rviz/properties/property.h
65-
${rviz_shiboken_INCLUDE_DIR}/rviz/properties/bool_property.h
66-
${rviz_shiboken_INCLUDE_DIR}/rviz/panel_dock_widget.h
67-
${rviz_shiboken_INCLUDE_DIR}/rviz/tool.h
68-
${rviz_shiboken_INCLUDE_DIR}/rviz/tool_manager.h
69-
${rviz_shiboken_INCLUDE_DIR}/rviz/ogre_helpers/ogre_logging.h
70-
${rviz_shiboken_INCLUDE_DIR}/rviz/config.h
71-
${rviz_shiboken_INCLUDE_DIR}/rviz/yaml_config_reader.h
72-
${rviz_shiboken_INCLUDE_DIR}/rviz/yaml_config_writer.h
73-
)
48+
set(rviz_HDRS
49+
${rviz_shiboken_INCLUDE_DIR}/rviz/visualization_frame.h
50+
${rviz_shiboken_INCLUDE_DIR}/rviz/visualization_manager.h
51+
${rviz_shiboken_INCLUDE_DIR}/rviz/view_manager.h
52+
${rviz_shiboken_INCLUDE_DIR}/rviz/view_controller.h
53+
${rviz_shiboken_INCLUDE_DIR}/rviz/display.h
54+
${rviz_shiboken_INCLUDE_DIR}/rviz/display_group.h
55+
${rviz_shiboken_INCLUDE_DIR}/rviz/properties/property.h
56+
${rviz_shiboken_INCLUDE_DIR}/rviz/properties/bool_property.h
57+
${rviz_shiboken_INCLUDE_DIR}/rviz/panel_dock_widget.h
58+
${rviz_shiboken_INCLUDE_DIR}/rviz/tool.h
59+
${rviz_shiboken_INCLUDE_DIR}/rviz/tool_manager.h
60+
${rviz_shiboken_INCLUDE_DIR}/rviz/ogre_helpers/ogre_logging.h
61+
${rviz_shiboken_INCLUDE_DIR}/rviz/config.h
62+
${rviz_shiboken_INCLUDE_DIR}/rviz/yaml_config_reader.h
63+
${rviz_shiboken_INCLUDE_DIR}/rviz/yaml_config_writer.h
64+
)
7465

75-
shiboken_generator(
76-
librviz
77-
global.h
78-
typesystem.xml
79-
${PROJECT_SOURCE_DIR}/src/python_bindings/shiboken
80-
"${rviz_shiboken_SRCS}"
81-
"${rviz_HDRS}"
82-
"${rviz_shiboken_INCLUDE_DIR}"
83-
"${CMAKE_CURRENT_BINARY_DIR}"
84-
)
66+
include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
8567

86-
include_directories(rviz_shiboken
87-
${rviz_shiboken_INCLUDE_DIR}/rviz
88-
${rviz_shiboken_INCLUDE_DIR}/rviz/properties
89-
${rviz_shiboken_INCLUDE_DIR}/rviz/ogre_helpers
90-
)
91-
shiboken_include_directories(rviz_shiboken "${rviz_shiboken_QT_COMPONENTS}")
92-
add_library(rviz_shiboken ${rviz_shiboken_SRCS})
93-
set_target_properties(rviz_shiboken PROPERTIES
94-
LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${PYTHON_INSTALL_DIR}/rviz)
95-
target_link_libraries(rviz_shiboken ${PROJECT_NAME})
96-
shiboken_target_link_libraries(rviz_shiboken "${rviz_shiboken_QT_COMPONENTS}")
68+
shiboken_generator(
69+
librviz
70+
global.h
71+
typesystem.xml
72+
${PROJECT_SOURCE_DIR}/src/python_bindings/shiboken
73+
"${rviz_shiboken_SRCS}"
74+
"${rviz_HDRS}"
75+
"${rviz_shiboken_INCLUDE_DIR}"
76+
"${CMAKE_CURRENT_BINARY_DIR}"
77+
)
9778

98-
install(TARGETS rviz_shiboken
99-
LIBRARY DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION})
100-
endif()
79+
include_directories(rviz_shiboken
80+
${rviz_shiboken_INCLUDE_DIR}/rviz
81+
${rviz_shiboken_INCLUDE_DIR}/rviz/properties
82+
${rviz_shiboken_INCLUDE_DIR}/rviz/ogre_helpers
83+
)
84+
shiboken_include_directories(rviz_shiboken "${rviz_shiboken_QT_COMPONENTS}")
85+
add_library(rviz_shiboken ${rviz_shiboken_SRCS})
86+
set_target_properties(rviz_shiboken PROPERTIES
87+
LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${PYTHON_INSTALL_DIR}/rviz)
88+
target_link_libraries(rviz_shiboken ${PROJECT_NAME})
89+
shiboken_target_link_libraries(rviz_shiboken "${rviz_shiboken_QT_COMPONENTS}")
90+
91+
install(TARGETS rviz_shiboken
92+
LIBRARY DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION})
10193
endif()

src/python_bindings/shiboken/global.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
#define NULL 0
3838
#endif
3939

40-
#include "pyside_global.h"
40+
#include "pyside2_global.h"
4141

4242
#include <QtCore/QtCore>
4343
#include <QtGui/QtGui>

src/python_bindings/shiboken/typesystem.xml

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,24 @@
22
<typesystem package="librviz_shiboken">
33
<load-typesystem name="typesystem_core.xml" generate="no"/>
44
<load-typesystem name="typesystem_gui.xml" generate="no"/>
5-
<namespace-type name="rviz"/>
6-
<object-type name="rviz::VisualizationFrame"/>
7-
<object-type name="rviz::VisualizationManager"/>
8-
<object-type name="rviz::Display"/>
9-
<object-type name="rviz::DisplayGroup"/>
10-
<object-type name="rviz::OgreLogging"/>
11-
<object-type name="rviz::Property"/>
12-
<object-type name="rviz::BoolProperty"/>
13-
<object-type name="rviz::PanelDockWidget"/>
14-
<object-type name="rviz::ViewManager"/>
15-
<object-type name="rviz::ViewController"/>
16-
<object-type name="rviz::Tool"/>
17-
<object-type name="rviz::ToolManager"/>
18-
<object-type name="rviz::Config">
19-
<enum-type name="Type"/>
20-
<object-type name="MapIterator"/>
21-
</object-type>
22-
<object-type name="rviz::YamlConfigReader"/>
23-
<object-type name="rviz::YamlConfigWriter"/>
5+
<namespace-type name="rviz">
6+
<object-type name="VisualizationFrame"/>
7+
<object-type name="VisualizationManager"/>
8+
<object-type name="Display"/>
9+
<object-type name="DisplayGroup"/>
10+
<object-type name="OgreLogging"/>
11+
<object-type name="Property"/>
12+
<object-type name="BoolProperty"/>
13+
<object-type name="PanelDockWidget"/>
14+
<object-type name="ViewManager"/>
15+
<object-type name="ViewController"/>
16+
<object-type name="Tool"/>
17+
<object-type name="ToolManager"/>
18+
<object-type name="Config">
19+
<enum-type name="Type"/>
20+
<object-type name="MapIterator"/>
21+
</object-type>
22+
<object-type name="YamlConfigReader"/>
23+
<object-type name="YamlConfigWriter"/>
24+
</namespace-type>
2425
</typesystem>

0 commit comments

Comments
 (0)