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:
parent
9c6fa684e7
commit
84946c735c
|
@ -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
|
||||
|
|
|
@ -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 )
|
|
@ -0,0 +1,6 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource prefix="aaa/bbb">
|
||||
<file>item.hpp</file>
|
||||
<file>item.cpp</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -0,0 +1,12 @@
|
|||
#include "item.hpp"
|
||||
|
||||
namespace aaa {
|
||||
namespace bbb {
|
||||
|
||||
void
|
||||
Item::go ( )
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1,6 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource prefix="aaa/">
|
||||
<file>item.hpp</file>
|
||||
<file>item.cpp</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -0,0 +1,10 @@
|
|||
#include "item.hpp"
|
||||
|
||||
namespace aaa {
|
||||
|
||||
void
|
||||
Item::go ( )
|
||||
{
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1,6 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource prefix="bbb/aaa/">
|
||||
<file>item.hpp</file>
|
||||
<file>item.cpp</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -0,0 +1,12 @@
|
|||
#include "item.hpp"
|
||||
|
||||
namespace bbb {
|
||||
namespace aaa {
|
||||
|
||||
void
|
||||
Item::go ( )
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1,6 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource prefix="bbb/">
|
||||
<file>item.hpp</file>
|
||||
<file>item.cpp</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -0,0 +1,10 @@
|
|||
#include "item.hpp"
|
||||
|
||||
namespace bbb {
|
||||
|
||||
void
|
||||
Item::go ( )
|
||||
{
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1,6 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource prefix="ccc/">
|
||||
<file>item.hpp</file>
|
||||
<file>item.cpp</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -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"
|
|
@ -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
|
|
@ -0,0 +1,5 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource>
|
||||
<file>main.cpp</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue