Skip to content

Commit

Permalink
Use find_package function to find the KF version
Browse files Browse the repository at this point in the history
  • Loading branch information
matinlotfali committed Aug 10, 2024
1 parent 37d44f6 commit aa807a6
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 18 deletions.
14 changes: 9 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -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)
Expand Down
18 changes: 16 additions & 2 deletions cmake/info.cmake
Original file line number Diff line number Diff line change
@@ -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")
Expand All @@ -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}")
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()
18 changes: 7 additions & 11 deletions cmake/qtversion.cmake
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit aa807a6

Please sign in to comment.