diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-11-18 07:09:56 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2013-11-25 21:41:21 (GMT) |
commit | 1320e0768e57754b51294a00480927d50176bf02 (patch) | |
tree | ec1847962c1a9562a67056bc63cbab8ee6cb1c00 /Tests/QtAutogen | |
parent | da6b86f4f031b189768dc474721145a1b99f71ea (diff) | |
download | CMake-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.txt | 9 | ||||
-rw-r--r-- | Tests/QtAutogen/generated.cpp | 10 | ||||
-rw-r--r-- | Tests/QtAutogen/generated.h | 17 | ||||
-rw-r--r-- | Tests/QtAutogen/myinterface.h.in | 14 |
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 |