cmake_minimum_required(VERSION 3.14.0)
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.13 CACHE STRING "")

project(PureVST
    VERSION 0.2.0.0
    DESCRIPTION "Pure Data VST Plug-in"
)

# FILE PATHS - EDIT THESE TO WORK ON YOUR OWN MACHINE
set(VST3SDK_SOURCE_DIR ${HOME}/bis/var/build/VST_SDK/vst3sdk)
set(PD_SOURCE_DIR ${HOME}/pd)

add_compile_definitions(PUBLIC$<$<CONFIG:Debug>:VSTGUI_LIVE_EDITING=1>)

add_library(libpd STATIC IMPORTED)
set_target_properties(libpd PROPERTIES IMPORTED_LOCATION
    ${PD_SOURCE_DIR}/libpd/libpd.a)
set_target_properties(libpd PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
    ${PD_SOURCE_DIR}/src/)

add_subdirectory(${VST3SDK_SOURCE_DIR} ${PROJECT_BINARY_DIR}/vst3sdk)

smtg_enable_vst3_sdk()


smtg_add_vst3plugin(PureVST
    source/pdcids.h
    source/pdprocessor.h
    source/pdprocessor.cpp
    source/pdcontroller.h
    source/pdcontroller.cpp
    source/pdentry.cpp
    resource/pdeditor.uidesc
)

target_link_libraries(PureVST
    PUBLIC
    libpd
)

target_link_libraries(PureVST
    PRIVATE
        sdk
        vstgui_support
)

smtg_target_add_plugin_resources(PureVST
    RESOURCES
        resource/pdeditor.uidesc
        resource/background.png
        resource/onoff_button.png
        resource/slider_background.png
        resource/slider_handle.png
        resource/slider_handle_2.0x.png
        resource/test-patch.pd
)

smtg_target_add_plugin_snapshots (PureVST
    RESOURCES
        resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png
        resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png
)

smtg_target_configure_version_file(PureVST)

if(SMTG_MAC)
    smtg_target_set_bundle(PureVST
        BUNDLE_IDENTIFIER pure-data
    )
    smtg_target_set_debug_executable(PureVST
        "/Applications/VST3PluginTestHost.app"
        "--pluginfolder;$(BUILT_PRODUCTS_DIR)"
    )
elseif(SMTG_WIN)
    target_sources(PureVST PRIVATE 
        resource/win32resource.rc
    )
    if(MSVC)
        set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT PureVST)

        smtg_target_set_debug_executable(PureVST
            "$(ProgramW6432)/Steinberg/VST3PluginTestHost/VST3PluginTestHost.exe"
            "--pluginfolder \"$(OutDir)/\""
        )
    endif()
endif(SMTG_MAC)
