From eb6989527d02fa72310d56b9d91e8f334919e9d8 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Mon, 20 Jan 2025 20:06:43 +0100 Subject: [PATCH] Add support for libproc2 version 4.0.5 --- CMakeLists.txt | 7 ++++++- lib/linux/advanced-scene-switcher-nix.cpp | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aed79fc6..fa74144f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -413,7 +413,12 @@ else() set(PROCESS_CONDITION_SUPPORTED 1) endif() if(PROCPS2_INCLUDE_DIR) - message(STATUS "${PROJECT_NAME} using libproc2") + find_package(PkgConfig REQUIRED) + pkg_check_modules(libproc2 IMPORTED_TARGET libproc2<4.0.5 QUIET) + if(libproc2_FOUND) + target_compile_definitions(${LIB_NAME} PRIVATE PROCPS2_USE_INFO) + endif() + pkg_check_modules(libproc2 REQUIRED IMPORTED_TARGET libproc2) set(PROC_INCLUDE_DIR "${PROCPS2_INCLUDE_DIR}") target_compile_definitions(${LIB_NAME} PRIVATE PROCPS2_AVAILABLE) set(PROCESS_CONDITION_SUPPORTED 1) diff --git a/lib/linux/advanced-scene-switcher-nix.cpp b/lib/linux/advanced-scene-switcher-nix.cpp index 68abe804..d9f7ef40 100644 --- a/lib/linux/advanced-scene-switcher-nix.cpp +++ b/lib/linux/advanced-scene-switcher-nix.cpp @@ -384,7 +384,11 @@ static void getProcessListProcps2(QStringList &processes) return; } while ((stack = procps_pids_get_(info, PIDS_FETCH_TASKS_ONLY))) { +#ifdef PROCPS2_USE_INFO auto cmd = PIDS_VAL(0, str, stack, info); +#else + auto cmd = PIDS_VAL(0, str, stack); +#endif QString procName(cmd); if (!procName.isEmpty() && !processes.contains(procName)) { processes << procName;