summaryrefslogtreecommitdiffstats
path: root/Tests/QtAutogen
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-11-18 07:09:56 (GMT)
committerStephen Kelly <steveire@gmail.com>2013-11-25 21:41:21 (GMT)
commit1320e0768e57754b51294a00480927d50176bf02 (patch)
treeec1847962c1a9562a67056bc63cbab8ee6cb1c00 /Tests/QtAutogen
parentda6b86f4f031b189768dc474721145a1b99f71ea (diff)
downloadCMake-1320e0768e57754b51294a00480927d50176bf02.zip
CMake-1320e0768e57754b51294a00480927d50176bf02.tar.gz
CMake-1320e0768e57754b51294a00480927d50176bf02.tar.bz2
cmQtAutogen: Allow specifying depends for autogen targets.
Test this by generating files with a custom target, which moc requires to be present when it is run.
Diffstat (limited to 'Tests/QtAutogen')
-rw-r--r--Tests/QtAutogen/CMakeLists.txt9
-rw-r--r--Tests/QtAutogen/generated.cpp10
-rw-r--r--Tests/QtAutogen/generated.h17
-rw-r--r--Tests/QtAutogen/myinterface.h.in14
4 files changed, 49 insertions, 1 deletions
diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index 7991c4e..9dd5289 100644
--- a/Tests/QtAutogen/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -43,10 +43,17 @@ add_library(codeeditorLib STATIC codeeditor.cpp)
add_library(privateSlot OBJECT private_slot.cpp)
+add_custom_target(generate_moc_input
+ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}"
+ COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h"
+)
+# set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/myinterface.h" PROPERTIES GENERATED TRUE)
+
add_executable(QtAutogen main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>
- test.qrc resourcetester.cpp
+ test.qrc resourcetester.cpp generated.cpp
)
+set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input)
set_target_properties(QtAutogen codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE)
diff --git a/Tests/QtAutogen/generated.cpp b/Tests/QtAutogen/generated.cpp
new file mode 100644
index 0000000..f53bf53
--- /dev/null
+++ b/Tests/QtAutogen/generated.cpp
@@ -0,0 +1,10 @@
+
+#include "generated.h"
+
+Generated::Generated(QObject *parent)
+ : QObject(parent)
+{
+
+}
+
+#include "moc_generated.cpp"
diff --git a/Tests/QtAutogen/generated.h b/Tests/QtAutogen/generated.h
new file mode 100644
index 0000000..dd22489
--- /dev/null
+++ b/Tests/QtAutogen/generated.h
@@ -0,0 +1,17 @@
+
+#ifndef GENERATED_H
+#define GENERATED_H
+
+#include <QObject>
+
+#include "myinterface.h"
+
+class Generated : public QObject, MyInterface
+{
+ Q_OBJECT
+ Q_INTERFACES(MyInterface)
+public:
+ explicit Generated(QObject *parent = 0);
+};
+
+#endif
diff --git a/Tests/QtAutogen/myinterface.h.in b/Tests/QtAutogen/myinterface.h.in
new file mode 100644
index 0000000..c6c0ba1
--- /dev/null
+++ b/Tests/QtAutogen/myinterface.h.in
@@ -0,0 +1,14 @@
+
+#ifndef MYINTERFACE_H
+#define MYINTERFACE_H
+
+#include <QObject>
+
+class MyInterface
+{
+
+};
+
+Q_DECLARE_INTERFACE(MyInterface, "org.cmake.example.MyInterface")
+
+#endif