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;