summaryrefslogtreecommitdiffstats
path: root/tests/auto/cmake
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-04-13 23:48:44 +0200
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2015-05-11 07:42:00 +0000
commit4c63abf360836581a1f89a48b18d5b470bb644a3 (patch)
tree4c349ea1d81b08990ad3432d45e2e24952600fac /tests/auto/cmake
parent7d4149e61fbb299e95968da22daa0818e30802b9 (diff)
Test the Qt5UiPlugin cmake module with CMake 3.0.
Test that the forwarding headers work when using the QtDesigner module it was extracted from. Test that transitive usage requirements of the Qt5::UiPlugin module are available through the usage of the Qt5::Designer target when using CMake 3.0. Change-Id: I200b5cf111f0160be2504727ab4111ce8a1d6170 Reviewed-by: Stephen Kelly <steveire@gmail.com>
Diffstat (limited to 'tests/auto/cmake')
-rw-r--r--tests/auto/cmake/CMakeLists.txt4
-rw-r--r--tests/auto/cmake/test_uiplugin_module/CMakeLists.txt11
-rw-r--r--tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp75
-rw-r--r--tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt25
-rw-r--r--tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp81
5 files changed, 196 insertions, 0 deletions
diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt
index 499418680..5b54a45f0 100644
--- a/tests/auto/cmake/CMakeLists.txt
+++ b/tests/auto/cmake/CMakeLists.txt
@@ -40,4 +40,8 @@ if (NOT NO_WIDGETS)
UiTools QUiLoader
)
+ expect_pass(test_uiplugin_via_designer)
+ if (NOT CMAKE_VERSION VERSION_LESS 3.0)
+ expect_pass(test_uiplugin_module)
+ endif()
endif()
diff --git a/tests/auto/cmake/test_uiplugin_module/CMakeLists.txt b/tests/auto/cmake/test_uiplugin_module/CMakeLists.txt
new file mode 100644
index 000000000..062a94960
--- /dev/null
+++ b/tests/auto/cmake/test_uiplugin_module/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 3.0)
+project(test_uiplugin_module)
+
+find_package(Qt5Widgets REQUIRED)
+find_package(Qt5UiPlugin REQUIRED)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+add_library(my_designer_plugin my_designer_plugin.cpp)
+target_link_libraries(my_designer_plugin Qt5::UiPlugin)
diff --git a/tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp b/tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp
new file mode 100644
index 000000000..a1e2ee2b2
--- /dev/null
+++ b/tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 Stephen Kelly <steveire@gmail.com>
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtUiPlugin>
+#include <QtUiPlugin/QtUiPlugin>
+#include <QtUiPlugin/QDesignerCustomWidgetInterface>
+#include <QDesignerCustomWidgetInterface>
+
+#include <QWidget>
+
+class MyPlugin : public QObject, public QDesignerCustomWidgetInterface
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface")
+ Q_INTERFACES(QDesignerCustomWidgetInterface)
+public:
+ MyPlugin(QObject *parent = 0)
+ : QObject(parent)
+ , initialized(false)
+ {
+
+ }
+
+ bool isContainer() const { return true; }
+ bool isInitialized() const { return initialized; }
+ QIcon icon() const { return QIcon(); }
+ QString domXml() const { return QString(); }
+ QString group() const { return QString(); }
+ QString includeFile() const { return QString(); }
+ QString name() const { return QString(); }
+ QString toolTip() const { return QString(); }
+ QString whatsThis() const { return QString(); }
+ QWidget *createWidget(QWidget *parent) { return new QWidget(parent); }
+ void initialize(QDesignerFormEditorInterface *)
+ {
+ if (initialized)
+ return;
+ initialized = true;
+ }
+
+private:
+ bool initialized;
+};
+
+#include "my_designer_plugin.moc"
diff --git a/tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt b/tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt
new file mode 100644
index 000000000..b8edeaa8e
--- /dev/null
+++ b/tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt
@@ -0,0 +1,25 @@
+
+# Backward compatibility test that code prior to Qt 5.5 linking to
+# Qt5::Designer gets the required include directories for using
+# the QDesignerCustomWidgetInterface.
+
+cmake_minimum_required(VERSION 2.8.11)
+project(test_uiplugin_via_designer)
+
+find_package(Qt5Widgets REQUIRED)
+find_package(Qt5Xml REQUIRED)
+find_package(Qt5Designer REQUIRED)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+if (NOT CMAKE_VERSION VERSION_LESS 3.0)
+ set(CMAKE_HAS_INTERFACE 1)
+else()
+ set(CMAKE_HAS_INTERFACE 0)
+endif()
+
+add_definitions(-DTEST_UIPLUGIN_USAGE_REQUIREMENTS=${CMAKE_HAS_INTERFACE})
+
+add_library(my_designer_plugin my_designer_plugin.cpp)
+target_link_libraries(my_designer_plugin Qt5::Designer)
diff --git a/tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp b/tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp
new file mode 100644
index 000000000..cac6f04b7
--- /dev/null
+++ b/tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 Stephen Kelly <steveire@gmail.com>
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtDesigner>
+#include <QtDesigner/QtDesigner>
+#include <QtDesigner/QDesignerCustomWidgetInterface>
+#include <QDesignerCustomWidgetInterface>
+
+#include <QWidget>
+
+#if TEST_UIPLUGIN_USAGE_REQUIREMENTS
+# ifndef QT_UIPLUGIN_LIB
+# error Expect QT_UIPLUGIN_LIB define
+# endif
+#endif
+
+class MyPlugin : public QObject, public QDesignerCustomWidgetInterface
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface")
+ Q_INTERFACES(QDesignerCustomWidgetInterface)
+public:
+ MyPlugin(QObject *parent = 0)
+ : QObject(parent)
+ , initialized(false)
+ {
+
+ }
+
+ bool isContainer() const { return true; }
+ bool isInitialized() const { return initialized; }
+ QIcon icon() const { return QIcon(); }
+ QString domXml() const { return QString(); }
+ QString group() const { return QString(); }
+ QString includeFile() const { return QString(); }
+ QString name() const { return QString(); }
+ QString toolTip() const { return QString(); }
+ QString whatsThis() const { return QString(); }
+ QWidget *createWidget(QWidget *parent) { return new QWidget(parent); }
+ void initialize(QDesignerFormEditorInterface *)
+ {
+ if (initialized)
+ return;
+ initialized = true;
+ }
+
+private:
+ bool initialized;
+};
+
+#include "my_designer_plugin.moc"