mirror of
https://github.com/yokemura/Magical8bitPlug2.git
synced 2025-05-24 23:00:21 -04:00
127 lines
3.3 KiB
CMake
127 lines
3.3 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
set(PLUGIN_NAME "Magical8bitPlug2")
|
|
string(TOLOWER ${PLUGIN_NAME} PLUGIN_NAME_LOWERCASE)
|
|
project(${PLUGIN_NAME}_project VERSION 1.1.0)
|
|
|
|
option(PLUGIN_VST3 "Build VST3 Plugin" OFF)
|
|
option(PLUGIN_LV2 "Build LADSPA Version 2 Plugin" OFF)
|
|
|
|
#find_package(JUCE CONFIG REQUIRED) # You need to install compiled JUCE framework to your system.
|
|
# Or,
|
|
add_subdirectory(modules/JUCE) # JUCE framework on a subdirectory.
|
|
|
|
set(PLUGIN_FORMATS Standalone)
|
|
if(PLUGIN_VST3)
|
|
list(APPEND PLUGIN_FORMATS VST3)
|
|
endif()
|
|
if(PLUGIN_LV2)
|
|
list(APPEND PLUGIN_FORMATS LV2)
|
|
endif()
|
|
|
|
message(STATUS "JUCE Formats: ${PLUGIN_FORMATS}")
|
|
|
|
juce_add_plugin(${PLUGIN_NAME}
|
|
PLUGIN_NAME ${PLUGIN_NAME}
|
|
PRODUCT_NAME ${PLUGIN_NAME_LOWERCASE}
|
|
VERSION ${CMAKE_PROJECT_VERSION}
|
|
BUNDLE_ID "com.ymck.magical8bitPlug2Juce"
|
|
ICON_SMALL "../Resources/icon-256.png"
|
|
ICON_LARGE "../Resources/icon-512.png"
|
|
COMPANY_NAME "Ymck"
|
|
COMPANY_WEBSITE "http://ymck.net"
|
|
COMPANY_EMAIL "info@ymck.net"
|
|
IS_SYNTH TRUE
|
|
NEEDS_MIDI_INPUT TRUE
|
|
NEEDS_MIDI_OUTPUT FALSE
|
|
IS_MIDI_EFFECT FALSE
|
|
PLUGIN_MANUFACTURER_CODE "Ymck"
|
|
PLUGIN_CODE "synj"
|
|
FORMATS ${PLUGIN_FORMATS}
|
|
LV2_URI "http://ymck.net"
|
|
DESCRIPTION "8bit sound generator 2nd ver. by YMCK"
|
|
)
|
|
|
|
# Generate JuceHeader.h
|
|
juce_generate_juce_header(${PLUGIN_NAME})
|
|
|
|
target_compile_definitions(${PLUGIN_NAME}
|
|
PUBLIC
|
|
JUCE_JACK=1
|
|
JUCE_WEB_BROWSER=0
|
|
JUCE_USE_CURL=0
|
|
JUCE_DISPLAY_SPLASH_SCREEN=1
|
|
JUCE_USE_DARK_SPLASH_SCREEN=0
|
|
JUCE_REPORT_APP_USAGE=0
|
|
JUCE_VST3_CAN_REPLACE_VST2=0
|
|
JUCE_STRICT_REFCOUNTEDPOINTER=1
|
|
)
|
|
|
|
target_sources(${PLUGIN_NAME}
|
|
PRIVATE
|
|
../Source/CheckBoxComponent.cpp
|
|
../Source/ChoiceComponent.cpp
|
|
../Source/CustomEnvelopeComponent.cpp
|
|
../Source/SliderComponent.cpp
|
|
../Source/AdvancedParamsComponent.cpp
|
|
../Source/BasicParamsComponent.cpp
|
|
../Source/BendParamsComponent.cpp
|
|
../Source/EnvelopeParamsComponent.cpp
|
|
../Source/MonophonicComponent.cpp
|
|
../Source/NoiseParamsComponent.cpp
|
|
../Source/PulseParamsComponent.cpp
|
|
../Source/SweepParamsComponent.cpp
|
|
../Source/VibratoParamsComponent.cpp
|
|
../Source/CustomSynth.cpp
|
|
../Source/FrameSequenceParseErrors.cpp
|
|
../Source/FrameSequenceParser.cpp
|
|
../Source/ColorScheme.cpp
|
|
../Source/BaseVoice.cpp
|
|
../Source/NoiseVoice.cpp
|
|
../Source/TriangleVoice.cpp
|
|
../Source/PulseVoice.cpp
|
|
../Source/TonalVoice.cpp
|
|
../Source/Settings.cpp
|
|
../Source/Voices.cpp
|
|
../Source/PluginProcessor.cpp
|
|
../Source/PluginEditor.cpp
|
|
)
|
|
|
|
juce_add_binary_data(${PLUGIN_NAME}_images
|
|
SOURCES
|
|
../Resources/icon-256.png
|
|
../Resources/icon-512.png
|
|
)
|
|
|
|
set_target_properties(${PLUGIN_NAME}_images
|
|
PROPERTIES
|
|
POSITION_INDEPENDENT_CODE TRUE
|
|
)
|
|
|
|
# JUCE Modules and Binary Data
|
|
target_link_libraries(${PLUGIN_NAME}
|
|
PRIVATE
|
|
juce::juce_audio_basics
|
|
juce::juce_audio_devices
|
|
juce::juce_audio_formats
|
|
juce::juce_audio_plugin_client
|
|
juce::juce_audio_processors
|
|
juce::juce_audio_utils
|
|
juce::juce_core
|
|
juce::juce_cryptography
|
|
juce::juce_data_structures
|
|
juce::juce_events
|
|
juce::juce_graphics
|
|
juce::juce_gui_basics
|
|
juce::juce_gui_extra
|
|
juce::juce_opengl
|
|
${PLUGIN_NAME}_images
|
|
)
|
|
|
|
# Recommended Flags
|
|
target_link_libraries(${PLUGIN_NAME}
|
|
PUBLIC
|
|
juce::juce_recommended_warning_flags
|
|
juce::juce_recommended_config_flags
|
|
juce::juce_recommended_lto_flags
|
|
)
|