File 01-rotor-cmake.patch of Package Rotor
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 554def4..aeee8c8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,18 @@ cmake_minimum_required(VERSION 3.15)
project(Rotor VERSION 1.0.0)
# Declare dependency on JUCE (as installed on the local system)
-add_subdirectory(juce)
+# add_subdirectory(juce)
+find_package(JUCE CONFIG REQUIRED)
+juce_set_vst2_sdk_path(/usr/include/)
+set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
+set(CMAKE_VISIBILITY_INLINES_HIDDEN True)
+
+if (UNIX AND NOT APPLE)
+ set(CMAKE_C_FLAGS "-fvisibility=hidden ${CMAKE_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS "-fvisibility=hidden ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_MODULE_LINKER_FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed -Wl,--strip-all -fPIC ${CMAKE_MODULE_LINKER_FLAGS}")
+ set(CMAKE_EXE_LINKER_FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed -Wl,--strip-all -fPIC ${CMAKE_EXE_LINKER_FLAGS}")
+endif ()
juce_add_plugin(Rotor
VERSION "1.0.0"
@@ -16,7 +27,8 @@ juce_add_plugin(Rotor
NEEDS_MIDI_OUTPUT FALSE
PLUGIN_MANUFACTURER_CODE Bkbx
PLUGIN_CODE Rotr
- FORMATS AU VST3
+ FORMATS Standalone VST3 VST LV2
+ LV2URI="https://github.com/maxwellmattryan/rotor"
PRODUCT_NAME "Rotor")
# Generate the JUCE header file for our source code
@@ -34,7 +46,11 @@ target_compile_definitions(Rotor PUBLIC
JUCE_WEB_BROWSER=0
JUCE_USE_CURL=0
JUCE_VST3_CAN_REPLACE_VST2=0
- JUCE_DISPLAY_SPLASH_SCREEN=0)
+ JUCE_DISPLAY_SPLASH_SCREEN=0
+ JUCE_JACK=1
+ define JucePlugin_MaxNumInputChannels=2
+ define JucePlugin_MaxNumOutputChannels=2
+)
# Add binary data from resources folder
juce_add_binary_data(RotorData HEADER_NAME "RotorData.h" NAMESPACE RotorData SOURCES
@@ -44,6 +60,9 @@ juce_add_binary_data(RotorData HEADER_NAME "RotorData.h" NAMESPACE RotorData SOU
resources/fonts/louis-george-cafe.ttf
resources/images/background.png)
+set_target_properties(RotorData PROPERTIES
+ POSITION_INDEPENDENT_CODE TRUE)
+
# Link libraries to the plugin's source code and other resources (i.e. binary data)
target_link_libraries(Rotor PRIVATE
# Link-time optimization (LTO) once applicable