cmake_minimum_required(VERSION 3.22)

project(HouseOfMixtape VERSION 0.1.0 LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# JUCE is expected as a sibling directory by default. Override with
# -DJUCE_DIR=/path/to/JUCE if you keep it elsewhere.
if(NOT DEFINED JUCE_DIR)
    set(JUCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../JUCE")
endif()

if(NOT EXISTS "${JUCE_DIR}/CMakeLists.txt")
    message(FATAL_ERROR
        "JUCE not found at ${JUCE_DIR}. "
        "Clone https://github.com/juce-framework/JUCE next to this dir, "
        "or pass -DJUCE_DIR=/path/to/JUCE."
    )
endif()

add_subdirectory(${JUCE_DIR} JUCE)

juce_add_plugin(HouseOfMixtape
    COMPANY_NAME              "House of Mixtape"
    BUNDLE_ID                 "com.houseofmixtape.daw"
    PLUGIN_MANUFACTURER_CODE  HoMx
    PLUGIN_CODE               HoM1
    FORMATS                   VST3 AU Standalone
    PRODUCT_NAME              "House of Mixtape"
    NEEDS_MIDI_INPUT          FALSE
    NEEDS_MIDI_OUTPUT         FALSE
    IS_SYNTH                  FALSE
    EDITOR_WANTS_KEYBOARD_FOCUS TRUE
    COPY_PLUGIN_AFTER_BUILD   TRUE
    VST3_CATEGORIES           "Fx" "Tools"
    AU_MAIN_TYPE              "kAudioUnitType_Effect"
)

target_sources(HouseOfMixtape PRIVATE
    Source/PluginProcessor.cpp
    Source/PluginEditor.cpp
    Source/HomApiClient.cpp
)

target_compile_definitions(HouseOfMixtape PRIVATE
    JUCE_WEB_BROWSER=0
    JUCE_USE_CURL=1
    JUCE_VST3_CAN_REPLACE_VST2=0
)

target_link_libraries(HouseOfMixtape PRIVATE
    juce::juce_audio_utils
    juce::juce_dsp
    juce::juce_gui_extra
    juce::juce_audio_formats
    juce::juce_audio_devices
    juce::juce_recommended_config_flags
    juce::juce_recommended_lto_flags
    juce::juce_recommended_warning_flags
)
