Test the use of target transitive compile definitions with moc.

This commit is contained in:
Stephen Kelly 2013-05-15 19:17:41 +02:00
parent 6489015c75
commit 5c0f2a131f
3 changed files with 47 additions and 0 deletions

View File

@ -5,6 +5,9 @@ project(QtAutomoc)
if (QT_TEST_VERSION STREQUAL 4) if (QT_TEST_VERSION STREQUAL 4)
find_package(Qt4 REQUIRED) find_package(Qt4 REQUIRED)
# Include this directory before using the UseQt4 file.
add_subdirectory(defines_test)
include(UseQt4) include(UseQt4)
set(QT_QTCORE_TARGET Qt4::QtCore) set(QT_QTCORE_TARGET Qt4::QtCore)

View File

@ -0,0 +1,6 @@
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_executable(defines_test defines_test.cpp)
set_target_properties(defines_test PROPERTIES AUTOMOC TRUE)
target_link_libraries(defines_test Qt4::QtGui)

View File

@ -0,0 +1,38 @@
#include <QObject>
#ifdef QT_GUI_LIB
#include <QTextDocument>
class SomeDocument : public QTextDocument
{
Q_OBJECT
Q_SIGNALS:
void someSig();
};
#endif
#ifdef QT_CORE_LIB
class SomeObject : public QObject
{
Q_OBJECT
Q_SIGNALS:
void someSig();
};
#endif
int main(int argc, char **argv)
{
#ifdef QT_CORE_LIB
QMetaObject sosmo = SomeObject::staticMetaObject;
#endif
#ifdef QT_GUI_LIB
QMetaObject sdsmo = SomeDocument::staticMetaObject;
#endif
return 0;
}
#include "defines_test.moc"