file(GLOB_RECURSE CLICK_FILES
    RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} * *.*
)
add_custom_target(ClickSrcs ALL SOURCES ${CLICK_FILES})

message(AUTHOR_WARNING "QBS build didn't use unconfined option, should the CMake one? Assuming unconfined, like qbs.")
if (TRUE)
    set(APPARMOR_MANIFEST openstore/dekko2.apparmor openstore/dekkod.apparmor)
else()
    set(APPARMOR_MANIFEST dekko.apparmor)
endif()

set(CLICK_MANIFEST manifest.json.in)

message(AUTHOR_WARNING "dekko.dekkoproject_dekko.* installation skipped, as QBS didn't seem to install them either")
set(OTHER_MANIFEST
    ${APPARMOR_MANIFEST}
    #dekko.dekkoproject_dekko.application
    #dekko.dekkoproject_dekko.service
    dekkod.desktop
    dekko2.url-dispatcher
    dekko2-content.json
    dekkohelper-aa.json
    dekko-helper.json
)

if (CLICK_MODE)
    set(APPEND_VERSION "" CACHE STRING "Appendix to dekko version")
    # Reduce the framework appendix to the OS version, e.g. 24.04-1.x
    string(REGEX MATCH "[0-9].*" VERSION_APPENDIX ${APPEND_VERSION})
    set(HOST_ARCH_TRIPLET ${CMAKE_LIBRARY_ARCHITECTURE})
    set(DESKTOP_EXEC "env DEKKO_PLUGINS=./lib/${HOST_ARCH_TRIPLET}/bin/plugins QMF_PLUGINS=./lib/${HOST_ARCH_TRIPLET}/qmf/plugins5 QMF_DATA_HOME=~/.cache/dekko2.dekkoproject dekko %U")
    set(DESKTOP_ICON dekko)
    set(VERSION "${PROJECT_VERSION}-${VERSION_APPENDIX}")
    execute_process(
        COMMAND dpkg-architecture -qDEB_HOST_ARCH
        OUTPUT_VARIABLE CLICK_ARCH
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )

    configure_file(${CLICK_MANIFEST} ${CMAKE_CURRENT_BINARY_DIR}/manifest.json @ONLY)
    configure_file(dekko2.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/dekko2.desktop @ONLY)

    install(FILES
        ${CMAKE_CURRENT_BINARY_DIR}/manifest.json
        ${CMAKE_CURRENT_BINARY_DIR}/dekko2.desktop
        ${OTHER_MANIFEST}
        DESTINATION ${CMAKE_INSTALL_PREFIX}
    )
    install(PROGRAMS
        dekkod-launch
        DESTINATION ${CMAKE_INSTALL_BINDIR}
    )
    install(PROGRAMS
        dekko-helper
        DESTINATION ${CMAKE_INSTALL_PREFIX}
    )
else()
    set(DESKTOP_EXEC "dekko %U")
    set(DESKTOP_ICON dekko)
    configure_file(dekko2.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/dekko2.desktop @ONLY)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dekko2.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
endif()
