kinfocenter: check if drmIsKMS() is available

available since libdrm v2.4.105, for reference:
https://lore.kernel.org/amd-gfx/20210407142642.11485-1-leo.liu@amd.com/T/

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-12-02 03:15:13 +02:00
parent 045dee4615
commit 33cfcefcac
6 changed files with 33 additions and 14 deletions

View file

@ -3,10 +3,34 @@ include(CheckCXXSymbolExists)
include_directories( ${KDE4_INCLUDES} )
add_definitions( -DKDE_DEFAULT_DEBUG_AREA=1208 )
# info_fbsd.cpp
check_include_files(devinfo.h HAVE_DEVINFO_H)
# opengl.cpp
if(LIBDRM_FOUND)
cmake_reset_check_state()
set(CMAKE_REQUIRED_INCLUDES ${LIBDRM_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${LIBDRM_LIBRARIES})
check_symbol_exists(drmIsKMS "xf86drmMode.h" HAVE_DRMISKMS)
cmake_reset_check_state()
else()
set(HAVE_DRMISKMS FALSE)
endif()
configure_file (
config-infocenter.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/config-infocenter.h
)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
)
add_subdirectory( Categories )
add_subdirectory( Modules )
INCLUDE_DIRECTORIES( ToolTips )
include_directories(
ToolTips
)
set( kinfocenter_SRCS
infocenter.cpp

View file

@ -1,6 +0,0 @@
check_include_files(devinfo.h HAVE_DEVINFO_H) # info_fbsd.cpp
configure_file (
../base/config-infocenter.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/config-infocenter.h
)

View file

@ -1,7 +1,5 @@
# OS Base includes
include(../base/CMakeLists.txt)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../base
)

View file

@ -22,6 +22,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "config-infocenter.h" // HAVE_DRMISKMS
#include "opengl.h"
#include <KPluginFactory>
@ -219,7 +220,9 @@ static QTreeWidgetItem *print_drm_info(QTreeWidgetItem *l1, QTreeWidgetItem *aft
QString dri_description = QString::fromLatin1(driVer->desc, driVer->desc_len);
QString dri_version = QString::fromLatin1("%1.%2.%3").arg(driVer->version_major).arg(driVer->version_minor).arg(driVer->version_patchlevel);
QString dri_bus = QString::fromLatin1(driBus);
#ifdef HAVE_DRMISKMS
bool dri_kms = (drmIsKMS(driFd) == 1);
#endif
drmFreeBusid(driBus);
drmFreeVersion(driVer);
@ -231,7 +234,9 @@ static QTreeWidgetItem *print_drm_info(QTreeWidgetItem *l1, QTreeWidgetItem *aft
l3 = newItem(l2, l3, i18n("Description"), dri_description);
l3 = newItem(l2, l3, i18n("Version"), dri_version);
l3 = newItem(l2, l3, i18n("Bus"), dri_bus);
#ifdef HAVE_DRMISKMS
l3 = newItem(l2, l3, i18n("Kernel mode-setting"), dri_kms ? i18n("Yes") : i18n("No"));
#endif
}
#ifdef UNDEFINE_MAX3

View file

@ -1,7 +1,5 @@
# OS Base includes
include(../base/CMakeLists.txt)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../base
)

View file

@ -1,5 +1,5 @@
/* Defines if you have libdevinfo of Solaris 7 or later */
#undef HAVE_LIBDEVINFO_H
/* Define to 1 if you have the <devinfo.h> header file. */
#cmakedefine HAVE_DEVINFO_H 1
/* Defines if you have drmIsKMS() */
#cmakedefine HAVE_DRMISKMS 1