set(GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR "${CMAKE_BINARY_DIR}/apps/audio-cd-ripper")
file(REMOVE_RECURSE "${CMAKE_BINARY_DIR}/apps/audio-cd-ripper-sdk-preview")

add_library(gldoze_audio_cd_ripper_preview MODULE audio_cd_ripper_preview_plugin.cpp)
target_link_libraries(gldoze_audio_cd_ripper_preview PRIVATE gldoze_sdk)
set_target_properties(gldoze_audio_cd_ripper_preview PROPERTIES
  LIBRARY_OUTPUT_DIRECTORY "${GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR}"
  PREFIX "lib" OUTPUT_NAME "gldoze_audio_cd_ripper"
  CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN YES)

file(MAKE_DIRECTORY "${GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR}")
configure_file(app.json.in "${GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR}/app.json" @ONLY)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/app.json.in")
configure_file("${GLDOZE_REPO_ROOT}/assets/desktop/icons/audio-cd-ripper.svg" "${GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR}/icon.svg" COPYONLY)

install(TARGETS gldoze_audio_cd_ripper_preview
  LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/gldoze/apps/audio-cd-ripper"
  COMPONENT GLDozeDesktop)
install(FILES
  "${GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR}/app.json"
  "${GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR}/icon.svg"
  DESTINATION "${CMAKE_INSTALL_LIBDIR}/gldoze/apps/audio-cd-ripper"
  COMPONENT GLDozeDesktop)

if(BUILD_TESTING)
  add_executable(audio_cd_ripper_preview_plugin_test audio_cd_ripper_preview_plugin_test.cpp)
  target_link_libraries(audio_cd_ripper_preview_plugin_test PRIVATE gldoze_plugin_runtime)
  add_dependencies(audio_cd_ripper_preview_plugin_test gldoze_audio_cd_ripper_preview)
  add_test(NAME audio_cd_ripper_preview_plugin
    COMMAND audio_cd_ripper_preview_plugin_test "${GLDOZE_AUDIO_CD_RIPPER_PREVIEW_APP_DIR}/app.json")
endif()
