mirror of
https://codeberg.org/armin/trommelkiste.git
synced 2026-09-01 04:10:46 +02:00
init
This commit is contained in:
commit
8d5ffc6b56
168 changed files with 1436 additions and 0 deletions
72
CMakeLists.txt
Normal file
72
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
cmake_minimum_required(VERSION 3.22)
|
||||
project(Trommelkiste VERSION 1.0.0 LANGUAGES C CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
add_subdirectory(JUCE)
|
||||
|
||||
juce_add_plugin(Trommelkiste
|
||||
PRODUCT_NAME "Trommelkiste"
|
||||
COMPANY_NAME "Trommelkiste"
|
||||
PLUGIN_MANUFACTURER_CODE D909
|
||||
PLUGIN_CODE Ds90
|
||||
FORMATS VST3 Standalone AU
|
||||
IS_SYNTH TRUE
|
||||
NEEDS_MIDI_INPUT TRUE
|
||||
IS_MIDI_EFFECT FALSE
|
||||
EDITOR_WANTS_KEYBOARD_FOCUS FALSE
|
||||
COPY_PLUGIN_AFTER_BUILD TRUE
|
||||
)
|
||||
|
||||
target_sources(Trommelkiste PRIVATE
|
||||
Source/PluginProcessor.cpp
|
||||
Source/PluginEditor.cpp
|
||||
)
|
||||
|
||||
# Embed all WAV samples into the binary
|
||||
file(GLOB SAMPLE_WAVS "Samples/*.WAV")
|
||||
juce_add_binary_data(TrommelkisteBinaryData
|
||||
HEADER_NAME "BinaryData.h"
|
||||
NAMESPACE "BinaryData"
|
||||
SOURCES ${SAMPLE_WAVS}
|
||||
)
|
||||
|
||||
# Generate sample manifest mapping names -> binary data pointers
|
||||
set(_manifest "// Auto-generated - do not edit\n#pragma once\n")
|
||||
set(_manifest "${_manifest}struct EmbeddedSample { const char* name; const char* data; int size; };\n")
|
||||
set(_manifest "${_manifest}static const EmbeddedSample embeddedSamples[] = {\n")
|
||||
foreach(_f ${SAMPLE_WAVS})
|
||||
get_filename_component(_we ${_f} NAME_WE)
|
||||
string(REGEX REPLACE "[^A-Za-z0-9]" "_" _var ${_we})
|
||||
set(_manifest "${_manifest} { \"${_we}\", BinaryData::${_var}_WAV, BinaryData::${_var}_WAVSize },\n")
|
||||
endforeach()
|
||||
set(_manifest "${_manifest}};\n")
|
||||
set(_manifest "${_manifest}static const int numEmbeddedSamples = sizeof(embeddedSamples) / sizeof(embeddedSamples[0]);\n")
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/SampleLibrary.h" "${_manifest}")
|
||||
|
||||
target_include_directories(TrommelkisteBinaryData PUBLIC "${CMAKE_BINARY_DIR}")
|
||||
|
||||
target_compile_definitions(Trommelkiste PRIVATE
|
||||
JUCE_WEB_BROWSER=0
|
||||
JUCE_USE_CURL=0
|
||||
JUCE_VST3_CAN_REPLACE_VST2=0
|
||||
JUCE_DISPLAY_SPLASH_SCREEN=0
|
||||
)
|
||||
|
||||
target_link_libraries(Trommelkiste
|
||||
PRIVATE
|
||||
TrommelkisteBinaryData
|
||||
juce::juce_audio_basics
|
||||
juce::juce_audio_devices
|
||||
juce::juce_audio_formats
|
||||
juce::juce_audio_processors
|
||||
juce::juce_audio_utils
|
||||
juce::juce_core
|
||||
juce::juce_data_structures
|
||||
juce::juce_events
|
||||
juce::juce_graphics
|
||||
juce::juce_gui_basics
|
||||
PUBLIC
|
||||
juce::juce_recommended_config_flags
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue