diff --git a/qt-openzwave.pri b/qt-openzwave.pri index f720a8a..6146fc1 100644 --- a/qt-openzwave.pri +++ b/qt-openzwave.pri @@ -36,12 +36,24 @@ unix { } win32 { + CONFIG(debug,debug|release) BUILDTYPE = debug + CONFIG(release,debug|release) BUILDTYPE = release exists( $$top_srcdir/../open-zwave/cpp/src/) { message("Found OZW in $$absolute_path($$top_srcdir/../open-zwave/cpp/src)") OZW_LIB_PATH = $$absolute_path($$top_srcdir/../open-zwave/) INCLUDEPATH += $$absolute_path($$top_srcdir/../open-zwave/cpp/src/)/ - LIBS += -L$$absolute_path($$top_srcdir/../open-zwave/cpp/build/windows/vs2010/ReleaseDLL) -lopenzwave + exists( $$OZW_LIB_PATH/cpp/build/windows/vs2010/ReleaseDLL/OpenZWave.dll) { + LIBS += -L$$absolute_path($$top_srcdir/../open-zwave/cpp/build/windows/vs2010/ReleaseDLL) -lopenzwave + } else { + exists ( $$top_srcdir../open-zwave/cpp/build/windows/vs2010/DebugDLL/OpenZWave.dll) { + LIBS += -L$$absolute_path($$top_srcdir/../open-zwave/cpp/build/windows/vs2010/DebugDLL) -lopenzwave + } else { + error("Can't find a copy of OpenZWave.dll in the DebugDLL or ReleaseDLL Directory"); + } + } } else { error("Can't Find a copy of OpenZwave") } + CONFIG(debug,debug|release) BUILDTYPE = debug + CONFIG(release,debug|release) BUILDTYPE = release } diff --git a/qt-openzwave.pro b/qt-openzwave.pro index eca841e..e99b805 100644 --- a/qt-openzwave.pro +++ b/qt-openzwave.pro @@ -12,3 +12,7 @@ SUBDIRS = qt-openzwave \ qt-openzwavedatabase \ qt-ozwdaemon \ qt-simpleclient + +win32 { + SUBDIRS -= qt-openzwavedatabase +} diff --git a/qt-openzwave/include/qt-openzwave/qtopenzwave.h b/qt-openzwave/include/qt-openzwave/qtopenzwave.h index 04947a1..3e4ddb8 100644 --- a/qt-openzwave/include/qt-openzwave/qtopenzwave.h +++ b/qt-openzwave/include/qt-openzwave/qtopenzwave.h @@ -29,8 +29,18 @@ #include #include -#include "qt-openzwave_global.h" -#include "qtozwmanager.h" +#include + +#if defined(QTOPENZWAVE_LIBRARY) +#define QTOPENZWAVESHARED_EXPORT Q_DECL_EXPORT +#else +#define QTOPENZWAVESHARED_EXPORT Q_DECL_IMPORT +#define OPENZWAVE_USEDLL 1 +#endif + +//#include "qtozwmanager.h" + + /** * \mainpage QT-OpenZWave @@ -79,6 +89,8 @@ * class which is the main interface to QT-OpenZWave */ +class QTOZWManager; + class QTOPENZWAVESHARED_EXPORT QTOpenZwave : public QObject { Q_OBJECT diff --git a/qt-openzwave/include/qt-openzwave/qtozw_pods.h b/qt-openzwave/include/qt-openzwave/qtozw_pods.h index c2c3551..1b59677 100644 --- a/qt-openzwave/include/qt-openzwave/qtozw_pods.h +++ b/qt-openzwave/include/qt-openzwave/qtozw_pods.h @@ -27,6 +27,9 @@ #ifndef QTOZW_PODS_H #define QTOZW_PODS_H + +#include "qt-openzwave/qtopenzwave.h" + #include #include #include diff --git a/qt-openzwave/include/qt-openzwave/qtozwassociationmodel.h b/qt-openzwave/include/qt-openzwave/qtozwassociationmodel.h index c5aeda5..5becd31 100644 --- a/qt-openzwave/include/qt-openzwave/qtozwassociationmodel.h +++ b/qt-openzwave/include/qt-openzwave/qtozwassociationmodel.h @@ -28,10 +28,13 @@ #ifndef QTOZWASSOCIATIONS_H #define QTOZWASSOCIATIONS_H +#include "qt-openzwave/qtopenzwave.h" + #include #include -class QTOZW_Associations : public QAbstractTableModel { + +class QTOPENZWAVESHARED_EXPORT QTOZW_Associations : public QAbstractTableModel { Q_OBJECT public: enum associationColumns { diff --git a/qt-openzwave/include/qt-openzwave/qtozwlog.h b/qt-openzwave/include/qt-openzwave/qtozwlog.h index 6e2704b..eddddd6 100644 --- a/qt-openzwave/include/qt-openzwave/qtozwlog.h +++ b/qt-openzwave/include/qt-openzwave/qtozwlog.h @@ -28,12 +28,14 @@ #ifndef QTOZWLOGGING_H #define QTOZWLOGGING_H +#include "qt-openzwave/qtopenzwave.h" + #include #include #include -class QTOZW_Log : public QAbstractTableModel { +class QTOPENZWAVESHARED_EXPORT QTOZW_Log : public QAbstractTableModel { Q_OBJECT public: enum LogColumns { diff --git a/qt-openzwave/include/qt-openzwave/qtozwmanager.h b/qt-openzwave/include/qt-openzwave/qtozwmanager.h index 0b30cee..6d4278a 100644 --- a/qt-openzwave/include/qt-openzwave/qtozwmanager.h +++ b/qt-openzwave/include/qt-openzwave/qtozwmanager.h @@ -28,6 +28,8 @@ #ifndef QTOZWMANAGER_H #define QTOZWMANAGER_H +#include "qt-openzwave/qtopenzwave.h" + #include #include #include @@ -46,7 +48,7 @@ class QTOZWManager_Internal; class QTOZWManagerReplica; class QTOZWOptionsReplica; -class QTOZWManager : public QObject { +class QTOPENZWAVESHARED_EXPORT QTOZWManager : public QObject { Q_OBJECT public: enum connectionType { diff --git a/qt-openzwave/include/qt-openzwave/qtozwnodemodel.h b/qt-openzwave/include/qt-openzwave/qtozwnodemodel.h index efa4e8f..40ad937 100644 --- a/qt-openzwave/include/qt-openzwave/qtozwnodemodel.h +++ b/qt-openzwave/include/qt-openzwave/qtozwnodemodel.h @@ -28,10 +28,12 @@ #ifndef QTOZWNODEMODEL_H #define QTOZWNODEMODEL_H +#include "qt-openzwave/qtopenzwave.h" + #include #include -class QTOZW_Nodes : public QAbstractTableModel { +class QTOPENZWAVESHARED_EXPORT QTOZW_Nodes : public QAbstractTableModel { Q_OBJECT public: enum NodeColumns { diff --git a/qt-openzwave/include/qt-openzwave/qtozwoptions.h b/qt-openzwave/include/qt-openzwave/qtozwoptions.h index fa80079..a93f051 100644 --- a/qt-openzwave/include/qt-openzwave/qtozwoptions.h +++ b/qt-openzwave/include/qt-openzwave/qtozwoptions.h @@ -28,6 +28,8 @@ #ifndef QTOZWOPTIONS_H #define QTOZWOPTIONS_H +#include "qt-openzwave/qtopenzwave.h" + #include #include #include "qt-openzwave/qtozw_pods.h" @@ -37,7 +39,7 @@ class QTOZWOptions_Internal; class QTOZWOptionsReplica; class QTOZWManager; -class QTOZWOptions : public QObject { +class QTOPENZWAVESHARED_EXPORT QTOZWOptions : public QObject { friend class QTOZWManager; diff --git a/qt-openzwave/include/qt-openzwave/qtozwproxymodels.h b/qt-openzwave/include/qt-openzwave/qtozwproxymodels.h index feab8c4..6132e51 100644 --- a/qt-openzwave/include/qt-openzwave/qtozwproxymodels.h +++ b/qt-openzwave/include/qt-openzwave/qtozwproxymodels.h @@ -28,6 +28,8 @@ #ifndef QTOZWPROXYMODELS_H #define QTOZWPROXYMODELS_H +#include "qt-openzwave/qtopenzwave.h" + #include #include #include @@ -35,7 +37,7 @@ #include "qtozwnodemodel.h" #include "qtozwvalueidmodel.h" -class QTOZW_proxyNodeModel : public QSortFilterProxyModel +class QTOPENZWAVESHARED_EXPORT QTOZW_proxyNodeModel : public QSortFilterProxyModel { Q_OBJECT public: @@ -47,7 +49,7 @@ public slots: }; -class QTOZW_proxyValueModel : public QSortFilterProxyModel +class QTOPENZWAVESHARED_EXPORT QTOZW_proxyValueModel : public QSortFilterProxyModel { Q_OBJECT public: @@ -69,7 +71,7 @@ private: }; -class QTOZW_proxyAssociationModel : public QSortFilterProxyModel +class QTOPENZWAVESHARED_EXPORT QTOZW_proxyAssociationModel : public QSortFilterProxyModel { Q_OBJECT public: diff --git a/qt-openzwave/include/qt-openzwave/qtozwvalueidmodel.h b/qt-openzwave/include/qt-openzwave/qtozwvalueidmodel.h index 47919ae..3b7fceb 100644 --- a/qt-openzwave/include/qt-openzwave/qtozwvalueidmodel.h +++ b/qt-openzwave/include/qt-openzwave/qtozwvalueidmodel.h @@ -28,6 +28,7 @@ #ifndef QTOZWVALUEIDMODEL_H #define QTOZWVALUEIDMODEL_H +#include "qt-openzwave/qtopenzwave.h" #include #include #include @@ -55,7 +56,7 @@ QDataStream & operator>>(QDataStream & dataStream, QTOZW_ValueIDBitSet & list); Q_DECLARE_METATYPE(QTOZW_ValueIDBitSet); -class QTOZW_ValueIds : public QAbstractTableModel { +class QTOPENZWAVESHARED_EXPORT QTOZW_ValueIds : public QAbstractTableModel { Q_OBJECT public: enum ValueIdColumns { diff --git a/qt-openzwave/include/qt-openzwave_global.h b/qt-openzwave/include/qt-openzwave_global.h deleted file mode 100644 index c3b4900..0000000 --- a/qt-openzwave/include/qt-openzwave_global.h +++ /dev/null @@ -1,40 +0,0 @@ -//----------------------------------------------------------------------------- -// -// qt-openzwave_global.h -// -// Global Definition Header -// -// Copyright (c) 2019 Justin Hammond -// -// SOFTWARE NOTICE AND LICENSE -// -// This file is part of QT-OpenZWave. -// -// OpenZWave is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published -// by the Free Software Foundation, either version 3 of the License, -// or (at your option) any later version. -// -// OpenZWave is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with OpenZWave. If not, see . -// -//----------------------------------------------------------------------------- - -#ifndef QTOPENZWAVE_GLOBAL_H -#define QTOPENZWAVE_GLOBAL_H - -#include - -#if defined(QTOPENZWAVE_LIBRARY) -# define QTOPENZWAVESHARED_EXPORT Q_DECL_EXPORT -#else -# define QTOPENZWAVESHARED_EXPORT Q_DECL_IMPORT -# define OPENZWAVE_USEDLL -#endif - -#endif // QTOPENZWAVE_GLOBAL_H diff --git a/qt-openzwave/include/qtozw_logging.h b/qt-openzwave/include/qtozw_logging.h index 364dcea..9b98f67 100644 --- a/qt-openzwave/include/qtozw_logging.h +++ b/qt-openzwave/include/qtozw_logging.h @@ -25,11 +25,11 @@ // //----------------------------------------------------------------------------- -#include "qt-openzwave_global.h" -#include #ifndef QTOZW_LOGGING_H #define QTOZW_LOGGING_H +#include "qt-openzwave/qtopenzwave.h" +#include Q_DECLARE_LOGGING_CATEGORY(manager); Q_DECLARE_LOGGING_CATEGORY(valueModel); diff --git a/qt-openzwave/include/qtozwassociationmodel_p.h b/qt-openzwave/include/qtozwassociationmodel_p.h index c40b8dd..a7336cd 100644 --- a/qt-openzwave/include/qtozwassociationmodel_p.h +++ b/qt-openzwave/include/qtozwassociationmodel_p.h @@ -28,7 +28,7 @@ #ifndef QTOZWASSOCIATIONMODEL_P_H #define QTOZWASSOCIATIONMODEL_P_H -#include "qt-openzwave_global.h" +#include "qt-openzwave/qtopenzwave.h" #include #include "qt-openzwave/qtozwassociationmodel.h" diff --git a/qt-openzwave/include/qtozwlog_p.h b/qt-openzwave/include/qtozwlog_p.h index 7455789..1c2370b 100644 --- a/qt-openzwave/include/qtozwlog_p.h +++ b/qt-openzwave/include/qtozwlog_p.h @@ -27,7 +27,7 @@ #ifndef QTOZW_LOG_P_H #define QTOZW_LOG_P_H -#include "qt-openzwave_global.h" +#include "qt-openzwave/qtopenzwave.h" #include "qt-openzwave/qtozwlog.h" #include diff --git a/qt-openzwave/include/qtozwmanager_p.h b/qt-openzwave/include/qtozwmanager_p.h index bbf2da3..f72143e 100644 --- a/qt-openzwave/include/qtozwmanager_p.h +++ b/qt-openzwave/include/qtozwmanager_p.h @@ -29,7 +29,7 @@ #ifndef QTOZWMANAGER_P_H #define QTOZWMANAGER_P_H -#include "qt-openzwave_global.h" +#include "qt-openzwave/qtopenzwave.h" #include #include diff --git a/qt-openzwave/include/qtozwnodemodel_p.h b/qt-openzwave/include/qtozwnodemodel_p.h index e7fbfb5..608100b 100644 --- a/qt-openzwave/include/qtozwnodemodel_p.h +++ b/qt-openzwave/include/qtozwnodemodel_p.h @@ -28,7 +28,7 @@ #ifndef QTOZWNODEMODEL_P_H #define QTOZWNODEMODEL_P_H -#include "qt-openzwave_global.h" +#include "qt-openzwave/qtopenzwave.h" #include #include "qt-openzwave/qtozwnodemodel.h" diff --git a/qt-openzwave/include/qtozwnotification.h b/qt-openzwave/include/qtozwnotification.h index b17554f..4c37301 100644 --- a/qt-openzwave/include/qtozwnotification.h +++ b/qt-openzwave/include/qtozwnotification.h @@ -28,7 +28,7 @@ #ifndef QTOZWNOTIFICATION_H #define QTOZWNOTIFICATION_H -#include "qt-openzwave_global.h" +#include "qt-openzwave/qtopenzwave.h" #include #include "Notification.h" diff --git a/qt-openzwave/include/qtozwoptions_p.h b/qt-openzwave/include/qtozwoptions_p.h index ac8e369..f9eccda 100644 --- a/qt-openzwave/include/qtozwoptions_p.h +++ b/qt-openzwave/include/qtozwoptions_p.h @@ -28,7 +28,7 @@ #ifndef QTOZWOPTIONS_P_H #define QTOZWOPTIONS_P_H -#include "qt-openzwave_global.h" +#include "qt-openzwave/qtopenzwave.h" #include #include diff --git a/qt-openzwave/include/qtozwvalueidmodel_p.h b/qt-openzwave/include/qtozwvalueidmodel_p.h index cad3d82..d480cac 100644 --- a/qt-openzwave/include/qtozwvalueidmodel_p.h +++ b/qt-openzwave/include/qtozwvalueidmodel_p.h @@ -28,7 +28,7 @@ #ifndef QTOZWVALUEIDMODEL_P_H #define QTOZWVALUEIDMODEL_P_H -#include "qt-openzwave_global.h" +#include "qt-openzwave/qtopenzwave.h" #include #include "qt-openzwave/qtozwvalueidmodel.h" diff --git a/qt-openzwave/qt-openzwave.pro b/qt-openzwave/qt-openzwave.pro index 5fff3a0..c07bf3d 100644 --- a/qt-openzwave/qt-openzwave.pro +++ b/qt-openzwave/qt-openzwave.pro @@ -60,7 +60,7 @@ HEADERS += include/qt-openzwave/qtopenzwave.h \ include/qt-openzwave/qtozwoptions.h \ include/qtozwlog_p.h \ include/qtozwoptions_p.h \ - include/qt-openzwave_global.h \ \ + \ \ include/qtozw_logging.h \ include/qt-openzwave/qtozwassociationmodel.h \ include/qtozwassociationmodel_p.h \ @@ -88,7 +88,7 @@ unix { target.path = /usr/local/lib INSTALLS += target } -LIBS += -L../../open-zwave -lopenzwave +#LIBS += -L../../open-zwave -lopenzwave macx { QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/ diff --git a/qt-openzwave/source/qtopenzwave.cpp b/qt-openzwave/source/qtopenzwave.cpp index 93ee532..65b56d6 100644 --- a/qt-openzwave/source/qtopenzwave.cpp +++ b/qt-openzwave/source/qtopenzwave.cpp @@ -1,5 +1,7 @@ #include "qt-openzwave/qtopenzwave.h" +#include "qt-openzwave/qtozwmanager.h" #include "qt-openzwave/qtozw_pods.h" +#include "qt-openzwave/qtozwvalueidmodel.h" #include "qtozw_logging.h" diff --git a/qt-openzwave/source/qtozwnodemodel.cpp b/qt-openzwave/source/qtozwnodemodel.cpp index f432eca..71f1863 100644 --- a/qt-openzwave/source/qtozwnodemodel.cpp +++ b/qt-openzwave/source/qtozwnodemodel.cpp @@ -28,6 +28,7 @@ #include #include #include "qtozw_logging.h" +#include "qt-openzwave/qtozwmanager.h" #include "qt-openzwave/qtozwnodemodel.h" #include "qt-openzwave/qtopenzwave.h" diff --git a/qt-openzwavedatabase/qt-openzwavedatabase.pro b/qt-openzwavedatabase/qt-openzwavedatabase.pro index 490a61f..340e2cc 100644 --- a/qt-openzwavedatabase/qt-openzwavedatabase.pro +++ b/qt-openzwavedatabase/qt-openzwavedatabase.pro @@ -4,23 +4,26 @@ TEMPLATE = lib VERSION = 1.0.0 -CONFIG += silent file_copies +CONFIG += silent file_copies resources_big !versionAtLeast(QT_VERSION, 5.11.2):error("Use at least Qt version 5.11.2") ozwconfig.target=config/qrc_ozwconfig.cpp ozwconfig.commands=cp -R ../../open-zwave/config config/ && cd config && $$[QT_INSTALL_BINS]/rcc -project -o ozwconfig.qrc && $$[QT_INSTALL_BINS]/rcc --name="ozwconfig" --root="/config/" ozwconfig.qrc -o qrc_ozwconfig.cpp -QMAKE_EXTRA_TARGETS += ozwconfig -PRE_TARGETDEPS += config/qrc_ozwconfig.cpp -SOURCES += config/qrc_ozwconfig.cpp \ +!win32 { + QMAKE_EXTRA_TARGETS += ozwconfig + PRE_TARGETDEPS += config/qrc_ozwconfig.cpp + SOURCES += config/qrc_ozwconfig.cpp \ source/qt-openzwavedatabase.cpp -macx { - QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/ + macx { + QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/ + } + + + HEADERS += \ + include/qt-openzwave/qt-openzwavedatabase.h + + INCLUDEPATH += include/ } - -HEADERS += \ - include/qt-openzwave/qt-openzwavedatabase.h - -INCLUDEPATH += include/ diff --git a/qt-ozwdaemon/qt-ozwdaemon.pro b/qt-ozwdaemon/qt-ozwdaemon.pro index df81131..893dba0 100644 --- a/qt-ozwdaemon/qt-ozwdaemon.pro +++ b/qt-ozwdaemon/qt-ozwdaemon.pro @@ -4,7 +4,7 @@ QT += remoteobjects TARGET = ../ozwdaemon -CONFIG += c++11 console silent +CONFIG += c++11 console CONFIG -= app_bundle # The following define makes your compiler emit warnings if you use @@ -30,12 +30,20 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin HEADERS += \ qtozwdaemon.h -LIBS += -lresolv -L../qt-openzwave/ -lqt-openzwave +include(../qt-openzwave.pri) + INCLUDEPATH += ../qt-openzwave/include/ +unix { + LIBS += -lresolv -L../qt-openzwave/ -lqt-openzwave +} +win32 { + LIBS += -lDnsapi -L../qt-openzwave/$$BUILDTYPE/ -lqt-openzwave1 +} + macx { ICON = res/ozw_logo.icns QMAKE_POST_LINK=$$top_srcdir/updaterpath.sh $(TARGET) } -include(../qt-openzwave.pri) + diff --git a/qt-simpleclient/mainwindow.cpp b/qt-simpleclient/mainwindow.cpp index 03b0c6b..0841bc4 100644 --- a/qt-simpleclient/mainwindow.cpp +++ b/qt-simpleclient/mainwindow.cpp @@ -1,10 +1,12 @@ #include +#include +#include #include "mainwindow.h" #include "ui_mainwindow.h" #include "startup.h" #include "qtozw_itemdelegate.h" -#include + #define CONNECTSIGNALS(x) QObject::connect(this->m_qtozwmanager, &QTOZWManager::x, this, &MainWindow::x) diff --git a/qt-simpleclient/qt-simpleclient.pro b/qt-simpleclient/qt-simpleclient.pro index bf0c442..8d42cc1 100644 --- a/qt-simpleclient/qt-simpleclient.pro +++ b/qt-simpleclient/qt-simpleclient.pro @@ -33,7 +33,15 @@ HEADERS += \ RESOURCES += \ simpleclient.qrc -LIBS += -lresolv -L../qt-openzwave/ -lqt-openzwave +include(../qt-openzwave.pri) + +unix { + LIBS += -lresolv -L../qt-openzwave/ -lqt-openzwave +} +win32 { + LIBS += -lDnsapi -L../qt-openzwave/$$BUILDTYPE/ -lqt-openzwave1 +} + INCLUDEPATH += ../qt-openzwave/include/ macx { @@ -43,4 +51,3 @@ macx { QMAKE_BUNDLE_DATA += BUNDLE LIBOZW QMAKE_POST_LINK=$$top_srcdir/updaterpath.sh $(TARGET) } -include(../qt-openzwave.pri)