
if(SMTG_ADD_VSTGUI)
    set(plug_sources
        include/plugcontroller.h
        include/plugids.h
        include/plugprocessor.h
        include/version.h
        include/kpp_tubeamp_dsp.h
        source/plugfactory.cpp
        source/plugcontroller.cpp
        source/plugprocessor.cpp
        thirdparty/zita-convolver/zita-convolver.h
        thirdparty/zita-convolver/zita-convolver.cpp
        thirdparty/zita-resampler/resampler.h
        thirdparty/zita-resampler/resampler.cpp
        thirdparty/zita-resampler/resampler-table.h
        thirdparty/zita-resampler/resampler-table.cpp
    )

    add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/kpp_tubeamp_dsp.h"
                       COMMAND faust "${CMAKE_CURRENT_SOURCE_DIR}/include/kpp_tubeamp.dsp" -cn TubeampDsp -o "${CMAKE_CURRENT_BINARY_DIR}/kpp_tubeamp_dsp.h"
                       WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include"
                       COMMENT "Compiling FAUST code..."
                       )

    include_directories(${CMAKE_CURRENT_BINARY_DIR})

    set(target kpp_tubeamp)

    smtg_add_vst3plugin(${target} ${plug_sources})
    set_target_properties(${target} PROPERTIES ${SDK_IDE_MYPLUGINS_FOLDER})
    target_include_directories(${target} PUBLIC ${VSTGUI_ROOT}/vstgui4)
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(fftw3  REQUIRED IMPORTED_TARGET fftw3)
    pkg_check_modules(fftw3f REQUIRED IMPORTED_TARGET fftw3f)
    target_link_libraries(${target} PRIVATE base sdk vstgui_support
        PkgConfig::fftw3 PkgConfig::fftw3f)

    smtg_add_vst3_resource(${target} "resource/plug.uidesc")
    smtg_add_vst3_resource(${target} "resource/base_scale.png")
    smtg_add_vst3_resource(${target} "resource/light.png")
    smtg_add_vst3_resource(${target} "resource/slider_handle.png")

    if(SMTG_MAC)
        smtg_set_bundle(${target} INFOPLIST "${CMAKE_CURRENT_LIST_DIR}/resource/Info.plist" PREPROCESS)
    elseif(SMTG_WIN)
        target_sources(${target} PRIVATE resource/plug.rc)
    endif()
endif(SMTG_ADD_VSTGUI)
