Tests/QtAutogen: Test same moc/qrc source names in different directories

This commit is contained in:
Sebastian Holtermann 2016-08-06 15:22:54 +02:00 committed by Brad King
parent 4e9b97d739
commit e4f508e423
21 changed files with 237 additions and 0 deletions

View File

@ -110,6 +110,10 @@ set_target_properties(
AUTOMOC TRUE
)
# Test AUTOMOC and AUTORCC on source files with the same name
# but in different subdirectories
add_subdirectory(sameName)
include(GenerateExportHeader)
# The order is relevant here. B depends on A, and B headers depend on A
# headers both subdirectories use CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE and we

View File

@ -0,0 +1,21 @@
# Test AUTOMOC and AUTORCC on source files with the same name
# but in different subdirectories
add_executable(sameName
aaa/bbb/item.cpp
aaa/bbb/data.qrc
aaa/item.cpp
aaa/data.qrc
bbb/aaa/item.cpp
bbb/aaa/data.qrc
bbb/item.cpp
bbb/data.qrc
ccc/item.cpp
ccc/data.qrc
item.cpp
data.qrc
main.cpp
)
target_include_directories(sameName PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(sameName ${QT_LIBRARIES})
set_target_properties( sameName PROPERTIES AUTOMOC TRUE AUTORCC TRUE )

View File

@ -0,0 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="aaa/bbb">
<file>item.hpp</file>
<file>item.cpp</file>
</qresource>
</RCC>

View File

@ -0,0 +1,10 @@
#include "item.hpp"
namespace aaa {
namespace bbb {
void Item::go()
{
}
}
}

View File

@ -0,0 +1,18 @@
#ifndef AAA_BBB_ITEM_HPP
#define AAA_BBB_ITEM_HPP
#include <QObject>
namespace aaa {
namespace bbb {
class Item : public QObject
{
Q_OBJECT
Q_SLOT
void go();
};
}
}
#endif

View File

@ -0,0 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="aaa/">
<file>item.hpp</file>
<file>item.cpp</file>
</qresource>
</RCC>

View File

@ -0,0 +1,8 @@
#include "item.hpp"
namespace aaa {
void Item::go()
{
}
}

View File

@ -0,0 +1,16 @@
#ifndef AAA_ITEM_HPP
#define AAA_ITEM_HPP
#include <QObject>
namespace aaa {
class Item : public QObject
{
Q_OBJECT
Q_SLOT
void go();
};
}
#endif

View File

@ -0,0 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="bbb/aaa/">
<file>item.hpp</file>
<file>item.cpp</file>
</qresource>
</RCC>

View File

@ -0,0 +1,10 @@
#include "item.hpp"
namespace bbb {
namespace aaa {
void Item::go()
{
}
}
}

View File

@ -0,0 +1,18 @@
#ifndef BBB_AAA_ITEM_HPP
#define BBB_AAA_ITEM_HPP
#include <QObject>
namespace bbb {
namespace aaa {
class Item : public QObject
{
Q_OBJECT
Q_SLOT
void go();
};
}
}
#endif

View File

@ -0,0 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="bbb/">
<file>item.hpp</file>
<file>item.cpp</file>
</qresource>
</RCC>

View File

@ -0,0 +1,8 @@
#include "item.hpp"
namespace bbb {
void Item::go()
{
}
}

View File

@ -0,0 +1,16 @@
#ifndef BBB_ITEM_HPP
#define BBB_ITEM_HPP
#include <QObject>
namespace bbb {
class Item : public QObject
{
Q_OBJECT
Q_SLOT
void go();
};
}
#endif

View File

@ -0,0 +1,6 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="ccc/">
<file>item.hpp</file>
<file>item.cpp</file>
</qresource>
</RCC>

View File

@ -0,0 +1,23 @@
#include "item.hpp"
namespace ccc {
void Item::go()
{
}
class MocTest : public QObject
{
Q_OBJECT;
Q_SLOT
void go();
};
void MocTest::go()
{
}
}
// Include own moc files
#include "item.moc"
#include "moc_item.cpp"

View File

@ -0,0 +1,16 @@
#ifndef CCC_ITEM_HPP
#define CCC_ITEM_HPP
#include <QObject>
namespace ccc {
class Item : public QObject
{
Q_OBJECT
Q_SLOT
void go();
};
}
#endif

View File

@ -0,0 +1,5 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>main.cpp</file>
</qresource>
</RCC>

View File

@ -0,0 +1,5 @@
#include "item.hpp"
void Item::go()
{
}

View File

@ -0,0 +1,13 @@
#ifndef ITEM_HPP
#define ITEM_HPP
#include <QObject>
class Item : public QObject
{
Q_OBJECT
Q_SLOT
void go();
};
#endif

View File

@ -0,0 +1,16 @@
#include "aaa/bbb/item.hpp"
#include "aaa/item.hpp"
#include "bbb/aaa/item.hpp"
#include "bbb/item.hpp"
#include "ccc/item.hpp"
int main(int argv, char** args)
{
// Object instances
::aaa::Item aaa_item;
::aaa::bbb::Item aaa_bbb_item;
::bbb::Item bbb_item;
::bbb::aaa::Item bbb_aaa_item;
::ccc::Item ccc_item;
return 0;
}