From aa807a6ce1c72eac00053eb61af2be6377ccec89 Mon Sep 17 00:00:00 2001 From: Matin Lotfaliei Date: Sat, 10 Aug 2024 16:17:05 -0700 Subject: [PATCH] Use find_package function to find the KF version --- CMakeLists.txt | 14 +++++++++----- cmake/info.cmake | 18 ++++++++++++++++-- cmake/qtversion.cmake | 18 +++++++----------- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8623b89..9faefc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,8 @@ cmake_minimum_required(VERSION 3.20) project(kwin4_effect_shapecorners VERSION 0.6.2 LANGUAGES CXX) include(cmake/default-vars.cmake) -include(cmake/qtversion.cmake) -include(cmake/info.cmake) -find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) +find_package(ECM REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} @@ -17,14 +15,20 @@ include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) +include(cmake/qtversion.cmake) + # required frameworks by Core find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS ConfigWidgets) + if(${QT_MAJOR_VERSION} EQUAL 6) find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS KCMUtils) - find_package(KWin REQUIRED COMPONENTS kwineffects) + find_package(KWin ${KF_MIN_VERSION} REQUIRED COMPONENTS kwineffects) + message(STATUS "Found KWin Version: ${KWin_VERSION}") else() - find_package(KWinEffects REQUIRED COMPONENTS kwineffects kwinglutils) + find_package(KWinEffects ${KF_MIN_VERSION} REQUIRED COMPONENTS kwineffects kwinglutils) + message(STATUS "Found KWin Version: ${KWinEffects_VERSION}") endif () +include(cmake/info.cmake) find_package(epoxy REQUIRED) find_package(XCB REQUIRED COMPONENTS XCB) find_package(KWinDBusInterface CONFIG REQUIRED) diff --git a/cmake/info.cmake b/cmake/info.cmake index 47b318d..19663e5 100644 --- a/cmake/info.cmake +++ b/cmake/info.cmake @@ -1,4 +1,4 @@ -if(${QT_MAJOR_VERSION} EQUAL 6) +if(${KWin_VERSION_MAJOR} EQUAL 6) set(KWIN_EFFECT_INCLUDE_FILE "/usr/include/kwin/effect/effect.h") else () set(KWIN_EFFECT_INCLUDE_FILE "/usr/include/kwineffects.h") @@ -7,4 +7,18 @@ execute_process( COMMAND sh -c "grep '#define KWIN_EFFECT_API_VERSION_MINOR' ${KWIN_EFFECT_INCLUDE_FILE} | awk '{print \$NF}'" OUTPUT_VARIABLE KWIN_EFFECT_API_VERSION_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE ) -message("-- KWinEffect Version: ${KWIN_EFFECT_API_VERSION_MINOR}") \ No newline at end of file +message(STATUS "Found KWinEffect API Version: ${KWIN_EFFECT_API_VERSION_MINOR}") + +#below is a very useful way of finding variables and contains: + +#get_cmake_property(_variableNames VARIABLES) +#list (SORT _variableNames) +#foreach (_variableName ${_variableNames}) +# string(TOLOWER "${_variableName}" KEY) +# string(TOLOWER "${${_variableName}}" VALUE) +# string(FIND "${KEY}" "kwin" INDEX1) +# string(FIND "${VALUE}" "kwin" INDEX2) +# if (${INDEX1} GREATER -1 OR ${INDEX2} GREATER -1) +# message(STATUS "VARIABLE ${_variableName}=${${_variableName}}") +# endif () +#endforeach() diff --git a/cmake/qtversion.cmake b/cmake/qtversion.cmake index 41a5a47..3435a0c 100644 --- a/cmake/qtversion.cmake +++ b/cmake/qtversion.cmake @@ -1,15 +1,11 @@ -execute_process( - COMMAND sh -c "ldconfig -v 2>&1 | grep libkwin.so | rev | cut -d '.' -f -3 | rev" - OUTPUT_VARIABLE KWIN_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE -) -message("-- KWin Version: ${KWIN_VERSION}") +find_package(KF6 COMPONENTS ConfigWidgets) -set(KF_MIN_VERSION "5.78") -set(QT_MIN_VERSION "5.15") -set(QT_MAJOR_VERSION 5) - -if(KWIN_VERSION VERSION_GREATER "6") +if(KF6_FOUND) set(QT_MIN_VERSION "6.4.0") set(QT_MAJOR_VERSION 6) set(KF_MIN_VERSION 6) -endif() +else(KF6_FOUND) + set(QT_MIN_VERSION "5.15") + set(QT_MAJOR_VERSION 5) + set(KF_MIN_VERSION "5.78") +endif (KF6_FOUND)