mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-19 02:17:27 +08:00
Autogen: Fix and extend SKIP_AUTOMOC test
This commit is contained in:
@@ -114,16 +114,27 @@ target_compile_features(empty PRIVATE ${QT_COMPILE_FEATURES})
|
|||||||
# -- Test
|
# -- Test
|
||||||
# Test for SKIP_AUTOMOC and SKIP_AUTOGEN on an AUTOMOC enabled target
|
# Test for SKIP_AUTOMOC and SKIP_AUTOGEN on an AUTOMOC enabled target
|
||||||
if(ALLOW_WRAP_CPP)
|
if(ALLOW_WRAP_CPP)
|
||||||
|
# Generate header mocs manually
|
||||||
qtx_wrap_cpp(skipMocWrapMoc
|
qtx_wrap_cpp(skipMocWrapMoc
|
||||||
skipSource/qItemA.hpp
|
skipSource/qItemA.hpp
|
||||||
skipSource/qItemB.hpp)
|
skipSource/qItemB.hpp
|
||||||
|
skipSource/qItemC.hpp
|
||||||
|
skipSource/qItemD.hpp
|
||||||
|
)
|
||||||
set(skipMocSources
|
set(skipMocSources
|
||||||
skipMoc.cpp
|
skipMoc.cpp
|
||||||
skipSource/qItemA.cpp
|
skipSource/qItemA.cpp
|
||||||
skipSource/qItemB.cpp
|
skipSource/qItemB.cpp
|
||||||
skipSource/qItemC.cpp)
|
skipSource/qItemC.cpp
|
||||||
|
skipSource/qItemD.cpp
|
||||||
|
)
|
||||||
|
# When cpp files are skipped, the hpp won't be processed either,
|
||||||
|
# unless they are mentioned in the sources - which they aren't.
|
||||||
set_property(SOURCE skipSource/qItemA.cpp PROPERTY SKIP_AUTOMOC ON)
|
set_property(SOURCE skipSource/qItemA.cpp PROPERTY SKIP_AUTOMOC ON)
|
||||||
set_property(SOURCE skipSource/qItemB.cpp PROPERTY SKIP_AUTOGEN ON)
|
set_property(SOURCE skipSource/qItemB.cpp PROPERTY SKIP_AUTOGEN ON)
|
||||||
|
# When hpp files are skipped, the cpp still get processed.
|
||||||
|
set_property(SOURCE skipSource/qItemC.hpp PROPERTY SKIP_AUTOMOC ON)
|
||||||
|
set_property(SOURCE skipSource/qItemD.hpp PROPERTY SKIP_AUTOGEN ON)
|
||||||
# AUTOMOC enabled only
|
# AUTOMOC enabled only
|
||||||
add_executable(skipMocA ${skipMocSources} ${skipMocWrapMoc})
|
add_executable(skipMocA ${skipMocSources} ${skipMocWrapMoc})
|
||||||
set_property(TARGET skipMocA PROPERTY AUTOMOC ON)
|
set_property(TARGET skipMocA PROPERTY AUTOMOC ON)
|
||||||
|
@@ -2,12 +2,14 @@
|
|||||||
#include "skipSource/qItemA.hpp"
|
#include "skipSource/qItemA.hpp"
|
||||||
#include "skipSource/qItemB.hpp"
|
#include "skipSource/qItemB.hpp"
|
||||||
#include "skipSource/qItemC.hpp"
|
#include "skipSource/qItemC.hpp"
|
||||||
|
#include "skipSource/qItemD.hpp"
|
||||||
|
|
||||||
int main(int, char**)
|
int main(int, char**)
|
||||||
{
|
{
|
||||||
QItemA itemA;
|
QItemA itemA;
|
||||||
QItemA itemB;
|
QItemB itemB;
|
||||||
QItemA itemC;
|
QItemC itemC;
|
||||||
|
QItemD itemD;
|
||||||
|
|
||||||
// Fails to link if the symbol is not present.
|
// Fails to link if the symbol is not present.
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -1,5 +1,17 @@
|
|||||||
#include "qItemC.hpp"
|
#include "qItemC.hpp"
|
||||||
|
|
||||||
|
class QItemC_Local : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
QItemC_Local(){};
|
||||||
|
~QItemC_Local(){};
|
||||||
|
};
|
||||||
|
|
||||||
void QItemC::go()
|
void QItemC::go()
|
||||||
{
|
{
|
||||||
|
QItemC_Local localObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We need AUTOMOC processing
|
||||||
|
#include "qItemC.moc"
|
||||||
|
17
Tests/QtAutogen/skipSource/qItemD.cpp
Normal file
17
Tests/QtAutogen/skipSource/qItemD.cpp
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#include "qItemD.hpp"
|
||||||
|
|
||||||
|
class QItemD_Local : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
QItemD_Local(){};
|
||||||
|
~QItemD_Local(){};
|
||||||
|
};
|
||||||
|
|
||||||
|
void QItemD::go()
|
||||||
|
{
|
||||||
|
QItemD_Local localObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We need AUTOMOC processing
|
||||||
|
#include "qItemD.moc"
|
13
Tests/QtAutogen/skipSource/qItemD.hpp
Normal file
13
Tests/QtAutogen/skipSource/qItemD.hpp
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#ifndef QITEMD_HPP
|
||||||
|
#define QITEMD_HPP
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
class QItemD : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_SLOT
|
||||||
|
void go();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Reference in New Issue
Block a user