cmake_minimum_required(VERSION 3.16)
project(xroverview VERSION 0.1.7 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)

find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick Qml Sql)
find_package(KF6 REQUIRED COMPONENTS I18n)

add_executable(xroverview
    src/main.cpp
    src/invoicemodel.cpp
    resources.qrc
)

target_link_libraries(xroverview
    Qt6::Core
    Qt6::Gui
    Qt6::Quick
    Qt6::Qml
    Qt6::Sql
    KF6::I18n
)

# Translations
find_program(MSGFMT_EXECUTABLE msgfmt)
if(MSGFMT_EXECUTABLE)
    file(GLOB PO_FILES "${CMAKE_CURRENT_SOURCE_DIR}/po/*/xroverview.po")
    foreach(PO_FILE ${PO_FILES})
        get_filename_component(LANG_DIR ${PO_FILE} DIRECTORY)
        get_filename_component(LANG ${LANG_DIR} NAME)
        set(MO_FILE "${CMAKE_CURRENT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES/xroverview.mo")
        add_custom_command(
            OUTPUT ${MO_FILE}
            COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES"
            COMMAND ${MSGFMT_EXECUTABLE} -o ${MO_FILE} ${PO_FILE}
            DEPENDS ${PO_FILE}
            COMMENT "Compiling ${LANG} translation"
        )
        list(APPEND MO_FILES ${MO_FILE})
        install(FILES ${MO_FILE}
                DESTINATION ${KDE_INSTALL_LOCALEDIR}/${LANG}/LC_MESSAGES)
    endforeach()
    add_custom_target(translations ALL DEPENDS ${MO_FILES})
endif()

install(TARGETS xroverview ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES de.treuchtlingen.xroverview.desktop DESTINATION ${KDE_INSTALL_APPDIR})
