set(APP_HARDCODE lomiri-printqueue-dialog)
set(APP_NAME lomiri-printqueue-dialog)
set(DESKTOP_FILE "${APP_NAME}.desktop")
set(MAIN_QML Main.qml)
set(ICON_FILE ${APP_NAME}.svg)
set(SNAP_DESKTOP_FILE snap/gui/${DESKTOP_FILE})

# Set the path for the QML files and the backend
set(DATA_DIR "${CMAKE_INSTALL_FULL_DATADIR}/lomiri-printing-app/queue-dialog")

configure_file (${CMAKE_SOURCE_DIR}/config.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/config.hpp @ONLY)

add_executable (${APP_HARDCODE}
  ${CMAKE_SOURCE_DIR}/main.cpp
  ${CMAKE_CURRENT_BINARY_DIR}/config.hpp
)

target_include_directories (${APP_HARDCODE}
  PRIVATE
  ${CMAKE_CURRENT_BINARY_DIR}
)

target_link_libraries (${APP_HARDCODE}
  PUBLIC
  Qt5::Core
  Qt5::Gui
  Qt5::Qml
  Qt5::Quick
)

set (EXEC_DESTINATION "${CMAKE_INSTALL_BINDIR}")
if (CLICK_MODE)
  set (EXEC_DESTINATION "${CMAKE_INSTALL_PREFIX}")
endif()

# Icon path
set(ICON_DESTINATION "${DATA_DIR}")
if(CLICK_MODE)
  set(ICON_DESTINATION "${CMAKE_INSTALL_PREFIX}")
endif()

# Set the desktop file variables
set(EXEC "env APP_ID=${APP_HARDCODE} ${APP_HARDCODE}")
set(ICON "${ICON_DESTINATION}/${ICON_FILE}")
if (SNAP_MODE)
  set(ICON "$SNAP/${ICON}")
elseif (CLICK_MODE)
  set(ICON "${ICON_FILE}")
endif()

add_subdirectory(components)
add_subdirectory(pages)

# Add tests
if (BUILD_TESTING)
  add_subdirectory(tests)
endif()

install(TARGETS ${APP_HARDCODE} RUNTIME DESTINATION ${EXEC_DESTINATION})

# Install Main.qml and icon
install(FILES ${MAIN_QML} DESTINATION ${DATA_DIR})
install(FILES ${ICON_FILE} DESTINATION ${ICON_DESTINATION})

# Install desktop file
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${DESKTOP_FILE}.in.in ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE}.in)
intltool_merge_translations(
  "${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE}.in"
  "${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE}"
  ALL
  UTF8
)

if(CLICK_MODE)
  set(DESKTOP_LOCATION "${CMAKE_INSTALL_PREFIX}")
else(CLICK_MODE)
  set(DESKTOP_LOCATION "${CMAKE_INSTALL_DATADIR}/applications")
endif()

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE}
        DESTINATION ${DESKTOP_LOCATION})

# Install the url dispatcher
# For now any printing:/// uri will open the queue dialog
if(CLICK_MODE)
  install(FILES ${APP_NAME}.url-dispatcher DESTINATION ${CMAKE_INSTALL_PREFIX})
else(CLICK_MODE)
  install(FILES ${APP_NAME}.url-dispatcher DESTINATION ${CMAKE_INSTALL_DATADIR}/lomiri-url-dispatcher/urls)
endif()

# Show in QtCreator
if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
  file(GLOB QUEUE_MAIN_QML_JS_FILES *.apparmor *.js *.json *.qml)
  add_custom_target(lomiri_queue_dialog_main_qml_js_files ALL SOURCES ${QUEUE_MAIN_QML_JS_FILES})
endif(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")

# Set variables for use in parent scope
set(LOMIRI_QUEUE_DIALOG_DESKTOP_FILE "${DESKTOP_FILE}" PARENT_SCOPE)
