#################################################
#
#  (C) 2017 Slávek Banko
#  slavek (DOT) banko (AT) axis.cz
#
#  Improvements and feedback are welcome
#
#  This file is released under GPL >= 2
#
#################################################

add_subdirectory( mcopclass )

include_directories(
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_BINARY_DIR}/arts/runtime
  ${CMAKE_BINARY_DIR}
  ${ARTS_INCLUDE_DIRS}
  ${TQT_INCLUDE_DIRS}
  ${TDE_INCLUDE_DIR}
)

link_directories(
  ${TQT_LIBRARY_DIRS}
  ${ARTS_LIBRARY_DIRS}
)


##### artsmidi (library) ########################

tde_add_library( artsmidi_idl SHARED
  SOURCES artsmidi.cpp
  VERSION 0.0.0
  LINK ${ARTS_LIBRARIES} ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARIES} mcop artsflow artsflow_idl
  DESTINATION ${LIB_INSTALL_DIR}
)

tde_add_library( artsmidi SHARED
  SOURCES
    midimanager_impl.cpp midiclient_impl.cpp
    miditest_impl.cpp midimanagerport_impl.cpp rawmidiport_impl.cpp
    systemmiditimer_impl.cpp audiomiditimer_impl.cpp miditimercommon.cpp
    audiosync_impl.cpp audiotimer.cpp alsamidigateway_impl.cpp
    alsamidiport_impl.cpp midisyncgroup_impl.cpp timestampmath.cpp
  VERSION 0.0.0
  LINK
    artsmidi_idl-shared
  DESTINATION ${LIB_INSTALL_DIR}
)

add_custom_command(
  OUTPUT
    artsmidi.cpp artsmidi.h
    artsmidi.mcopclass artsmidi.mcoptype
  COMMAND ${ARTS_MCOPIDL_EXECUTABLE} -t
    -I${ARTS_INCLUDEDIR} ${CMAKE_CURRENT_SOURCE_DIR}/artsmidi.idl
  DEPENDS artsmidi.idl
)


##### midisend (executable) #####################

tde_add_executable( midisend
  SOURCES midisend.cpp midimsg.c
  LINK artsmidi_idl-shared
  DESTINATION ${BIN_INSTALL_DIR}
)

tde_add_check_executable( midisynctest
  SOURCES midisynctest.cpp
  LINK artsmidi-shared soundserver_idl
)


##### other data ################################

install(
  FILES
    artsmidi.idl
    ${CMAKE_CURRENT_BINARY_DIR}/artsmidi.h
  DESTINATION ${INCLUDE_INSTALL_DIR}/arts
)

install(
  FILES
    ${CMAKE_CURRENT_BINARY_DIR}/artsmidi.mcoptype
    ${CMAKE_CURRENT_BINARY_DIR}/artsmidi.mcopclass
  DESTINATION ${LIB_INSTALL_DIR}/mcop
)
