diff --git a/CMakeLists.txt b/CMakeLists.txt
index ddad98a..bcbb559 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,8 @@
# CMakeLists.txt has to be located in the project folder and cmake has to be
# executed from 'project/build' with 'cmake ../'.
-cmake_minimum_required(VERSION 2.6)
+cmake_minimum_required(VERSION 3.5)
+project(MyWidget VERSION 0.1 DESCRIPTION "Widget tutorial")
find_package(Rock)
-rock_init(MyWidget 0.1)
+rock_init()
+rock_feature(NOCURDIR)
rock_standard_layout()
diff --git a/manifest.xml b/manifest.xml
index 326d502..bbf13df 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -8,7 +8,8 @@
http://
-
-
-
+
+
+
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 34bf105..d810d30 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,7 +1,8 @@
-find_package(Qt4 REQUIRED QtCore QtGui QtOpengl QtDesigner)
-include_directories(${QT_INCLUDE_DIR})
-include_directories(${QT_QTCORE_INCLUDE_DIR})
-include_directories(${QT_QTGUI_INCLUDE_DIR})
+rock_find_qt4(OPTIONAL QtCore QtGui QtDesigner)
+rock_find_qt5(OPTIONAL Core Gui Widgets UiPlugin)
+
+include(RockQt)
+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(MOC_HDRS
@@ -9,26 +10,54 @@ SET(MOC_HDRS
MyWidgetPlugin.h
)
-SET(HDRS
+SET(INSTALLED_HDRS
MyWidget.h
)
-FILE(GLOB SRCS
- *.cc
-)
+SET(SRCS
+ MyWidget.cc
+ MyWidgetPlugin.cc
+ )
+# Alternatively, FILE(GLOB) can find any matching file in the directory.
+# For this reason, the mywidgetTest executable uses main.cpp instead of main.cc.
+#FILE(GLOB SRCS
+# *.cc
+#)
SET(QtApp_RCCS resources.qrc)
-QT4_ADD_RESOURCES(QtApp_RCC_SRCS ${QtApp_RCCS})
+if(ROCK_QT4)
+ QT4_ADD_RESOURCES(QtApp_RCC_SRCS_QT4 ${QtApp_RCCS})
+endif()
+if(ROCK_QT5)
+ QT5_ADD_RESOURCES(QtApp_RCC_SRCS_QT5 ${QtApp_RCCS})
+endif()
-rock_vizkit_widget(MyWidget
- SOURCES ${SRCS} ${QtApp_RCC_SRCS}
- HEADERS ${HDRS}
+rock_qt_vizkit_widget(
+ TARGETPREFIX MyWidget
+ QT4_SUFFIX ""
+ SOURCES ${SRCS}
+ SOURCES_QT4 ${QtApp_RCC_SRCS_QT4}
+ SOURCES_QT5 ${QtApp_RCC_SRCS_QT5}
+ HEADERS ${INSTALLED_HDRS}
MOC ${MOC_HDRS}
- DEPS_PKGCONFIG base-types base-lib QtCore QtGui
- DEPS_CMAKE
- LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTOPENGL_LIBRARY} ${QT_QTDESIGNER_LIBRARY}
+ DEPS_PKGCONFIG base-types base-lib
+# Using the cmake targets for target_link_libraries but the
+# pkgconfig packages in the .pc file.
+# equivalent pkgconfig based configuration:
+# DEPS_PKGCONFIG_QT4 QtCore QtGui
+# DEPS_PKGCONFIG_QT5 Qt5Core Qt5Gui Qt5Widgets
+# above will also add the dependencies to the .pc file, so they
+# are not needed in the .pc.in.
+ LIBS_QT4 Qt4::QtCore Qt4::QtGui
+ LIBS_QT5 Qt5::Core Qt5::Gui Qt5::Widgets
+# for include directories. These do not need to be added to the .pc files,
+# the INSTALLED_HDRS do not use them.
+ LIBS_QT4 Qt4::QtDesigner
+ LIBS_QT5 Qt5::UiPlugin
)
-rock_executable(mywidgetTest
- main.cpp
- DEPS MyWidget)
+rock_qt_executable(
+ TARGETPREFIX mywidgetTest
+ QT4_SUFFIX ""
+ SOURCES main.cpp
+ DEPS_QT MyWidget)
diff --git a/src/MyWidget-qt5.pc.in b/src/MyWidget-qt5.pc.in
new file mode 100644
index 0000000..0459dd8
--- /dev/null
+++ b/src/MyWidget-qt5.pc.in
@@ -0,0 +1,12 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: @TARGET_NAME@
+Description: @PROJECT_DESCRIPTION@
+Version: @PROJECT_VERSION@
+Requires: @DEPS_PKGCONFIG@ Qt5Core Qt5Gui Qt5Widgets
+Libs: -L${libdir} -l@TARGET_NAME@
+Cflags: -I${includedir}
+
diff --git a/src/MyWidget.cc b/src/MyWidget.cc
index 7aa7ed7..55b16cf 100644
--- a/src/MyWidget.cc
+++ b/src/MyWidget.cc
@@ -1,4 +1,7 @@
#include "MyWidget.h"
+#include
+#include
+#include
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
diff --git a/src/MyWidget.h b/src/MyWidget.h
index e2a3529..49ed805 100644
--- a/src/MyWidget.h
+++ b/src/MyWidget.h
@@ -1,19 +1,26 @@
-#ifndef MYWIDGET_H
-#define MYWIDGET_H
+#pragma once
-#include
+#include
#include
+QT_BEGIN_NAMESPACE
+
+class QGroupBox;
+class QFormLayout;
+class QLabel;
+
+QT_END_NAMESPACE
+
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
virtual ~MyWidget();
+ base::samples::RigidBodyState getPose();
public slots:
- base::samples::RigidBodyState getPose();
void setPose(const base::samples::RigidBodyState pose);
private:
@@ -31,5 +38,3 @@ public slots:
QLabel* l3;
};
-
-#endif /* MYWIDGET_H */
diff --git a/src/MyWidget.pc b/src/MyWidget.pc
deleted file mode 100644
index c49cdb4..0000000
--- a/src/MyWidget.pc
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=/home/conquest/dev/ROCK-DEV/install
-exec_prefix=/home/conquest/dev/ROCK-DEV/install
-libdir=${prefix}/lib
-includedir=${prefix}/include
-
-Name: MyWidget
-Description:
-Version: 0.1
-Requires: base-types base-lib QtCore QtGui
-Libs: -L${libdir} -lMyWidget
-Cflags: -I${includedir}
-
diff --git a/src/MyWidget.pc.in b/src/MyWidget.pc.in
index 7759a93..4dd93b8 100644
--- a/src/MyWidget.pc.in
+++ b/src/MyWidget.pc.in
@@ -6,7 +6,7 @@ includedir=${prefix}/include
Name: @TARGET_NAME@
Description: @PROJECT_DESCRIPTION@
Version: @PROJECT_VERSION@
-Requires: @DEPS_PKGCONFIG@
+Requires: @DEPS_PKGCONFIG@ QtCore QtGui
Libs: -L${libdir} -l@TARGET_NAME@
Cflags: -I${includedir}
diff --git a/src/MyWidgetPlugin.cc b/src/MyWidgetPlugin.cc
index d7ae3c3..ed9f2f1 100644
--- a/src/MyWidgetPlugin.cc
+++ b/src/MyWidgetPlugin.cc
@@ -1,7 +1,9 @@
#include "MyWidgetPlugin.h"
#include "MyWidget.h"
+#if QT_VERSION < 0x050000
Q_EXPORT_PLUGIN2(MyWidget, MyWidgetPlugin)
+#endif
MyWidgetPlugin::MyWidgetPlugin(QObject *parent)
: QObject(parent)
diff --git a/src/MyWidgetPlugin.h b/src/MyWidgetPlugin.h
index dc45aa9..bf645b0 100644
--- a/src/MyWidgetPlugin.h
+++ b/src/MyWidgetPlugin.h
@@ -1,12 +1,15 @@
-#ifndef MYWIDGETPLUGIN_H
-#define MYWIDGETPLUGIN_H
+#pragma once
-#include
-#include
+#include
+#include // for Q_PLUGIN_METADATA and Q_EXPORT_PLUGIN2
+#include
class MyWidgetPlugin : public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
+#if QT_VERSION >= 0x050000
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface")
+#endif
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
@@ -28,5 +31,3 @@ class MyWidgetPlugin : public QObject, public QDesignerCustomWidgetInterface
private:
bool initialized;
};
-
-#endif /* MYWIDGETPLUGIN_H */
diff --git a/src/main.cpp b/src/main.cpp
index ec14b17..59a91f5 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,4 @@
-#include
+#include
#include "MyWidget.h"