Merge branch 'fix-AUTOGEN-custom-command-depends' into release

This commit is contained in:
Brad King 2014-03-10 09:38:52 -04:00
commit ebaa5a6410
4 changed files with 36 additions and 3 deletions

View File

@ -260,6 +260,18 @@ bool cmQtAutoGenerators::InitializeAutogenTarget(cmTarget* target)
// This also works around a VS 11 bug that may skip updating the target:
// https://connect.microsoft.com/VisualStudio/feedback/details/769495
usePRE_BUILD = vslg->GetVersion() >= cmLocalVisualStudioGenerator::VS7;
if(usePRE_BUILD)
{
for (std::vector<std::string>::iterator it = depends.begin();
it != depends.end(); ++it)
{
if(!makefile->FindTargetToUse(it->c_str()))
{
usePRE_BUILD = false;
break;
}
}
}
}
if(usePRE_BUILD)
{

View File

@ -58,11 +58,17 @@ add_custom_target(generate_moc_input
COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h"
)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h"
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in"
)
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 generated.cpp
)
set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input)
set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h")
set_target_properties(QtAutogen codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE)

View File

@ -5,11 +5,12 @@
#include <QObject>
#include "myinterface.h"
#include "myotherinterface.h"
class Generated : public QObject, MyInterface
class Generated : public QObject, MyInterface, MyOtherInterface
{
Q_OBJECT
Q_INTERFACES(MyInterface)
Q_INTERFACES(MyInterface MyOtherInterface)
public:
explicit Generated(QObject *parent = 0);
};

View File

@ -0,0 +1,14 @@
#ifndef MYOTHERINTERFACE_H
#define MYOTHERINTERFACE_H
#include <QObject>
class MyOtherInterface
{
};
Q_DECLARE_INTERFACE(MyOtherInterface, "org.cmake.example.MyOtherInterface")
#endif