1
0
mirror of https://invent.kde.org/network/krfb synced 2024-07-08 12:05:49 +00:00
krfb/CMakeLists.txt
Oleg Chernovskiy d517bf8573 Implement GBM framebuffer for KWin wayland server
This commit creates a new plugin for KWin-on-Wayland integration. It is
independent from X11 and uses GBM and custom Wayland protocol to pass buffers
from KWin side to KRfb.

It also introduces mentioned components as an optional dependencies to
KRfb and is build only if all of them are present (which is highly
likely on a modern system)

- No support for input yet
- No support for multi-screen yet
- No support for resizing yet
2017-06-05 01:09:19 +03:00

109 lines
2.9 KiB
CMake

cmake_minimum_required(VERSION 2.8.12)
project(krfb)
include(FeatureSummary)
find_package(Qt5 REQUIRED COMPONENTS Core DBus Widgets X11Extras)
find_package(ECM 1.7.0 NO_MODULE REQUIRED)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(ECMInstallIcons)
include(ECMAddAppIcon)
find_package(KF5 REQUIRED COMPONENTS
I18n
Completion
Config
CoreAddons
Crash
DBusAddons
DNSSD
DocTools
Notifications
Wallet
WidgetsAddons
XmlGui
)
find_package(KF5Wayland CONFIG)
set_package_properties(KF5Wayland PROPERTIES DESCRIPTION "KDE Frameworks Wayland integration package"
URL "https://github.com/KDE/kwayland"
TYPE OPTIONAL
PURPOSE "Required for wayland integration with KWin server"
)
find_package(epoxy)
set_package_properties(epoxy PROPERTIES DESCRIPTION "libepoxy"
URL "http://github.com/anholt/libepoxy"
TYPE OPTIONAL
PURPOSE "OpenGL dispatch library for GBM backend"
)
find_package(Libdrm)
set_package_properties(Libdrm PROPERTIES DESCRIPTION "Libdrm"
TYPE OPTIONAL
PURPOSE "Required for GBM access to compositor buffers on Wayland"
)
set(HAVE_DRM FALSE)
if(KF5Wayland_FOUND AND Libdrm_FOUND AND epoxy_FOUND)
set(HAVE_DRM TRUE)
endif()
find_package(gbm)
set_package_properties(gbm PROPERTIES TYPE OPTIONAL PURPOSE "Required for egl ouput of drm backend.")
set(HAVE_GBM FALSE)
if(HAVE_DRM AND gbm_FOUND)
set(HAVE_GBM TRUE)
endif()
find_package(X11 REQUIRED)
if(WIN32)
set(CMAKE_REQUIRED_LIBRARIES ${KDEWIN32_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES ${KDEWIN32_INCLUDES})
endif(WIN32)
add_definitions(${QT_DEFINITIONS} ${QT_QTDBUS_DEFINITIONS})
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} )
set(CMAKE_MODULE_PATH
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
${CMAKE_MODULE_PATH}
)
find_package(LibVNCServer REQUIRED)
if (HAVE_XDAMAGE)
set(X11_Xdamage_FOUND 1)
else()
set(X11_Xdamage_FOUND 0)
endif()
if (HAVE_XSHM)
set(X11_XShm_FOUND 1)
else()
set(X11_XShm_FOUND 0)
endif()
include_directories ("${CMAKE_CURRENT_BINARY_DIR}/krfb"
"${CMAKE_CURRENT_SOURCE_DIR}/krfb"
"${CMAKE_CURRENT_SOURCE_DIR}/krfb/ui"
)
if(Q_WS_X11)
if(NOT X11_XTest_FOUND)
message(FATAL_ERROR "krfb requires the libXtst (http://xorg.freedesktop.org) to be built")
endif(NOT X11_XTest_FOUND)
endif(Q_WS_X11)
add_subdirectory(krfb)
add_subdirectory(framebuffers)
add_subdirectory(doc)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)