Tests: QtAutogen: Same source name in different directories test

The test features multiple .cpp and .qrc files with the same name
in different subdirectories. This requires AUTOMOC and AUTORCC to
generate files with names that respect the path information of
the source files.
This commit is contained in:
Sebastian Holtermann 2016-04-13 18:36:39 +02:00 committed by Brad King
parent 9c6fa684e7
commit 84946c735c
19 changed files with 234 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(same_name)
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,20 @@
# Test AUTOMOC and AUTORCC on source files with the same name
# but in different subdirectories
add_executable(same_name
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
main.cpp
data.qrc
)
target_include_directories(same_name PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(same_name ${QT_LIBRARIES})
set_target_properties( same_name 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,12 @@
#include "item.hpp"
namespace aaa {
namespace bbb {
void
Item::go ( )
{
}
}
}

View File

@ -0,0 +1,19 @@
#ifndef SDA_SDB_ITEM_HPP
#define SDA_SDB_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,10 @@
#include "item.hpp"
namespace aaa {
void
Item::go ( )
{
}
}

View File

@ -0,0 +1,17 @@
#ifndef SDA_ITEM_HPP
#define SDA_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,12 @@
#include "item.hpp"
namespace bbb {
namespace aaa {
void
Item::go ( )
{
}
}
}

View File

@ -0,0 +1,19 @@
#ifndef SDB_SDA_ITEM_HPP
#define SDB_SDA_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,10 @@
#include "item.hpp"
namespace bbb {
void
Item::go ( )
{
}
}

View File

@ -0,0 +1,17 @@
#ifndef SDB_ITEM_HPP
#define SDB_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,26 @@
#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 "moc_item.cpp"
#include "item.moc"

View File

@ -0,0 +1,17 @@
#ifndef SDC_ITEM_HPP
#define SDC_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,16 @@
#include "aaa/item.hpp"
#include "aaa/bbb/item.hpp"
#include "bbb/item.hpp"
#include "bbb/aaa/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;
}