set(GLDOZE_MAP_PREVIEW_TEST_APP_DIR "${CMAKE_BINARY_DIR}/apps/map-preview-test")

add_library(gldoze_map_preview_test MODULE map_preview_test_plugin.cpp)
target_link_libraries(gldoze_map_preview_test PRIVATE gldoze_sdk)
set_target_properties(gldoze_map_preview_test PROPERTIES
  LIBRARY_OUTPUT_DIRECTORY "${GLDOZE_MAP_PREVIEW_TEST_APP_DIR}"
  PREFIX "lib" OUTPUT_NAME "gldoze_map_preview_test"
  CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN YES)

file(MAKE_DIRECTORY "${GLDOZE_MAP_PREVIEW_TEST_APP_DIR}")
configure_file(app.json.in "${GLDOZE_MAP_PREVIEW_TEST_APP_DIR}/app.json" @ONLY)
configure_file("${GLDOZE_REPO_ROOT}/assets/desktop/icons/gallery.svg" "${GLDOZE_MAP_PREVIEW_TEST_APP_DIR}/icon.svg" COPYONLY)

install(TARGETS gldoze_map_preview_test
  LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/gldoze/apps/map-preview-test"
  COMPONENT GLDozeDesktop)
install(FILES
  "${GLDOZE_MAP_PREVIEW_TEST_APP_DIR}/app.json"
  "${GLDOZE_MAP_PREVIEW_TEST_APP_DIR}/icon.svg"
  DESTINATION "${CMAKE_INSTALL_LIBDIR}/gldoze/apps/map-preview-test"
  COMPONENT GLDozeDesktop)

if(BUILD_TESTING)
  add_executable(map_preview_test_plugin_test map_preview_test_plugin_test.cpp)
  target_link_libraries(map_preview_test_plugin_test PRIVATE gldoze_plugin_runtime)
  add_dependencies(map_preview_test_plugin_test gldoze_map_preview_test)
  add_test(NAME map_preview_test_plugin
    COMMAND map_preview_test_plugin_test "${GLDOZE_MAP_PREVIEW_TEST_APP_DIR}/app.json")
endif()
