Organize code for plugins.
This commit is contained in:
		
							parent
							
								
									97bf086a87
								
							
						
					
					
						commit
						d230662924
					
				@ -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(
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
 | 
			
		||||
@ -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()
 | 
			
		||||
@ -8,7 +8,7 @@
 | 
			
		||||
 | 
			
		||||
#include <QApplication>
 | 
			
		||||
 | 
			
		||||
#include "qtkmainwindow.h"
 | 
			
		||||
#include "designer-plugins/qtkmainwindow.h"
 | 
			
		||||
#include "qtkscene.h"
 | 
			
		||||
 | 
			
		||||
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 <QVBoxLayout>
 | 
			
		||||
 | 
			
		||||
#include "qtkwidget.h"
 | 
			
		||||
#include "designer-plugins/qtkwidget.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui
 | 
			
		||||
{
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
#include <QPlainTextEdit>
 | 
			
		||||
 | 
			
		||||
#include "debugconsole.h"
 | 
			
		||||
#include "qtkwidget.h"
 | 
			
		||||
#include "designer-plugins/qtkwidget.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui
 | 
			
		||||
{
 | 
			
		||||
@ -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"
 | 
			
		||||
@ -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
 | 
			
		||||
{
 | 
			
		||||
@ -13,10 +13,10 @@
 | 
			
		||||
#include <QDesignerCustomWidgetInterface>
 | 
			
		||||
#include <QDesignerExportWidget>
 | 
			
		||||
#include <QDockWidget>
 | 
			
		||||
 | 
			
		||||
#include <qtk/scene.h>
 | 
			
		||||
#include <QTreeWidgetItem>
 | 
			
		||||
 | 
			
		||||
#include "qtk/scene.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui
 | 
			
		||||
{
 | 
			
		||||
  class TreeView;
 | 
			
		||||
@ -11,7 +11,7 @@
 | 
			
		||||
#include <QtPlugin>
 | 
			
		||||
#include <utility>
 | 
			
		||||
 | 
			
		||||
#include <qtk/qtkapi.h>
 | 
			
		||||
#include "qtk/qtkapi.h"
 | 
			
		||||
 | 
			
		||||
#include "widgetplugin.h"
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,6 @@
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
#include <QImageReader>
 | 
			
		||||
 | 
			
		||||
#include "app/qtkmainwindow.h"
 | 
			
		||||
#include "texture.h"
 | 
			
		||||
 | 
			
		||||
using namespace Qtk;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user