mirror of
https://github.com/yokemura/Magical8bitPlug2.git
synced 2025-07-24 03:14:15 -04:00
Added Tools in builder_linux for Building with JUCE CMake API
This commit is contained in:
126
builder_linux/CMakeLists.txt
Normal file
126
builder_linux/CMakeLists.txt
Normal file
@ -0,0 +1,126 @@
|
||||
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
|
||||
)
|
Reference in New Issue
Block a user