add_library(palette STATIC
    palettemodel.cpp
    palettemodel.h
    palettewidget.cpp
    palettewidget.h
    frecencystore.cpp
    frecencystore.h
)
target_link_libraries(palette PUBLIC fuzzyranker Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Concurrent)
target_include_directories(palette PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

# The command-palette plugin ([deft:util] palette). Needs KF6::TextEditor; the
# ":"-verb pack comes from deftcommands_lib, the widget/frecency from palette.
if(KF6TextEditor_FOUND)
    kcoreaddons_add_plugin(deft_palette
        SOURCES paletteplugin.cpp paletteplugin.h
        INSTALL_NAMESPACE "kf6/ktexteditor"
    )
    target_link_libraries(deft_palette PRIVATE
        palette
        deftcommands_lib
        KF6::TextEditor
        KF6::XmlGui
        KF6::CoreAddons
        KF6::I18n
        Qt6::Widgets
    )
endif()

if(Qt6Test_FOUND)
    add_executable(test_palettemodel test_palettemodel.cpp)
    target_link_libraries(test_palettemodel PRIVATE palette Qt6::Test Qt6::Widgets)
    add_test(NAME palettemodel COMMAND test_palettemodel)

    add_executable(test_frecencystore test_frecencystore.cpp)
    target_link_libraries(test_frecencystore PRIVATE palette Qt6::Test)
    add_test(NAME frecencystore COMMAND test_frecencystore)
endif()
