#
# SPDX-License-Identifier: BSD-2-Clause
# SPDX-FileCopyrightText: 2019 Bhushan Shah <bshah@kde.org>
# SPDX-FileCopyrightText: 2019 Friedrich W. H. Kossebau <kossebau@kde.org>
# SPDX-FileCopyrightText: 2019-2021 Johan Ouwerkerk <jm.ouwerkerk@gmail.com>
# SPDX-FileCopyrightText: 2020 Nicolas Fella <nicolas.fella@gmx.de>
# SPDX-FileCopyrightText: 2021 Devin Lin <espidev@gmail.com>
#

add_subdirectory(base32)
add_subdirectory(uri)
add_subdirectory(hmac)
add_subdirectory(oath)
add_subdirectory(secrets)
add_subdirectory(account)
add_subdirectory(model)
add_subdirectory(validators)
add_subdirectory(app)

configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/version.h.in" "${CMAKE_CURRENT_BINARY_DIR}/version.h")

#
# The features header should be namespaced, or at least it *must not* be called 'features.h'.
# Reason is that the GNU C++ standard library implementation also refers to a 'features.h'
# and compilation will blow up very badly inside 'os_defines.h' if it does not get the
# 'features.h' it was (really) looking for.
#
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/keysmith-features.h.in" "${CMAKE_CURRENT_BINARY_DIR}/keysmith-features.h")

set(keysmith_SRCS
    main.cpp
)

qt_add_resources(RESOURCES resources.qrc)
add_executable(keysmith ${keysmith_SRCS} ${RESOURCES})
target_link_libraries(keysmith
    PUBLIC
        Qt6::Core
        Qt6::Gui
        Qt6::Qml
        Qt6::Quick
        Qt6::Svg
        Qt6::QuickControls2
        KF6::I18n
        keysmith_lib
)

if (ENABLE_DBUS_INTERFACE)
    target_link_libraries(keysmith PUBLIC KF6::DBusAddons)
endif()

if(ANDROID)
    kirigami_package_breeze_icons(ICONS
        application-quit
        answer-correct
        edit-delete
        edit-undo
        go-next
        list-add
        unlock
        lock
    )
else()
    target_link_libraries(keysmith PUBLIC Qt6::Widgets)
endif()

install(TARGETS keysmith ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
