diff --git a/AdvancedDockingSystem/AdvancedDockingSystem.pro b/AdvancedDockingSystem/AdvancedDockingSystem.pro index f89c77b..59525f9 100644 --- a/AdvancedDockingSystem/AdvancedDockingSystem.pro +++ b/AdvancedDockingSystem/AdvancedDockingSystem.pro @@ -1,13 +1,19 @@ TARGET = AdvancedDockingSystem +#VERSION = 0.1.0 +#CONFIG += adsBuildShared QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TEMPLATE = lib -CONFIG += staticlib - -VERSION = 0.1.0 +adsBuildShared { + CONFIG += shared + DEFINES += ADS_EXPORT +} +!adsBuildShared { + CONFIG += staticlib +} INCLUDEPATH += $$PWD/src INCLUDEPATH += $$PWD/include diff --git a/AdvancedDockingSystem/include/ads/API.h b/AdvancedDockingSystem/include/ads/API.h index 00a6613..9fb91f2 100644 --- a/AdvancedDockingSystem/include/ads/API.h +++ b/AdvancedDockingSystem/include/ads/API.h @@ -7,6 +7,15 @@ #include class QSplitter; +// DLL Export API +#ifdef _WIN32 + #ifdef ADS_EXPORT + #define ADS_EXPORT_API __declspec(dllexport) + #else + #define ADS_EXPORT_API + #endif +#endif + // Use namespace // Disabled with Qt4! #ifdef ADS_NAMESPACE_ENABLED diff --git a/AdvancedDockingSystem/include/ads/ContainerWidget.h b/AdvancedDockingSystem/include/ads/ContainerWidget.h index 76787ea..d8e2262 100644 --- a/AdvancedDockingSystem/include/ads/ContainerWidget.h +++ b/AdvancedDockingSystem/include/ads/ContainerWidget.h @@ -23,7 +23,7 @@ class InternalContentData; * ContainerWidget is the main container to provide the docking * functionality. It manages mulitple Sections and all possible areas. */ -class ContainerWidget : public QFrame +class ADS_EXPORT_API ContainerWidget : public QFrame { Q_OBJECT Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) diff --git a/AdvancedDockingSystem/include/ads/SectionContent.h b/AdvancedDockingSystem/include/ads/SectionContent.h index 2419c77..05c7de4 100644 --- a/AdvancedDockingSystem/include/ads/SectionContent.h +++ b/AdvancedDockingSystem/include/ads/SectionContent.h @@ -12,7 +12,7 @@ ADS_NAMESPACE_BEGIN class ContainerWidget; -class SectionContent +class ADS_EXPORT_API SectionContent { friend class ContainerWidget; diff --git a/AdvancedDockingSystem/include/ads/SectionWidget.h b/AdvancedDockingSystem/include/ads/SectionWidget.h index 389562f..9e00255 100644 --- a/AdvancedDockingSystem/include/ads/SectionWidget.h +++ b/AdvancedDockingSystem/include/ads/SectionWidget.h @@ -20,7 +20,7 @@ class SectionContentWidget; // SectionWidget manages multiple instances of SectionContent. // It displays a title TAB, which is clickable and will switch to // the contents associated to the title when clicked. -class SectionWidget : public QFrame +class ADS_EXPORT_API SectionWidget : public QFrame { Q_OBJECT friend class ContainerWidget; diff --git a/AdvancedDockingSystemDemo/AdvancedDockingSystemDemo.pro b/AdvancedDockingSystemDemo/AdvancedDockingSystemDemo.pro index caffd0b..902f058 100644 --- a/AdvancedDockingSystemDemo/AdvancedDockingSystemDemo.pro +++ b/AdvancedDockingSystemDemo/AdvancedDockingSystemDemo.pro @@ -32,7 +32,7 @@ FORMS += \ src/mainwindow.ui -# Dependency: AdvancedDockingSystem +# Dependency: AdvancedDockingSystem (staticlib) win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../AdvancedDockingSystem/release/ -lAdvancedDockingSystem else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../AdvancedDockingSystem/debug/ -lAdvancedDockingSystem else:unix: LIBS += -L$$OUT_PWD/../AdvancedDockingSystem/ -lAdvancedDockingSystem @@ -45,3 +45,11 @@ else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../Adva else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../AdvancedDockingSystem/release/AdvancedDockingSystem.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../AdvancedDockingSystem/debug/AdvancedDockingSystem.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../AdvancedDockingSystem/libAdvancedDockingSystem.a + +# Dependency: AdvancedDockingSystem (shared) +#win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../AdvancedDockingSystem/release/ -lAdvancedDockingSystem +#else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../AdvancedDockingSystem/debug/ -lAdvancedDockingSystem +#else:unix: LIBS += -L$$OUT_PWD/../AdvancedDockingSystem/ -lAdvancedDockingSystem + +#INCLUDEPATH += $$PWD/../AdvancedDockingSystem/include +#DEPENDPATH += $$PWD/../AdvancedDockingSystem/include diff --git a/AdvancedDockingSystemDemo/src/main.cpp b/AdvancedDockingSystemDemo/src/main.cpp index f974662..c038141 100644 --- a/AdvancedDockingSystemDemo/src/main.cpp +++ b/AdvancedDockingSystemDemo/src/main.cpp @@ -59,4 +59,4 @@ int main(int argc, char *argv[]) // const int h = (deskRect.height() / 100) * heightPC; // widget->resize(w, h); // } -//} \ No newline at end of file +//}