commit 3723e99f643040839d1f345d0be7a4a82d64305e parent 15ceccf59ed158c7c3df9829c71d739d07f27452 Author: dsp56300 <dsp56300@users.noreply.github.com> Date: Wed, 16 Mar 2022 20:37:22 +0100 move generic UI code into an own static library Diffstat:
26 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -28,6 +28,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS YES) if(${PROJECT_NAME}_BUILD_JUCEPLUGIN) set(JUCE_ENABLE_MODULE_SOURCE_GROUPS ON CACHE BOOL "" FORCE) add_subdirectory(source/JUCE) + add_subdirectory(source/juceUiLib) add_subdirectory(source/jucePlugin) endif() diff --git a/source/jucePlugin/CMakeLists.txt b/source/jucePlugin/CMakeLists.txt @@ -88,22 +88,6 @@ set(SOURCES_UI3 ui3/VirusEditor.h ) -set(SOURCES_GENERICUI - genericUI/editor.cpp genericUI/editor.h - genericUI/editorInterface.h - genericUI/image.cpp genericUI/image.h - genericUI/rotaryStyle.cpp genericUI/rotaryStyle.h - genericUI/comboboxStyle.cpp genericUI/comboboxStyle.h - genericUI/buttonStyle.cpp genericUI/buttonStyle.h - genericUI/labelStyle.cpp genericUI/labelStyle.h - genericUI/textbuttonStyle.cpp genericUI/textbuttonStyle.h - genericUI/hyperlinkbuttonStyle.cpp genericUI/hyperlinkbuttonStyle.h - genericUI/uiObject.cpp genericUI/uiObject.h - genericUI/uiObjectStyle.cpp genericUI/uiObjectStyle.h - - genericUI/assets/VirusC.json -) - # https://forum.juce.com/t/help-needed-using-binarydata-with-cmake-juce-6/40486 # "This might be because the BinaryData files are generated during the build, so the IDE may not be able to find them until the build has been run once (and even then, some IDEs might need a bit of a nudge to re-index the binary directory…)" SET(ASSETS @@ -185,13 +169,12 @@ macro(createJucePlugin targetName productName isSynth plugin4CC binaryDataProjec PRODUCT_NAME ${productName} # The name of the final executable, which can differ from the target name ) - target_sources(${targetName} PRIVATE ${SOURCES} ${SOURCES_UI} ${SOURCES_UI2} ${SOURCES_UI3} ${SOURCES_GENERICUI}) + target_sources(${targetName} PRIVATE ${SOURCES} ${SOURCES_UI} ${SOURCES_UI2} ${SOURCES_UI3}) source_group("source" FILES ${SOURCES}) source_group("source\\ui" FILES ${SOURCES_UI}) source_group("source\\ui2" FILES ${SOURCES_UI2}) source_group("source\\ui3" FILES ${SOURCES_UI3}) - source_group("source\\genericUI" FILES ${SOURCES_GENERICUI}) target_compile_definitions(${targetName} PUBLIC @@ -205,6 +188,7 @@ macro(createJucePlugin targetName productName isSynth plugin4CC binaryDataProjec target_link_libraries(${targetName} PRIVATE ${binaryDataProject} + juceUiLib juce::juce_audio_utils juce::juce_cryptography PUBLIC diff --git a/source/jucePlugin/PluginEditor.cpp b/source/jucePlugin/PluginEditor.cpp @@ -2,7 +2,6 @@ #include "PluginEditor.h" #include "VirusController.h" -#include "genericUI/editor.h" #include "ui/VirusEditor.h" #include "ui2/VirusEditor.h" diff --git a/source/jucePlugin/ui3/VirusEditor.h b/source/jucePlugin/ui3/VirusEditor.h @@ -1,6 +1,6 @@ #pragma once -#include "../genericUI/editor.h" +#include "../../juceUiLib/editor.h" #include "Parts.h" #include "Tabs.h" diff --git a/source/juceUiLib/CMakeLists.txt b/source/juceUiLib/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.15) +project(juceUiLib VERSION ${CMAKE_PROJECT_VERSION}) + +set(SOURCES + editor.cpp editor.h + editorInterface.h + image.cpp image.h + rotaryStyle.cpp rotaryStyle.h + comboboxStyle.cpp comboboxStyle.h + buttonStyle.cpp buttonStyle.h + labelStyle.cpp labelStyle.h + textbuttonStyle.cpp textbuttonStyle.h + hyperlinkbuttonStyle.cpp hyperlinkbuttonStyle.h + uiObject.cpp uiObject.h + uiObjectStyle.cpp uiObjectStyle.h +) + +add_library(juceUiLib STATIC) + +target_sources(juceUiLib PRIVATE ${SOURCES}) +source_group("source" FILES ${SOURCES}) + +target_include_directories(juceUiLib PUBLIC ../JUCE/modules) +target_compile_definitions(juceUiLib PRIVATE JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1) diff --git a/source/jucePlugin/genericUI/buttonStyle.cpp b/source/juceUiLib/buttonStyle.cpp diff --git a/source/jucePlugin/genericUI/buttonStyle.h b/source/juceUiLib/buttonStyle.h diff --git a/source/jucePlugin/genericUI/comboboxStyle.cpp b/source/juceUiLib/comboboxStyle.cpp diff --git a/source/jucePlugin/genericUI/comboboxStyle.h b/source/juceUiLib/comboboxStyle.h diff --git a/source/jucePlugin/genericUI/editor.cpp b/source/juceUiLib/editor.cpp diff --git a/source/jucePlugin/genericUI/editor.h b/source/juceUiLib/editor.h diff --git a/source/jucePlugin/genericUI/editorInterface.h b/source/juceUiLib/editorInterface.h diff --git a/source/jucePlugin/genericUI/hyperlinkbuttonStyle.cpp b/source/juceUiLib/hyperlinkbuttonStyle.cpp diff --git a/source/jucePlugin/genericUI/hyperlinkbuttonStyle.h b/source/juceUiLib/hyperlinkbuttonStyle.h diff --git a/source/jucePlugin/genericUI/image.cpp b/source/juceUiLib/image.cpp diff --git a/source/jucePlugin/genericUI/image.h b/source/juceUiLib/image.h diff --git a/source/jucePlugin/genericUI/labelStyle.cpp b/source/juceUiLib/labelStyle.cpp diff --git a/source/jucePlugin/genericUI/labelStyle.h b/source/juceUiLib/labelStyle.h diff --git a/source/jucePlugin/genericUI/rotaryStyle.cpp b/source/juceUiLib/rotaryStyle.cpp diff --git a/source/jucePlugin/genericUI/rotaryStyle.h b/source/juceUiLib/rotaryStyle.h diff --git a/source/jucePlugin/genericUI/textbuttonStyle.cpp b/source/juceUiLib/textbuttonStyle.cpp diff --git a/source/jucePlugin/genericUI/textbuttonStyle.h b/source/juceUiLib/textbuttonStyle.h diff --git a/source/jucePlugin/genericUI/uiObject.cpp b/source/juceUiLib/uiObject.cpp diff --git a/source/jucePlugin/genericUI/uiObject.h b/source/juceUiLib/uiObject.h diff --git a/source/jucePlugin/genericUI/uiObjectStyle.cpp b/source/juceUiLib/uiObjectStyle.cpp diff --git a/source/jucePlugin/genericUI/uiObjectStyle.h b/source/juceUiLib/uiObjectStyle.h