Added install directive in CMakeLists and restructured the project
This commit is contained in:
parent
a137cae07b
commit
87603e9239
|
@ -1,3 +1,3 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(test)
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
project(DOtherSide)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
if (WIN32)
|
||||
add_definitions(-DWIN32)
|
||||
endif()
|
||||
|
||||
find_package(Qt5Core)
|
||||
find_package(Qt5Qml)
|
||||
find_package(Qt5Gui)
|
||||
find_package(Qt5Quick)
|
||||
find_package(Qt5Widgets)
|
||||
|
||||
set(HEADERS_LIST
|
||||
include/DOtherSide/BaseQAbstractListModel.h
|
||||
include/DOtherSide/DOtherSideTypes.h
|
||||
include/DOtherSide/DynamicSignal.h
|
||||
include/DOtherSide/BaseQObject.h
|
||||
include/DOtherSide/DynamicProperty.h
|
||||
include/DOtherSide/DynamicSlot.h
|
||||
include/DOtherSide/DOtherSide.h
|
||||
include/DOtherSide/DynamicQObject.h
|
||||
include/DOtherSide/IDynamicQObject.h
|
||||
include/DOtherSide/OnSlotExecutedHandler.h
|
||||
)
|
||||
|
||||
set(SRC_LIST
|
||||
src/DOtherSide.cpp
|
||||
src/OnSlotExecutedHandler.cpp
|
||||
src/DynamicSlot.cpp
|
||||
src/DynamicSignal.cpp
|
||||
src/DynamicProperty.cpp
|
||||
)
|
||||
|
||||
include_directories(include include/Qt)
|
||||
|
||||
# Shared version for distributing
|
||||
add_library(${PROJECT_NAME} SHARED ${SRC_LIST} ${HEADERS_LIST})
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Qml Qt5::Quick)
|
||||
|
||||
# Static version for testing
|
||||
add_library("${PROJECT_NAME}Static" STATIC ${SRC_LIST} ${HEADERS_LIST})
|
||||
set_property(TARGET "${PROJECT_NAME}Static" PROPERTY CXX_STANDARD 11)
|
||||
target_link_libraries("${PROJECT_NAME}Static" PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Qml Qt5::Quick)
|
||||
|
||||
# Install directive for header files
|
||||
install(FILES
|
||||
include/DOtherSide/DOtherSide.h
|
||||
include/DOtherSide/DOtherSideTypes.h
|
||||
DESTINATION include/DOtherSide)
|
||||
|
||||
# Install directive for binaries
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
)
|
|
@ -1,8 +1,11 @@
|
|||
#pragma once
|
||||
|
||||
#include "DOtherSideTypes.h"
|
||||
#include "DynamicQObject.h"
|
||||
// Qt
|
||||
#include <QAbstractListModel>
|
||||
// DOtherSide
|
||||
#include "DOtherSide/DOtherSideTypes.h"
|
||||
#include "DOtherSide/DynamicQObject.h"
|
||||
|
||||
|
||||
/// This class act as a base class for D and Nim QAbstractListModel
|
||||
class BaseQAbstractListModel final : public DynamicQObject<QAbstractListModel>
|
|
@ -1,5 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include "DynamicQObject.h"
|
||||
#include "DOtherSide/DynamicQObject.h"
|
||||
|
||||
using BaseQObject = DynamicQObject<QObject>;
|
|
@ -7,7 +7,7 @@
|
|||
#define DOS_API
|
||||
#endif
|
||||
|
||||
#include "DOtherSideTypes.h"
|
||||
#include <DOtherSide/DOtherSideTypes.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
|
@ -1,6 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
// std
|
||||
#include <memory>
|
||||
// Qt
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QMetaType>
|
||||
|
|
@ -1,16 +1,18 @@
|
|||
#pragma once
|
||||
|
||||
// std
|
||||
#include <memory>
|
||||
#include <array>
|
||||
// Qt
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QScopedPointer>
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
#include "private/qmetaobjectbuilder_p.h"
|
||||
#include "DynamicSignal.h"
|
||||
#include "DynamicSlot.h"
|
||||
#include "DynamicProperty.h"
|
||||
#include "IDynamicQObject.h"
|
||||
// DOtherSide
|
||||
#include "DOtherSide/DynamicSignal.h"
|
||||
#include "DOtherSide/DynamicSlot.h"
|
||||
#include "DOtherSide/DynamicProperty.h"
|
||||
#include "DOtherSide/IDynamicQObject.h"
|
||||
|
||||
/// This class implements a QObject to which signals, slots and properties can be added dynamically
|
||||
template <class T>
|
|
@ -1,7 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
// std
|
||||
#include <memory>
|
||||
|
||||
// Qt
|
||||
#include <QtCore/QMetaType>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QMetaType>
|
|
@ -1,8 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
// std
|
||||
#include <memory>
|
||||
#include <functional>
|
||||
|
||||
// Qt
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMetaType>
|
||||
#include <QtCore/QVariant>
|
||||
|
@ -10,7 +11,6 @@
|
|||
#include <QtCore/QString>
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtCore/QMetaType>
|
||||
|
||||
#include "private/qmetaobjectbuilder_p.h"
|
||||
|
||||
class QString;
|
|
@ -1,8 +1,11 @@
|
|||
#pragma once
|
||||
|
||||
#include <QVariant>
|
||||
// std
|
||||
#include <vector>
|
||||
#include "IDynamicQObject.h"
|
||||
// Qt
|
||||
#include <QVariant>
|
||||
// DOtherSide
|
||||
#include "DOtherSide/IDynamicQObject.h"
|
||||
|
||||
class DynamicSlot;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#include "DOtherSide.h"
|
||||
#include "DOtherSide/DOtherSide.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
@ -12,10 +12,10 @@
|
|||
#include <QtQuick/QQuickView>
|
||||
#include <QtWidgets/QApplication>
|
||||
|
||||
#include "DynamicQObject.h"
|
||||
#include "BaseQAbstractListModel.h"
|
||||
#include "BaseQObject.h"
|
||||
#include "OnSlotExecutedHandler.h"
|
||||
#include "DOtherSide/DynamicQObject.h"
|
||||
#include "DOtherSide/BaseQAbstractListModel.h"
|
||||
#include "DOtherSide/BaseQObject.h"
|
||||
#include "DOtherSide/OnSlotExecutedHandler.h"
|
||||
|
||||
void convert_to_cstring(const QString& source, char** destination)
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
#include "DynamicProperty.h"
|
||||
#include "DOtherSide/DynamicProperty.h"
|
||||
|
||||
struct DynamicProperty::PropertyData final
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
#include "DynamicSignal.h"
|
||||
#include "DOtherSide/DynamicSignal.h"
|
||||
|
||||
struct DynamicSignal::SignalData
|
||||
{
|
||||
|
@ -9,8 +9,7 @@ struct DynamicSignal::SignalData
|
|||
|
||||
DynamicSignal::DynamicSignal()
|
||||
: d(nullptr)
|
||||
{
|
||||
}
|
||||
{}
|
||||
|
||||
DynamicSignal::DynamicSignal(const QString& name, const QList<QMetaType::Type>& arguments)
|
||||
: d(new SignalData())
|
||||
|
@ -45,9 +44,7 @@ DynamicSignal& DynamicSignal::operator=(const DynamicSignal& signal)
|
|||
return *this;
|
||||
}
|
||||
|
||||
DynamicSignal::~DynamicSignal()
|
||||
{
|
||||
}
|
||||
DynamicSignal::~DynamicSignal() = default;
|
||||
|
||||
bool DynamicSignal::isValid() const
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
#include "DynamicSlot.h"
|
||||
#include "DOtherSide/DynamicSlot.h"
|
||||
|
||||
struct DynamicSlot::SlotData
|
||||
{
|
|
@ -1,5 +1,5 @@
|
|||
#include "OnSlotExecutedHandler.h"
|
||||
#include "DynamicSlot.h"
|
||||
#include "DOtherSide/OnSlotExecutedHandler.h"
|
||||
#include "DOtherSide/DynamicSlot.h"
|
||||
|
||||
OnSlotExecutedHandler::OnSlotExecutedHandler(void *dObjectPointer,
|
||||
IDynamicQObject::Callback dObjectCallback)
|
|
@ -1,45 +0,0 @@
|
|||
project(DOtherSide)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
if (WIN32)
|
||||
add_definitions(-DWIN32)
|
||||
endif()
|
||||
|
||||
find_package(Qt5Core)
|
||||
find_package(Qt5Qml)
|
||||
find_package(Qt5Gui)
|
||||
find_package(Qt5Quick)
|
||||
find_package(Qt5Widgets)
|
||||
|
||||
set(HEADERS_LIST
|
||||
BaseQAbstractListModel.h
|
||||
DOtherSideTypes.h
|
||||
DynamicSignal.h
|
||||
BaseQObject.h
|
||||
DynamicProperty.h
|
||||
DynamicSlot.h
|
||||
DOtherSide.h
|
||||
DynamicQObject.h
|
||||
IDynamicQObject.h
|
||||
OnSlotExecutedHandler.h
|
||||
)
|
||||
|
||||
set(SRC_LIST
|
||||
DOtherSide.cpp
|
||||
OnSlotExecutedHandler.cpp
|
||||
DynamicSlot.cpp
|
||||
DynamicSignal.cpp
|
||||
DynamicProperty.cpp
|
||||
)
|
||||
|
||||
# Shared version for distributing
|
||||
add_library(${PROJECT_NAME} SHARED ${SRC_LIST} ${HEADERS_LIST})
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Qml Qt5::Quick)
|
||||
|
||||
# Static version for testing
|
||||
add_library("${PROJECT_NAME}Static" STATIC ${SRC_LIST} ${HEADERS_LIST})
|
||||
set_property(TARGET "${PROJECT_NAME}Static" PROPERTY CXX_STANDARD 11)
|
||||
target_link_libraries("${PROJECT_NAME}Static" PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Qml Qt5::Quick)
|
|
@ -3,9 +3,7 @@ project(TestDynamicQObject)
|
|||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
if (UNIX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-long-long -pedantic")
|
||||
endif()
|
||||
include_directories(${CMAKE_SOURCE_DIR}/lib/include ${CMAKE_SOURCE_DIR}/lib/include/Qt)
|
||||
|
||||
find_package(Qt5Test REQUIRED)
|
||||
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
#include <QTest>
|
||||
#include <QSignalSpy>
|
||||
// std
|
||||
#include <tuple>
|
||||
#include <iostream>
|
||||
// Qt
|
||||
#include <QDebug>
|
||||
#include "../src/BaseQObject.h"
|
||||
#include "../src/DynamicQObject.h"
|
||||
#include <QTest>
|
||||
#include <QSignalSpy>
|
||||
// DOtherSide
|
||||
#include "DOtherSide/BaseQObject.h"
|
||||
#include "DOtherSide/DynamicQObject.h"
|
||||
|
||||
// Templates that convers a T to a string
|
||||
template <typename T>
|
||||
|
|
Loading…
Reference in New Issue