diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,10 @@ find_package(Qt5 REQUIRED COMPONENTS Core SerialPort + Charts + Widgets ) + include(ECMPoQmTools) ecm_setup_version(${PROJECT_VERSION} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,5 @@ add_subdirectory(plugins) +add_subdirectory(widgets) configure_file( atcore_default_folders.h.in diff --git a/src/widgets/AtCoreWidgetsConfig.cmake.in b/src/widgets/AtCoreWidgetsConfig.cmake.in new file mode 100644 --- /dev/null +++ b/src/widgets/AtCoreWidgetsConfig.cmake.in @@ -0,0 +1,7 @@ +@PACKAGE_INIT@ +include(CMakeFindDependencyMacro) + +find_dependency(Qt5Widgets "@REQUIRED_QT_VERSION@") +find_dependency(Qt5Charts "@REQUIRED_QT_VERSION@") + +include("${CMAKE_CURRENT_LIST_DIR}/AtCoreWidgetsTargets.cmake") diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/src/widgets/CMakeLists.txt @@ -0,0 +1,83 @@ +set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/AtCore") +configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/AtCoreWidgetsConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/AtCoreWidgetsConfig.cmake" + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} +) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/AtCoreWidgetsConfig.cmake" + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + COMPONENT Devel +) + +install(EXPORT + AtCoreWidgetsTargets + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + FILE AtCoreWidgetsTargets.cmake + NAMESPACE AtCore:: + COMPONENT Devel +) + +set(widgetsLIB_SRCS + about.cpp + axiscontrol.cpp + commandwidget.cpp + logwidget.cpp + movementwidget.cpp + plotwidget.cpp + printwidget.cpp + sdwidget.cpp + statuswidget.cpp + temperaturewidget.cpp + ) + +add_library(AtCoreWidgets ${widgetsLIB_SRCS}) + +if (APPLE) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++11") +endif() + +target_link_libraries(AtCoreWidgets AtCore::AtCore Qt5::Core Qt5::Widgets Qt5::Charts) + +generate_export_header(AtCoreWidgets BASE_NAME atcorewidgets) +add_library(AtCore::AtCoreWidgets ALIAS AtCoreWidgets) + +target_include_directories(AtCoreWidgets INTERFACE "$") + +set_target_properties(AtCoreWidgets PROPERTIES VERSION ${ATCORE_VERSION_STRING} + SOVERSION ${ATCORE_SOVERSION} + EXPORT_NAME AtCoreWidgets +) + +ecm_generate_headers(ATCOREWIDGETS_CamelCase_HEADERS + HEADER_NAMES + About + AxisControl + CommandWidget + LogWidget + MovementWidget + PlotWidget + PrintWidget + SdWidget + StatusWidget + TemperatureWidget + REQUIRED_HEADERS ATCOREWIDGETS_HEADERS +) + +ecm_create_qm_loader(widgetsLib_SRCS atcore_qt) + +install(FILES + ${ATCOREWIDGETS_CamelCase_HEADERS} + ${ATCOREWIDGETS_HEADERS} + DESTINATION ${KDE_INSTALL_INCLUDEDIR}/AtCore +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/atcorewidgets_export.h + DESTINATION ${KDE_INSTALL_INCLUDEDIR}/AtCore COMPONENT Devel +) + +install(TARGETS AtCoreWidgets EXPORT AtCoreWidgetsTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) + +include(ECMGeneratePriFile) +ecm_generate_pri_file(BASE_NAME AtCoreWidgets LIB_NAME AtCoreWidgets DEPS "Qt5Core Qt5Widgets Qt5Charts" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/AtCore) +install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR}) diff --git a/testclient/widgets/about.h b/src/widgets/about.h rename from testclient/widgets/about.h rename to src/widgets/about.h --- a/testclient/widgets/about.h +++ b/src/widgets/about.h @@ -23,7 +23,9 @@ #include -class About : public QDialog +#include "atcorewidgets_export.h" + +class ATCOREWIDGETS_EXPORT About : public QDialog { Q_OBJECT public: diff --git a/testclient/widgets/about.cpp b/src/widgets/about.cpp rename from testclient/widgets/about.cpp rename to src/widgets/about.cpp diff --git a/testclient/widgets/axiscontrol.h b/src/widgets/axiscontrol.h rename from testclient/widgets/axiscontrol.h rename to src/widgets/axiscontrol.h --- a/testclient/widgets/axiscontrol.h +++ b/src/widgets/axiscontrol.h @@ -22,14 +22,15 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of PrinterHotendPositionVisualController and * connect the clicked signal, it will give you the axis and value * that was clicked. */ -class PieButton : public QObject, public QGraphicsEllipseItem +class ATCOREWIDGETS_EXPORT PieButton : public QObject, public QGraphicsEllipseItem { Q_OBJECT public: @@ -47,7 +48,7 @@ QPalette _palette; }; -class RectButton : public QObject, public QGraphicsRectItem +class ATCOREWIDGETS_EXPORT RectButton : public QObject, public QGraphicsRectItem { Q_OBJECT @@ -66,7 +67,7 @@ QPalette _palette; }; -class AxisControl : public QGraphicsView +class ATCOREWIDGETS_EXPORT AxisControl : public QGraphicsView { Q_OBJECT diff --git a/testclient/widgets/axiscontrol.cpp b/src/widgets/axiscontrol.cpp rename from testclient/widgets/axiscontrol.cpp rename to src/widgets/axiscontrol.cpp diff --git a/testclient/widgets/commandwidget.h b/src/widgets/commandwidget.h rename from testclient/widgets/commandwidget.h rename to src/widgets/commandwidget.h --- a/testclient/widgets/commandwidget.h +++ b/src/widgets/commandwidget.h @@ -20,12 +20,13 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of the command widget. */ -class CommandWidget : public QWidget +class ATCOREWIDGETS_EXPORT CommandWidget : public QWidget { Q_OBJECT public: diff --git a/testclient/widgets/commandwidget.cpp b/src/widgets/commandwidget.cpp rename from testclient/widgets/commandwidget.cpp rename to src/widgets/commandwidget.cpp diff --git a/testclient/widgets/logwidget.h b/src/widgets/logwidget.h rename from testclient/widgets/logwidget.h rename to src/widgets/logwidget.h --- a/testclient/widgets/logwidget.h +++ b/src/widgets/logwidget.h @@ -21,12 +21,13 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of the log widget. */ -class LogWidget : public QWidget +class ATCOREWIDGETS_EXPORT LogWidget : public QWidget { Q_OBJECT public: diff --git a/testclient/widgets/logwidget.cpp b/src/widgets/logwidget.cpp rename from testclient/widgets/logwidget.cpp rename to src/widgets/logwidget.cpp diff --git a/testclient/widgets/movementwidget.h b/src/widgets/movementwidget.h rename from testclient/widgets/movementwidget.h rename to src/widgets/movementwidget.h --- a/testclient/widgets/movementwidget.h +++ b/src/widgets/movementwidget.h @@ -21,12 +21,13 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of the movement widget. */ -class MovementWidget : public QWidget +class ATCOREWIDGETS_EXPORT MovementWidget : public QWidget { Q_OBJECT public: diff --git a/testclient/widgets/movementwidget.cpp b/src/widgets/movementwidget.cpp rename from testclient/widgets/movementwidget.cpp rename to src/widgets/movementwidget.cpp diff --git a/testclient/widgets/plotwidget.h b/src/widgets/plotwidget.h rename from testclient/widgets/plotwidget.h rename to src/widgets/plotwidget.h --- a/testclient/widgets/plotwidget.h +++ b/src/widgets/plotwidget.h @@ -25,7 +25,9 @@ #include #include -class PlotWidget : public QWidget +#include "atcorewidgets_export.h" + +class ATCOREWIDGETS_EXPORT PlotWidget : public QWidget { Q_OBJECT diff --git a/testclient/widgets/plotwidget.cpp b/src/widgets/plotwidget.cpp rename from testclient/widgets/plotwidget.cpp rename to src/widgets/plotwidget.cpp diff --git a/testclient/widgets/printwidget.h b/src/widgets/printwidget.h rename from testclient/widgets/printwidget.h rename to src/widgets/printwidget.h --- a/testclient/widgets/printwidget.h +++ b/src/widgets/printwidget.h @@ -22,12 +22,13 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of the print widget. */ -class PrintWidget : public QWidget +class ATCOREWIDGETS_EXPORT PrintWidget : public QWidget { Q_OBJECT public: diff --git a/testclient/widgets/printwidget.cpp b/src/widgets/printwidget.cpp rename from testclient/widgets/printwidget.cpp rename to src/widgets/printwidget.cpp diff --git a/testclient/widgets/sdwidget.h b/src/widgets/sdwidget.h rename from testclient/widgets/sdwidget.h rename to src/widgets/sdwidget.h --- a/testclient/widgets/sdwidget.h +++ b/src/widgets/sdwidget.h @@ -20,12 +20,13 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of the sd widget. */ -class SdWidget : public QWidget +class ATCOREWIDGETS_EXPORT SdWidget : public QWidget { Q_OBJECT public: diff --git a/testclient/widgets/sdwidget.cpp b/src/widgets/sdwidget.cpp rename from testclient/widgets/sdwidget.cpp rename to src/widgets/sdwidget.cpp diff --git a/testclient/widgets/statuswidget.h b/src/widgets/statuswidget.h rename from testclient/widgets/statuswidget.h rename to src/widgets/statuswidget.h --- a/testclient/widgets/statuswidget.h +++ b/src/widgets/statuswidget.h @@ -21,12 +21,13 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of the status widget. */ -class StatusWidget : public QWidget +class ATCOREWIDGETS_EXPORT StatusWidget : public QWidget { Q_OBJECT public: diff --git a/testclient/widgets/statuswidget.cpp b/src/widgets/statuswidget.cpp rename from testclient/widgets/statuswidget.cpp rename to src/widgets/statuswidget.cpp diff --git a/testclient/widgets/temperaturewidget.h b/src/widgets/temperaturewidget.h rename from testclient/widgets/temperaturewidget.h rename to src/widgets/temperaturewidget.h --- a/testclient/widgets/temperaturewidget.h +++ b/src/widgets/temperaturewidget.h @@ -22,12 +22,13 @@ #include #include +#include "atcorewidgets_export.h" /* Usage: * * Create a instance of the temperature widget. */ -class TemperatureWidget : public QWidget +class ATCOREWIDGETS_EXPORT TemperatureWidget : public QWidget { Q_OBJECT public: diff --git a/testclient/widgets/temperaturewidget.cpp b/src/widgets/temperaturewidget.cpp rename from testclient/widgets/temperaturewidget.cpp rename to src/widgets/temperaturewidget.cpp diff --git a/testclient/CMakeLists.txt b/testclient/CMakeLists.txt --- a/testclient/CMakeLists.txt +++ b/testclient/CMakeLists.txt @@ -2,13 +2,7 @@ set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -find_package(Qt5 REQUIRED COMPONENTS - Charts - Widgets -) - include_directories(../src) -add_subdirectory(widgets) include_directories(${CMAKE_CURRENT_BINARY_DIR}) set(AtCoreTestClient_SRCS @@ -46,7 +40,4 @@ install(TARGETS atcore-gui BUNDLE DESTINATION bin) endif() -target_link_libraries(atcore-gui AtCoreTestWidgets AtCore::AtCore Qt5::Widgets Qt5::Charts) - - - +target_link_libraries(atcore-gui AtCore::AtCoreWidgets AtCore::AtCore Qt5::Widgets Qt5::Charts) diff --git a/testclient/mainwindow.h b/testclient/mainwindow.h --- a/testclient/mainwindow.h +++ b/testclient/mainwindow.h @@ -26,14 +26,14 @@ #include #include "atcore.h" -#include "widgets/commandwidget.h" -#include "widgets/logwidget.h" -#include "widgets/movementwidget.h" -#include "widgets/plotwidget.h" -#include "widgets/printwidget.h" -#include "widgets/sdwidget.h" -#include "widgets/statuswidget.h" -#include "widgets/temperaturewidget.h" +#include "commandwidget.h" +#include "logwidget.h" +#include "movementwidget.h" +#include "plotwidget.h" +#include "printwidget.h" +#include "sdwidget.h" +#include "statuswidget.h" +#include "temperaturewidget.h" class SerialLayer; diff --git a/testclient/mainwindow.cpp b/testclient/mainwindow.cpp --- a/testclient/mainwindow.cpp +++ b/testclient/mainwindow.cpp @@ -29,7 +29,7 @@ #include "mainwindow.h" #include "seriallayer.h" #include "gcodecommands.h" -#include "widgets/about.h" +#include "about.h" Q_LOGGING_CATEGORY(TESTCLIENT_MAINWINDOW, "org.kde.atelier.core") diff --git a/testclient/widgets/CMakeLists.txt b/testclient/widgets/CMakeLists.txt deleted file mode 100644 --- a/testclient/widgets/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -set(widgets_SRCS - about.cpp - axiscontrol.cpp - commandwidget.cpp - logwidget.cpp - movementwidget.cpp - plotwidget.cpp - printwidget.cpp - sdwidget.cpp - statuswidget.cpp - temperaturewidget.cpp - ) - -add_library(AtCoreTestWidgets STATIC ${widgets_SRCS}) -if (APPLE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++11") -endif() -target_link_libraries(AtCoreTestWidgets Qt5::Core Qt5::Widgets Qt5::Charts)