cmake_minimum_required(VERSION 3.16)
project(sloppyfocus VERSION 0.1.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)

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

# --- Detect Qt6/KF6 or fall back to Qt5/KF5 ---
find_package(KF6TextEditor QUIET CONFIG)
if(KF6TextEditor_FOUND)
    set(QT_MAJOR_VERSION 6)
else()
    set(QT_MAJOR_VERSION 5)
endif()

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

if(QT_MAJOR_VERSION EQUAL 6)
    find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
    find_package(KF6I18n REQUIRED)
    find_package(KF6CoreAddons REQUIRED)
    set(KF_LINK_LIBS
        KF6::TextEditor
        KF6::I18n
        Qt6::Core
        Qt6::Widgets
    )
    set(PLUGIN_INSTALL_NS "kf6/ktexteditor")
    message(STATUS "Building Sloppy Focus with KF6/Qt6")
else()
    find_package(Qt5 REQUIRED COMPONENTS Core Widgets)
    find_package(KF5TextEditor REQUIRED)
    find_package(KF5I18n REQUIRED)
    find_package(KF5CoreAddons REQUIRED)
    set(KF_LINK_LIBS
        KF5::TextEditor
        KF5::I18n
        Qt5::Core
        Qt5::Widgets
    )
    set(PLUGIN_INSTALL_NS "ktexteditor")
    message(STATUS "Building Sloppy Focus with KF5/Qt5")
endif()

kcoreaddons_add_plugin(sloppyfocus
    SOURCES
        sloppyfocus.cpp
    INSTALL_NAMESPACE "${PLUGIN_INSTALL_NS}"
)

target_link_libraries(sloppyfocus ${KF_LINK_LIBS})
target_include_directories(sloppyfocus PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
