Skip to content
Snippets Groups Projects
Commit 15ef2728 authored by Sebastian Holtermann's avatar Sebastian Holtermann
Browse files

Autogen: Add test for OBJECT libraries

parent 362f9bd7
No related branches found
No related tags found
No related merge requests found
......@@ -192,6 +192,10 @@ endif()
# Tests various .ui include directories
add_subdirectory(uicInclude)
# -- Test
# OBJECT libraries
add_subdirectory(objectLibrary)
# -- Test
# Complex test case
add_subdirectory(complex)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
# Object library a defined in a subdirectory
add_subdirectory(a)
# Object library b defined locally
include_directories(b)
add_library(b OBJECT b/classb.cpp)
target_compile_features(b PRIVATE ${QT_COMPILE_FEATURES})
# Executable with OBJECT library generator expressions
add_executable(someProgram main.cpp $<TARGET_OBJECTS:a> $<TARGET_OBJECTS:b>)
target_link_libraries(someProgram ${QT_LIBRARIES})
add_library(a OBJECT classa.cpp)
target_compile_features(a PRIVATE ${QT_COMPILE_FEATURES})
#include "classa.h"
#include <QDebug>
void ClassA::slotDoSomething()
{
qDebug() << m_member;
}
#ifndef CLASSA_H
#define CLASSA_H
#include <QObject>
#include <QString>
class ClassA : public QObject
{
Q_OBJECT
public:
ClassA()
: m_member("Hello A")
{
}
public slots:
void slotDoSomething();
private:
QString m_member;
};
#endif
#include "classb.h"
#include <QDebug>
void ClassB::slotDoSomething()
{
qDebug() << m_member;
}
#ifndef CLASSB_H
#define CLASSB_H
#include <QObject>
#include <QString>
class ClassB : public QObject
{
Q_OBJECT
public:
ClassB()
: m_member("Hello B")
{
}
public slots:
void slotDoSomething();
private:
QString m_member;
};
#endif
#include "a/classa.h"
#include "b/classb.h"
int main(int argc, char** argv)
{
ClassA a;
a.slotDoSomething();
ClassB b;
b.slotDoSomething();
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment