find_program(GUILE_EXECUTABLE
    NAMES guile3.0 guile2.2 guile
    REQUIRED
)

find_program(XML2AG_EXECUTABLE
    NAMES xml2ag
    REQUIRED
)

qt_add_plugin(lomiri-keyboard-plugin
    editor.cpp editor.h
    greeterstatus.cpp greeterstatus.h
    inputmethod.cpp inputmethod.h inputmethod_p.h
    keyboardgeometry.cpp keyboardgeometry.h
    keyboardsettings.cpp keyboardsettings.h
    plugin.cpp plugin.h
    emojimodel.cpp emojidata.h
    emojidata.h
)

add_custom_command(OUTPUT emojidata.xml
    COMMAND ${GUILE_EXECUTABLE} --no-auto-compile ${CMAKE_SOURCE_DIR}/tools/gen-emoji.scm
)

add_custom_command(OUTPUT emojidata.h
    COMMAND ${XML2AG_EXECUTABLE} -T ${CMAKE_CURRENT_SOURCE_DIR}/emojidata.tpl emojidata.xml
    DEPENDS emojidata.xml
)

target_link_libraries(lomiri-keyboard-plugin PRIVATE
    lomiri-keyboard
    lomiri-keyboard-view
    Qt::Core
    Qt::DBus
    Qt::Gui
    Qt::Qml
    Qt::Quick
    Qt::Widgets
    PkgConfig::GSETTINGS_QT6
)

install(TARGETS lomiri-keyboard-plugin
    LIBRARY DESTINATION "${MALIIT6_PLUGINS_DIR}"
)
