Organize code for plugins.
This commit is contained in:
parent
97bf086a87
commit
d230662924
@ -36,62 +36,16 @@ install(
|
|||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION bin
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO: Separate plugins source code to plugins/ dir and add_subdir here
|
# The Qtk Application's GUI requires plugins to be built, but not installed.
|
||||||
|
# If both are disabled we can skip. If QTK_PLUGINS is set we'll install the
|
||||||
# Qtk Application
|
# plugins to Qt Designer for use in other projects.
|
||||||
if(QTK_GUI OR QTK_PLUGINS)
|
if(QTK_PLUGINS OR QTK_GUI)
|
||||||
add_subdirectory(app)
|
add_subdirectory(designer-plugins)
|
||||||
endif()
|
|
||||||
|
|
||||||
if(QTK_PLUGINS)
|
|
||||||
install(
|
|
||||||
TARGETS qtk_plugins qtk_library qtk_plugin_library
|
|
||||||
COMPONENT qtk_plugins
|
|
||||||
LIBRARY DESTINATION "${QTK_PLUGIN_INSTALL_DIR}"
|
|
||||||
ARCHIVE DESTINATION "${QTK_PLUGIN_INSTALL_DIR}"
|
|
||||||
RUNTIME DESTINATION "${QTK_PLUGIN_INSTALL_DIR}"
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Build Qtk Application only if QTK_GUI is set.
|
||||||
if(QTK_GUI)
|
if(QTK_GUI)
|
||||||
install(
|
add_subdirectory(app)
|
||||||
TARGETS qtk_gui
|
|
||||||
COMPONENT qtk_gui
|
|
||||||
BUNDLE DESTINATION .
|
|
||||||
LIBRARY DESTINATION lib
|
|
||||||
ARCHIVE DESTINATION lib
|
|
||||||
RUNTIME DESTINATION bin
|
|
||||||
)
|
|
||||||
|
|
||||||
qt_generate_deploy_app_script(
|
|
||||||
TARGET qtk_gui
|
|
||||||
OUTPUT_SCRIPT QTK_DEPLOY_SCRIPT
|
|
||||||
NO_UNSUPPORTED_PLATFORM_ERROR
|
|
||||||
)
|
|
||||||
install(SCRIPT ${QTK_DEPLOY_SCRIPT} COMPONENT qtk_gui)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(MSVC AND TARGET Qt6::qmake)
|
|
||||||
get_target_property(QT6_QMAKE_LOCATION Qt6::qmake IMPORTED_LOCATION)
|
|
||||||
execute_process(
|
|
||||||
COMMAND "${QT6_QMAKE_LOCATION}" -query QT_INSTALL_PREFIX
|
|
||||||
RESULT_VARIABLE return_code
|
|
||||||
OUTPUT_VARIABLE QT6_INSTALL_PREFIX
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
file(TO_NATIVE_PATH "${QT6_INSTALL_PREFIX}/bin" QT6_INSTALL_PREFIX)
|
|
||||||
|
|
||||||
set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk_gui.vcxproj.user")
|
|
||||||
file(WRITE ${VSUSER_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " <PropertyGroup>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " <LocalDebuggerEnvironment>Path=$(SolutionDir)\\lib\\$(Configuration);${QT6_INSTALL_PREFIX};$(Path)\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} " </PropertyGroup>\n")
|
|
||||||
file(APPEND ${VSUSER_FILE} "</Project>\n")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
write_basic_package_version_file(
|
write_basic_package_version_file(
|
||||||
|
@ -6,54 +6,10 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Qtk Widget Library
|
# Qtk Application
|
||||||
################################################################################
|
|
||||||
# Create a library of widgets used to build Qtk GUI
|
|
||||||
set(
|
|
||||||
QTK_PLUGIN_LIBRARY_SOURCES
|
|
||||||
qtkwidget.cpp
|
|
||||||
debugconsole.cpp debugconsole.ui
|
|
||||||
toolbox.cpp toolbox.ui
|
|
||||||
treeview.cpp treeview.ui
|
|
||||||
qtkmainwindow.cpp qtkmainwindow.h qtkmainwindow.ui
|
|
||||||
)
|
|
||||||
set(
|
|
||||||
QTK_PLUGIN_LIBRARY_HEADERS
|
|
||||||
qtkwidget.h
|
|
||||||
debugconsole.h
|
|
||||||
toolbox.h
|
|
||||||
treeview.h
|
|
||||||
)
|
|
||||||
qt_add_library(qtk_plugin_library STATIC EXCLUDE_FROM_ALL)
|
|
||||||
target_sources(
|
|
||||||
qtk_plugin_library PRIVATE
|
|
||||||
"${QTK_PLUGIN_LIBRARY_SOURCES}"
|
|
||||||
"${QTK_PLUGIN_LIBRARY_HEADERS}"
|
|
||||||
)
|
|
||||||
target_link_libraries(qtk_plugin_library PUBLIC Qt6::UiPlugin qtk_library)
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Qtk Widget Plugins
|
|
||||||
################################################################################
|
|
||||||
# Create a Qt Designer plugin for a collection of widgets from our library.
|
|
||||||
qt_add_plugin(qtk_plugins SHARED)
|
|
||||||
target_sources(
|
|
||||||
qtk_plugins PRIVATE
|
|
||||||
widgetplugincollection.cpp widgetplugincollection.h
|
|
||||||
widgetplugin.cpp widgetplugin.h
|
|
||||||
)
|
|
||||||
target_link_libraries(qtk_plugins PUBLIC qtk_plugin_library)
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Final Qtk Application
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
set(
|
set(QTK_GUI_SOURCES qtkscene.cpp qtkscene.h main.cpp)
|
||||||
QTK_GUI_SOURCES
|
|
||||||
qtkscene.cpp qtkscene.h
|
|
||||||
main.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
qt_add_executable(qtk_gui ${QTK_GUI_SOURCES})
|
qt_add_executable(qtk_gui ${QTK_GUI_SOURCES})
|
||||||
target_link_libraries(qtk_gui PRIVATE qtk_plugin_library)
|
target_link_libraries(qtk_gui PRIVATE qtk_plugin_library)
|
||||||
|
|
||||||
@ -72,3 +28,42 @@ elseif(APPLE)
|
|||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS qtk_gui
|
||||||
|
COMPONENT qtk_gui
|
||||||
|
BUNDLE DESTINATION .
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_generate_deploy_app_script(
|
||||||
|
TARGET qtk_gui
|
||||||
|
OUTPUT_SCRIPT QTK_DEPLOY_SCRIPT
|
||||||
|
NO_UNSUPPORTED_PLATFORM_ERROR
|
||||||
|
)
|
||||||
|
install(SCRIPT ${QTK_DEPLOY_SCRIPT} COMPONENT qtk_gui)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
if(MSVC AND TARGET Qt6::qmake)
|
||||||
|
get_target_property(QT6_QMAKE_LOCATION Qt6::qmake IMPORTED_LOCATION)
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${QT6_QMAKE_LOCATION}" -query QT_INSTALL_PREFIX
|
||||||
|
RESULT_VARIABLE return_code
|
||||||
|
OUTPUT_VARIABLE QT6_INSTALL_PREFIX
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
file(TO_NATIVE_PATH "${QT6_INSTALL_PREFIX}/bin" QT6_INSTALL_PREFIX)
|
||||||
|
|
||||||
|
set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk_gui.vcxproj.user")
|
||||||
|
file(WRITE ${VSUSER_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " <PropertyGroup>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " <LocalDebuggerEnvironment>Path=$(SolutionDir)\\lib\\$(Configuration);${QT6_INSTALL_PREFIX};$(Path)\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} " </PropertyGroup>\n")
|
||||||
|
file(APPEND ${VSUSER_FILE} "</Project>\n")
|
||||||
|
endif()
|
||||||
|
endif()
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
#include "qtkmainwindow.h"
|
#include "designer-plugins/qtkmainwindow.h"
|
||||||
#include "qtkscene.h"
|
#include "qtkscene.h"
|
||||||
|
|
||||||
int main(int argc, char * argv[])
|
int main(int argc, char * argv[])
|
||||||
|
57
src/designer-plugins/CMakeLists.txt
Normal file
57
src/designer-plugins/CMakeLists.txt
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
################################################################################
|
||||||
|
## Project for working with OpenGL and Qt6 widgets ##
|
||||||
|
## ##
|
||||||
|
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
||||||
|
## All Content (c) 2023 Shaun Reed, all rights reserved ##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Qtk Widget Library
|
||||||
|
################################################################################
|
||||||
|
# Create a library of widgets used to build Qtk GUI
|
||||||
|
set(
|
||||||
|
QTK_PLUGIN_LIBRARY_SOURCES
|
||||||
|
qtkwidget.cpp
|
||||||
|
debugconsole.cpp debugconsole.ui
|
||||||
|
toolbox.cpp toolbox.ui
|
||||||
|
treeview.cpp treeview.ui
|
||||||
|
qtkmainwindow.cpp qtkmainwindow.h qtkmainwindow.ui
|
||||||
|
)
|
||||||
|
set(
|
||||||
|
QTK_PLUGIN_LIBRARY_HEADERS
|
||||||
|
qtkwidget.h
|
||||||
|
debugconsole.h
|
||||||
|
toolbox.h
|
||||||
|
treeview.h
|
||||||
|
)
|
||||||
|
qt_add_library(qtk_plugin_library STATIC EXCLUDE_FROM_ALL)
|
||||||
|
target_sources(
|
||||||
|
qtk_plugin_library PRIVATE
|
||||||
|
"${QTK_PLUGIN_LIBRARY_SOURCES}"
|
||||||
|
"${QTK_PLUGIN_LIBRARY_HEADERS}"
|
||||||
|
)
|
||||||
|
target_link_libraries(qtk_plugin_library PUBLIC Qt6::UiPlugin qtk_library)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Qtk Widget Plugins
|
||||||
|
################################################################################
|
||||||
|
# Create a Qt Designer plugin for a collection of widgets from our library.
|
||||||
|
qt_add_plugin(qtk_plugins SHARED)
|
||||||
|
target_sources(
|
||||||
|
qtk_plugins PRIVATE
|
||||||
|
widgetplugincollection.cpp widgetplugincollection.h
|
||||||
|
widgetplugin.cpp widgetplugin.h
|
||||||
|
)
|
||||||
|
target_link_libraries(qtk_plugins PUBLIC qtk_plugin_library)
|
||||||
|
|
||||||
|
# Install the Qt Designer plugins only if QTK_PLUGINS is set.
|
||||||
|
# Otherwise, we just use them for building the Qtk desktop application.
|
||||||
|
if(QTK_PLUGINS)
|
||||||
|
install(
|
||||||
|
TARGETS qtk_plugins qtk_library qtk_plugin_library
|
||||||
|
COMPONENT qtk_plugins
|
||||||
|
LIBRARY DESTINATION "${QTK_PLUGIN_INSTALL_DIR}"
|
||||||
|
ARCHIVE DESTINATION "${QTK_PLUGIN_INSTALL_DIR}"
|
||||||
|
RUNTIME DESTINATION "${QTK_PLUGIN_INSTALL_DIR}"
|
||||||
|
)
|
||||||
|
endif()
|
@ -14,7 +14,7 @@
|
|||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
#include "qtkwidget.h"
|
#include "designer-plugins/qtkwidget.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
@ -15,7 +15,7 @@
|
|||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
|
|
||||||
#include "debugconsole.h"
|
#include "debugconsole.h"
|
||||||
#include "qtkwidget.h"
|
#include "designer-plugins/qtkwidget.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
@ -10,14 +10,9 @@
|
|||||||
#include <QMimeData>
|
#include <QMimeData>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
#include <qtk/input.h>
|
#include "qtk/input.h"
|
||||||
#include <qtk/scene.h>
|
#include "qtk/scene.h"
|
||||||
#include <qtk/shape.h>
|
#include "qtk/shape.h"
|
||||||
#include <QVBoxLayout>
|
|
||||||
|
|
||||||
#include <qtk/input.h>
|
|
||||||
#include <qtk/scene.h>
|
|
||||||
#include <qtk/shape.h>
|
|
||||||
|
|
||||||
#include "debugconsole.h"
|
#include "debugconsole.h"
|
||||||
#include "qtkmainwindow.h"
|
#include "qtkmainwindow.h"
|
@ -17,8 +17,8 @@
|
|||||||
#include <QOpenGLWidget>
|
#include <QOpenGLWidget>
|
||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
|
|
||||||
#include <qtk/qtkapi.h>
|
#include "qtk/qtkapi.h"
|
||||||
#include <qtk/scene.h>
|
#include "qtk/scene.h"
|
||||||
|
|
||||||
namespace Qtk
|
namespace Qtk
|
||||||
{
|
{
|
@ -13,10 +13,10 @@
|
|||||||
#include <QDesignerCustomWidgetInterface>
|
#include <QDesignerCustomWidgetInterface>
|
||||||
#include <QDesignerExportWidget>
|
#include <QDesignerExportWidget>
|
||||||
#include <QDockWidget>
|
#include <QDockWidget>
|
||||||
|
|
||||||
#include <qtk/scene.h>
|
|
||||||
#include <QTreeWidgetItem>
|
#include <QTreeWidgetItem>
|
||||||
|
|
||||||
|
#include "qtk/scene.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
class TreeView;
|
class TreeView;
|
@ -11,7 +11,7 @@
|
|||||||
#include <QtPlugin>
|
#include <QtPlugin>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include <qtk/qtkapi.h>
|
#include "qtk/qtkapi.h"
|
||||||
|
|
||||||
#include "widgetplugin.h"
|
#include "widgetplugin.h"
|
||||||
|
|
@ -9,7 +9,6 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QImageReader>
|
#include <QImageReader>
|
||||||
|
|
||||||
#include "app/qtkmainwindow.h"
|
|
||||||
#include "texture.h"
|
#include "texture.h"
|
||||||
|
|
||||||
using namespace Qtk;
|
using namespace Qtk;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user