cmake_minimum_required(VERSION 3.20)
project(kwin-windowgrid VERSION 0.1.0 LANGUAGES CXX)

set(QT_MIN_VERSION "6.8.0")
set(KF6_MIN_VERSION "6.10.0")

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

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

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)

find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Gui OpenGL)
find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS ConfigGui CoreAddons)
find_package(KWin REQUIRED COMPONENTS kwineffects)
find_package(epoxy REQUIRED)

kcoreaddons_add_plugin(windowgrid
    INSTALL_NAMESPACE "kwin/effects/plugins"
    SOURCES main.cpp windowgrid.cpp windowgrid.h
)

target_link_libraries(windowgrid PRIVATE
    KWin::kwin
    KF6::ConfigGui
    KF6::CoreAddons
    Qt6::Core
    Qt6::Gui
    Qt6::OpenGL
    epoxy::epoxy
)
