mirror of
https://codeberg.org/armin/pascalcompressor.git
synced 2026-10-11 16:51:56 +02:00
Add compressor plugin source with build files
This commit is contained in:
parent
b0fef386ee
commit
ef5739546f
10 changed files with 925 additions and 0 deletions
98
CMakeLists.txt
Normal file
98
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
cmake_minimum_required(VERSION 3.23)
|
||||
|
||||
project(Pascalcompressor
|
||||
VERSION 1.0.0
|
||||
LANGUAGES C CXX OBJC OBJCXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
message(FATAL_ERROR "Pascalcompressor targets macOS arm64 (VST3 + AU).")
|
||||
endif()
|
||||
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 12.0 CACHE STRING "Minimum macOS deployment target")
|
||||
set(CMAKE_OSX_ARCHITECTURES arm64 CACHE STRING "Architecture")
|
||||
|
||||
set(JUCE_TAG "8.0.15" CACHE STRING "JUCE git tag to fetch")
|
||||
|
||||
include(FetchContent)
|
||||
|
||||
if(JUCE_DIR)
|
||||
add_subdirectory(${JUCE_DIR} juce)
|
||||
else()
|
||||
set(JUCE_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
||||
set(JUCE_BUILD_EXTRAS OFF CACHE BOOL "" FORCE)
|
||||
FetchContent_Declare(juce
|
||||
GIT_REPOSITORY https://github.com/juce-framework/JUCE.git
|
||||
GIT_TAG ${JUCE_TAG}
|
||||
GIT_SHALLOW TRUE)
|
||||
FetchContent_MakeAvailable(juce)
|
||||
endif()
|
||||
|
||||
set(PASCAL_GENERATED_DIR "${CMAKE_BINARY_DIR}/generated")
|
||||
file(MAKE_DIRECTORY "${PASCAL_GENERATED_DIR}")
|
||||
|
||||
execute_process(
|
||||
COMMAND /bin/sh -c "date '+%Y-%m-%d %H:%M:%S %Z'"
|
||||
OUTPUT_VARIABLE PASCAL_BUILD_TIME
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(NOT PASCAL_BUILD_TIME)
|
||||
string(TIMESTAMP PASCAL_BUILD_TIME "%Y-%m-%d %H:%M:%S %Z")
|
||||
endif()
|
||||
|
||||
file(WRITE "${PASCAL_GENERATED_DIR}/BuildInfo.h"
|
||||
"#pragma once\n"
|
||||
"#define PASCAL_BUILD_TIME \"${PASCAL_BUILD_TIME}\"\n")
|
||||
|
||||
juce_add_plugin(Pascalcompressor
|
||||
PRODUCT_NAME Pascalcompressor
|
||||
COMPANY_NAME "Pascal"
|
||||
BUNDLE_ID com.pascal.pascalcompressor
|
||||
PLUGIN_MANUFACTURER_CODE PscC
|
||||
PLUGIN_CODE Pscp
|
||||
FORMATS AU VST3
|
||||
IS_SYNTH NO
|
||||
NEEDS_MIDI_INPUT NO
|
||||
NEEDS_MIDI_OUTPUT NO
|
||||
IS_MIDI_EFFECT NO
|
||||
COPY_PLUGIN_AFTER_BUILD FALSE)
|
||||
|
||||
target_include_directories(Pascalcompressor PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Source"
|
||||
"${PASCAL_GENERATED_DIR}")
|
||||
|
||||
target_compile_definitions(Pascalcompressor PUBLIC JUCE_VST3_CAN_REPLACE_VST2=0)
|
||||
|
||||
target_sources(Pascalcompressor PRIVATE
|
||||
Source/Compressor.cpp
|
||||
Source/PluginProcessor.cpp
|
||||
Source/PluginEditor.cpp)
|
||||
|
||||
target_link_libraries(Pascalcompressor PRIVATE
|
||||
juce::juce_core
|
||||
juce::juce_events
|
||||
juce::juce_graphics
|
||||
juce::juce_gui_basics
|
||||
juce::juce_gui_extra
|
||||
juce::juce_audio_basics
|
||||
juce::juce_audio_processors
|
||||
juce::juce_audio_utils
|
||||
juce::juce_dsp)
|
||||
|
||||
set(PASCAL_BUILDINFO "${PASCAL_GENERATED_DIR}/BuildInfo.h")
|
||||
set_source_files_properties(Source/PluginEditor.cpp PROPERTIES OBJECT_DEPENDS "${PASCAL_BUILDINFO}")
|
||||
|
||||
# Sign each format bundle from its own target. Signing on the shared-library
|
||||
# target rewrote the bundle binaries' mtimes every build, which made make treat
|
||||
# them as always up to date and never relinked them.
|
||||
add_custom_command(TARGET Pascalcompressor_AU POST_BUILD
|
||||
COMMAND codesign --force --sign -
|
||||
"${CMAKE_BINARY_DIR}/Pascalcompressor_artefacts/$<CONFIG>/AU/Pascalcompressor.component"
|
||||
VERBATIM)
|
||||
|
||||
add_custom_command(TARGET Pascalcompressor_VST3 POST_BUILD
|
||||
COMMAND codesign --force --sign -
|
||||
"${CMAKE_BINARY_DIR}/Pascalcompressor_artefacts/$<CONFIG>/VST3/Pascalcompressor.vst3"
|
||||
VERBATIM)
|
||||
Loading…
Add table
Add a link
Reference in a new issue