project(sfizz)

if(SFIZZ_JACK)
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(JACK "jack" REQUIRED)
    link_directories(${JACK_LIBRARY_DIRS})

    add_executable(sfizz_jack MidiHelpers.h jack_client.cpp)
    target_include_directories(sfizz_jack PRIVATE ${JACK_INCLUDE_DIRS})
    target_link_libraries(sfizz_jack PRIVATE sfizz::sfizz absl::flags_parse ${JACK_LIBRARIES})
    sfizz_enable_lto_if_needed(sfizz_jack)
    install(TARGETS sfizz_jack DESTINATION ${CMAKE_INSTALL_BINDIR}
        COMPONENT "jack" OPTIONAL)
endif()

if(SFIZZ_RENDER)
    add_library(sfizz_fmidi STATIC
        "external/fmidi/sources/fmidi/fmidi.h"
        "external/fmidi/sources/fmidi/fmidi_mini.cpp")
    add_library(sfizz::fmidi ALIAS sfizz_fmidi)
    target_include_directories(sfizz_fmidi PUBLIC "external/fmidi/sources")
    target_compile_definitions(sfizz_fmidi PUBLIC "FMIDI_STATIC=1" "FMIDI_DISABLE_DESCRIBE_API=1")

    add_executable(sfizz_render MidiHelpers.h sfizz_render.cpp)
    target_link_libraries(sfizz_render PRIVATE sfizz::sfizz sfizz::fmidi sfizz::sndfile sfizz::cxxopts)
    sfizz_enable_lto_if_needed(sfizz_render)
    install(TARGETS sfizz_render DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "render" OPTIONAL)
endif()
