Skip to content

Commit b71881a

Browse files
committed
Support qt6
Signed-off-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
1 parent 9a3e552 commit b71881a

11 files changed

+33
-20
lines changed

qt_gui_cpp/CMakeLists.txt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ if(WIN32)
2020
endif()
2121

2222
find_package(pluginlib REQUIRED)
23-
find_package(Qt5 REQUIRED COMPONENTS Widgets)
23+
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Core)
24+
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Core)
2425
find_package(tinyxml2_vendor REQUIRED)
2526
find_package(TinyXML2 REQUIRED)
2627

@@ -44,7 +45,12 @@ set(qt_gui_cpp_HDRS
4445
include/qt_gui_cpp/plugin_context.h
4546
)
4647

47-
qt5_wrap_cpp(qt_gui_cpp_MOCS ${qt_gui_cpp_HDRS})
48+
if (${QT_VERSION_MAJOR} GREATER "5")
49+
qt_standard_project_setup()
50+
qt_wrap_cpp(turtlesim_node_MOCS ${qt_gui_cpp_HDRS})
51+
else()
52+
qt5_wrap_cpp(turtlesim_node_MOCS ${qt_gui_cpp_HDRS})
53+
endif()
4854

4955
add_library(${PROJECT_NAME} SHARED ${qt_gui_cpp_SRCS} ${qt_gui_cpp_MOCS})
5056
target_include_directories(${PROJECT_NAME} PUBLIC
@@ -54,17 +60,17 @@ target_include_directories(${PROJECT_NAME} PUBLIC
5460
target_link_libraries(${PROJECT_NAME}
5561
${QT_QTCORE_LIBRARY}
5662
${QT_QTGUI_LIBRARY}
57-
Qt5::Widgets
63+
Qt${QT_VERSION_MAJOR}::Widgets
5864
pluginlib::pluginlib
5965
tinyxml2::tinyxml2)
6066

6167
add_subdirectory(src/qt_gui_cpp_shiboken)
6268
add_subdirectory(src/qt_gui_cpp_sip)
6369

64-
message(STATUS "Python binding generators: ${qt_gui_cpp_BINDINGS}")
65-
if(NOT qt_gui_cpp_BINDINGS)
66-
message(FATAL_ERROR "No Python binding generator found.")
67-
endif()
70+
# message(STATUS "Python binding generators: ${qt_gui_cpp_BINDINGS}")
71+
# if(NOT qt_gui_cpp_BINDINGS)
72+
# message(FATAL_ERROR "No Python binding generator found.")
73+
# endif()
6874

6975
install(FILES plugin.xml
7076
DESTINATION share/${PROJECT_NAME})

qt_gui_cpp/include/qt_gui_cpp/plugin_provider.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
#include "plugin_descriptor.h"
3939

4040
#include <QList>
41-
#include <QMap>
41+
#include <QMultiMap>
4242
#include <QString>
4343

4444
namespace qt_gui_cpp
@@ -53,7 +53,7 @@ class PluginProvider
5353

5454
virtual ~PluginProvider();
5555

56-
virtual QMap<QString, QString> discover(QObject* discovery_data);
56+
virtual QMultiMap<QString, QString> discover(QObject* discovery_data);
5757

5858
/**
5959
* @attention Ownership of returned PluginDescriptor's is transfered to the caller

qt_gui_cpp/include/qt_gui_cpp/recursive_plugin_provider.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class RecursivePluginProvider
5353

5454
virtual ~RecursivePluginProvider();
5555

56-
virtual QMap<QString, QString> discover(QObject* discovery_data);
56+
virtual QMultiMap<QString, QString> discover(QObject* discovery_data);
5757

5858
virtual void shutdown();
5959

qt_gui_cpp/include/qt_gui_cpp/ros_pluginlib_plugin_provider.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class RosPluginlibPluginProvider
9292
}
9393
}
9494

95-
virtual QMap<QString, QString> discover(QObject* discovery_data)
95+
virtual QMultiMap<QString, QString> discover(QObject* discovery_data)
9696
{
9797
return PluginProvider::discover(discovery_data);
9898
}

qt_gui_cpp/src/qt_gui_cpp/plugin_provider.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,19 @@ PluginProvider::PluginProvider()
4040
PluginProvider::~PluginProvider()
4141
{}
4242

43-
QMap<QString, QString> PluginProvider::discover(QObject* discovery_data)
43+
QMultiMap<QString, QString> PluginProvider::discover(QObject* discovery_data)
4444
{
4545
QMultiMap<QString, QString> plugins;
4646
QList<PluginDescriptor*> descriptors = discover_descriptors(discovery_data);
4747
for (QList<PluginDescriptor*>::iterator it = descriptors.begin(); it != descriptors.end(); it++)
4848
{
4949
// extract plugin descriptor dictionary
5050
PluginDescriptor* descriptor = *it;
51-
QMap<QString, QString> plugin = descriptor->toDictionary();
52-
plugins.unite(plugin);
51+
QMap descriptorValue = descriptor->toDictionary();
52+
QMultiMap<QString, QString> plugin;
53+
for (auto i = descriptorValue.cbegin(), end = descriptorValue.cend(); i != end; ++i) {
54+
plugin.insert(i.key(), i.value());
55+
}
5356
delete descriptor;
5457
}
5558
return plugins;

qt_gui_cpp/src/qt_gui_cpp/recursive_plugin_provider.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ RecursivePluginProvider::~RecursivePluginProvider()
4646
delete plugin_provider_;
4747
}
4848

49-
QMap<QString, QString> RecursivePluginProvider::discover(QObject* discovery_data)
49+
QMultiMap<QString, QString> RecursivePluginProvider::discover(QObject* discovery_data)
5050
{
5151
// discover plugins, which are providers themselves
5252
QList<PluginDescriptor*> descriptors = plugin_provider_->discover_descriptors(discovery_data);

qt_gui_cpp/src/qt_gui_cpp_shiboken/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
find_package(Qt5Widgets REQUIRED)
2+
3+
find_package(QTWidgets NAMES Qt5Widgets Qt6Widgets)
4+
find_package(Qt${QTWidgets_VERSION_MAJOR}Widgets REQUIRED)
5+
26
set(qt_gui_cpp_shiboken_QT_COMPONENTS
37
QtCore
48
QtGui
@@ -50,7 +54,7 @@ if(shiboken_helper_FOUND)
5054
list(APPEND qt_gui_cpp_BINDINGS "shiboken")
5155
set(qt_gui_cpp_BINDINGS "${qt_gui_cpp_BINDINGS}" PARENT_SCOPE)
5256

53-
set(QT_INCLUDE_DIR "${Qt5Widgets_INCLUDE_DIRS}")
57+
set(QT_INCLUDE_DIR "${Qt${QT_VERSION_MAJOR}Widgets_INCLUDE_DIRS}")
5458
shiboken_generator(libqt_gui_cpp global.h typesystem.xml ${PROJECT_SOURCE_DIR}/src/qt_gui_cpp_shiboken "${qt_gui_cpp_shiboken_SRCS}" "${qt_gui_cpp_HDRS}" "${qt_gui_cpp_INCLUDE_PATH}" "${CMAKE_CURRENT_BINARY_DIR}")
5559

5660
shiboken_include_directories(qt_gui_cpp_shiboken "${qt_gui_cpp_shiboken_QT_COMPONENTS}")

qt_gui_cpp/src/qt_gui_cpp_sip/plugin_provider.sip

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public:
1313

1414
virtual ~PluginProvider();
1515

16-
virtual QMap<QString, QString> discover(QObject* discovery_data);
16+
virtual QMultiMap<QString, QString> discover(QObject* discovery_data);
1717

1818
/**
1919
* @attention Ownership of returned PluginDescriptor's is transfered to the caller

qt_gui_cpp/src/qt_gui_cpp_sip/recursive_plugin_provider.sip

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public:
1414

1515
virtual ~RecursivePluginProvider();
1616

17-
virtual QMap<QString, QString> discover(QObject* discovery_data);
17+
virtual QMultiMap<QString, QString> discover(QObject* discovery_data);
1818

1919
virtual void shutdown();
2020
};

qt_gui_cpp/src/qt_gui_cpp_sip/ros_pluginlib_plugin_provider_for_plugin_providers.sip

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public:
1717

1818
virtual ~RosPluginlibPluginProvider_ForPluginProviders();
1919

20-
virtual QMap<QString, QString> discover(QObject* discovery_data);
20+
virtual QMultiMap<QString, QString> discover(QObject* discovery_data);
2121

2222
virtual QList<qt_gui_cpp::PluginDescriptor*> discover_descriptors(QObject* discovery_data);
2323

0 commit comments

Comments
 (0)