Compare commits

...

2 Commits

Author SHA1 Message Date
d230662924 Organize code for plugins. 2025-03-15 10:14:16 -04:00
97bf086a87 Cmake strings. 2025-03-15 09:10:10 -04:00
23 changed files with 125 additions and 125 deletions

View File

@ -36,62 +36,16 @@ install(
RUNTIME DESTINATION bin
)
# TODO: Separate plugins source code to plugins/ dir and add_subdir here
# Qtk Application
if(QTK_GUI OR QTK_PLUGINS)
add_subdirectory(app)
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}"
)
# 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
# plugins to Qt Designer for use in other projects.
if(QTK_PLUGINS OR QTK_GUI)
add_subdirectory(designer-plugins)
endif()
# Build Qtk Application only if QTK_GUI is set.
if(QTK_GUI)
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()
add_subdirectory(app)
endif()
write_basic_package_version_file(
@ -161,31 +115,31 @@ elseif(APPLE)
# Set additional options for the OSX bundle.
set(CPACK_BUNDLE_NAME ${PROJECT_NAME})
set(CPACK_BUNDLE_PLIST $<TARGET_BUNDLE_CONTENT_DIR:qtk_gui>/Info.plist)
set(CPACK_BUNDLE_ICON ${QTK_OSX_ICONS})
set(CPACK_BUNDLE_ICON "${QTK_OSX_ICONS}")
else(UNIX)
# Linux
# Install icons for qtk.
install(FILES ${QTK_RESOURCES}/icons/linux/kilroy-16.png
install(FILES "${QTK_RESOURCES}/icons/linux/kilroy-16.png"
DESTINATION /usr/share/icons/hicolor/16x16/apps
RENAME qtk.png)
install(FILES ${QTK_RESOURCES}/icons/linux/kilroy-32.png
install(FILES "${QTK_RESOURCES}/icons/linux/kilroy-32.png"
DESTINATION /usr/share/icons/hicolor/32x32/apps
RENAME qtk.png)
install(FILES ${QTK_RESOURCES}/icons/linux/kilroy-48.png
install(FILES "${QTK_RESOURCES}/icons/linux/kilroy-48.png"
DESTINATION /usr/share/icons/hicolor/48x48/apps
RENAME qtk.png)
install(FILES ${QTK_RESOURCES}/icons/linux/kilroy-64.png
install(FILES "${QTK_RESOURCES}/icons/linux/kilroy-64.png"
DESTINATION /usr/share/icons/hicolor/64x64/apps
RENAME qtk.png)
install(FILES ${QTK_RESOURCES}/icons/linux/kilroy-128.png
install(FILES "${QTK_RESOURCES}/icons/linux/kilroy-128.png"
DESTINATION /usr/share/icons/hicolor/128x128/apps
RENAME qtk.png)
install(FILES ${QTK_RESOURCES}/icons/linux/kilroy-256.png
install(FILES "${QTK_RESOURCES}/icons/linux/kilroy-256.png"
DESTINATION /usr/share/icons/hicolor/256x256/apps
RENAME qtk.png)
# Install the desktop file for qtk.
install(FILES ${QTK_RESOURCES}/qtk.desktop
install(FILES "${QTK_RESOURCES}/qtk.desktop"
DESTINATION /usr/share/applications)
# Set additional options for the debian APT package.

View File

@ -6,54 +6,10 @@
################################################################################
################################################################################
# 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)
################################################################################
# Final Qtk Application
# Qtk Application
################################################################################
set(
QTK_GUI_SOURCES
qtkscene.cpp qtkscene.h
main.cpp
)
set(QTK_GUI_SOURCES qtkscene.cpp qtkscene.h main.cpp)
qt_add_executable(qtk_gui ${QTK_GUI_SOURCES})
target_link_libraries(qtk_gui PRIVATE qtk_plugin_library)
@ -64,7 +20,7 @@ elseif(APPLE)
qtk_gui PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_BUNDLE_NAME Qtk
MACOSX_BUNDLE_ICON_FILE ${QTK_OSX_ICONS}
MACOSX_BUNDLE_ICON_FILE "${QTK_OSX_ICONS}"
MACOSX_BUNDLE_GUI_IDENTIFIER ${CMAKE_PROJECT_NAME}
MACOSX_BUNDLE_INFO_STRING ${CMAKE_PROJECT_DESCRIPTION}
MACOSX_BUNDLE_COPYRIGHT ${QTK_COPYRIGHT}
@ -72,3 +28,42 @@ elseif(APPLE)
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
)
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()

View File

@ -8,7 +8,7 @@
#include <QApplication>
#include "qtkmainwindow.h"
#include "designer-plugins/qtkmainwindow.h"
#include "qtkscene.h"
int main(int argc, char * argv[])

View 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()

View File

@ -14,7 +14,7 @@
#include <QPlainTextEdit>
#include <QVBoxLayout>
#include "qtkwidget.h"
#include "designer-plugins/qtkwidget.h"
namespace Ui
{

View File

@ -15,7 +15,7 @@
#include <QPlainTextEdit>
#include "debugconsole.h"
#include "qtkwidget.h"
#include "designer-plugins/qtkwidget.h"
namespace Ui
{

View File

@ -10,14 +10,9 @@
#include <QMimeData>
#include <QVBoxLayout>
#include <qtk/input.h>
#include <qtk/scene.h>
#include <qtk/shape.h>
#include <QVBoxLayout>
#include <qtk/input.h>
#include <qtk/scene.h>
#include <qtk/shape.h>
#include "qtk/input.h"
#include "qtk/scene.h"
#include "qtk/shape.h"
#include "debugconsole.h"
#include "qtkmainwindow.h"

View File

@ -17,8 +17,8 @@
#include <QOpenGLWidget>
#include <QPlainTextEdit>
#include <qtk/qtkapi.h>
#include <qtk/scene.h>
#include "qtk/qtkapi.h"
#include "qtk/scene.h"
namespace Qtk
{

View File

@ -13,10 +13,10 @@
#include <QDesignerCustomWidgetInterface>
#include <QDesignerExportWidget>
#include <QDockWidget>
#include <qtk/scene.h>
#include <QTreeWidgetItem>
#include "qtk/scene.h"
namespace Ui
{
class TreeView;

View File

@ -11,7 +11,7 @@
#include <QtPlugin>
#include <utility>
#include <qtk/qtkapi.h>
#include "qtk/qtkapi.h"
#include "widgetplugin.h"

View File

@ -9,7 +9,6 @@
#include <QDebug>
#include <QImageReader>
#include "app/qtkmainwindow.h"
#include "texture.h"
using namespace Qtk;