cmake_minimum_required(VERSION 3.22)
project(ATStream VERSION 2.2.0 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
include(FetchContent)
FetchContent_Declare(JUCE GIT_REPOSITORY https://github.com/juce-framework/JUCE.git GIT_TAG 8.0.6 GIT_SHALLOW TRUE)
FetchContent_MakeAvailable(JUCE)
set(FORMATS VST3)
if(APPLE)
  list(APPEND FORMATS AU)
endif()
juce_add_plugin(ATStream COMPANY_NAME ATStream BUNDLE_ID com.atstream.sender PLUGIN_MANUFACTURER_CODE Atst PLUGIN_CODE Ats1 FORMATS ${FORMATS} PRODUCT_NAME ATStream IS_SYNTH FALSE NEEDS_MIDI_INPUT FALSE NEEDS_MIDI_OUTPUT FALSE IS_MIDI_EFFECT FALSE COPY_PLUGIN_AFTER_BUILD FALSE VST3_CATEGORIES Fx Tools)
target_sources(ATStream PRIVATE plugin/Processor.cpp plugin/Processor.h plugin/Controls.cpp)
target_compile_definitions(ATStream PUBLIC JUCE_WEB_BROWSER=0 JUCE_USE_CURL=0 JUCE_VST3_CAN_REPLACE_VST2=0)
target_link_libraries(ATStream PRIVATE juce::juce_audio_utils PUBLIC juce::juce_recommended_config_flags juce::juce_recommended_warning_flags)
juce_add_console_app(ATStreamValidate PRODUCT_NAME ATStreamValidate)
target_sources(ATStreamValidate PRIVATE tests/validate.cpp)
target_compile_definitions(ATStreamValidate PRIVATE JUCE_PLUGINHOST_VST3=1 JUCE_WEB_BROWSER=0 JUCE_USE_CURL=0)
target_link_libraries(ATStreamValidate PRIVATE juce::juce_audio_utils)

