set(GLDOZE_REMOTE_SYSTEMS_APP_DIR "${CMAKE_BINARY_DIR}/apps/remote-systems")
add_library(gldoze_remote_systems MODULE remote_systems_plugin.cpp)
target_link_libraries(gldoze_remote_systems PRIVATE gldoze_sdk gldoze_remote_client)
set_target_properties(gldoze_remote_systems PROPERTIES
  LIBRARY_OUTPUT_DIRECTORY "${GLDOZE_REMOTE_SYSTEMS_APP_DIR}"
  PREFIX "lib" OUTPUT_NAME "gldoze_remote_systems"
  CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN YES)
file(MAKE_DIRECTORY "${GLDOZE_REMOTE_SYSTEMS_APP_DIR}")
configure_file(app.json.in "${GLDOZE_REMOTE_SYSTEMS_APP_DIR}/app.json" @ONLY)
configure_file("${GLDOZE_REPO_ROOT}/assets/desktop/icons/session.svg"
  "${GLDOZE_REMOTE_SYSTEMS_APP_DIR}/icon.svg" COPYONLY)
install(TARGETS gldoze_remote_systems
  LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/gldoze/apps/remote-systems"
  COMPONENT GLDozeDesktop)
install(FILES "${GLDOZE_REMOTE_SYSTEMS_APP_DIR}/app.json"
  "${GLDOZE_REMOTE_SYSTEMS_APP_DIR}/icon.svg"
  DESTINATION "${CMAKE_INSTALL_LIBDIR}/gldoze/apps/remote-systems"
  COMPONENT GLDozeDesktop)
if(BUILD_TESTING)
  add_executable(remote_systems_plugin_test remote_systems_plugin_test.cpp)
  target_link_libraries(remote_systems_plugin_test PRIVATE gldoze_plugin_runtime)
  add_dependencies(remote_systems_plugin_test gldoze_remote_systems)
  add_test(NAME remote_systems_plugin COMMAND remote_systems_plugin_test
    "${GLDOZE_REMOTE_SYSTEMS_APP_DIR}/app.json")
endif()
