From 309f96ccb6a1e3e1c235148e04497c82b3d61390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Tue, 24 Sep 2019 11:35:56 +0200 Subject: Add CMake support for directfb plug-in Change-Id: I126545e1da54018ce081b42a29e62ca30ee04d64 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor --- cmake/FindDirectFB.cmake | 7 +++ src/gui/configure.cmake | 3 +- src/plugins/platforms/CMakeLists.txt | 2 +- src/plugins/platforms/directfb/CMakeLists.txt | 72 +++++++++++++++++++++++++++ util/cmake/helper.py | 1 + 5 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 cmake/FindDirectFB.cmake create mode 100644 src/plugins/platforms/directfb/CMakeLists.txt diff --git a/cmake/FindDirectFB.cmake b/cmake/FindDirectFB.cmake new file mode 100644 index 0000000000..4446018587 --- /dev/null +++ b/cmake/FindDirectFB.cmake @@ -0,0 +1,7 @@ +find_package(PkgConfig) + +pkg_check_modules(DirectFB directfb IMPORTED_TARGET) + +if (NOT TARGET PkgConfig::DirectFB) + set(DirectFB_FOUND 0) +endif() diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake index ea35cb6887..d01a3fdfa6 100644 --- a/src/gui/configure.cmake +++ b/src/gui/configure.cmake @@ -27,6 +27,7 @@ set_property(CACHE INPUT_xcb PROPERTY STRINGS undefined no yes qt system) #### Libraries qt_find_package(ATSPI2 PROVIDED_TARGETS PkgConfig::ATSPI2) +qt_find_package(DirectFB PROVIDED_TARGETS PkgConfig::DirectFB) qt_find_package(Libdrm PROVIDED_TARGETS Libdrm::Libdrm) qt_find_package(EGL PROVIDED_TARGETS EGL::EGL) qt_find_package(WrapFreetype PROVIDED_TARGETS WrapFreetype::WrapFreetype) @@ -499,7 +500,7 @@ qt_feature("directfb" PRIVATE SECTION "Platform plugins" LABEL "DirectFB" AUTODETECT OFF - CONDITION libs.directfb OR FIXME + CONDITION DirectFB_FOUND ) qt_feature("directwrite" PRIVATE LABEL "DirectWrite" diff --git a/src/plugins/platforms/CMakeLists.txt b/src/plugins/platforms/CMakeLists.txt index fc743c955f..7f375efb96 100644 --- a/src/plugins/platforms/CMakeLists.txt +++ b/src/plugins/platforms/CMakeLists.txt @@ -44,7 +44,7 @@ if(QT_FEATURE_eglfs) endif() if(QT_FEATURE_directfb) -# TODO add_subdirectory(directfb) + add_subdirectory(directfb) endif() if(QT_FEATURE_linuxfb) diff --git a/src/plugins/platforms/directfb/CMakeLists.txt b/src/plugins/platforms/directfb/CMakeLists.txt new file mode 100644 index 0000000000..5f97151d0e --- /dev/null +++ b/src/plugins/platforms/directfb/CMakeLists.txt @@ -0,0 +1,72 @@ +# Generated from directfb.pro. + +# begin special case: +qt_find_package(DirectFB) +# end special case: + +##################################################################### +## qdirectfb Plugin: +##################################################################### + +add_qt_plugin(qdirectfb + TYPE platforms + CLASS_NAME QDirectFbIntegrationPlugin + SOURCES + main.cpp + qdirectfbbackingstore.cpp qdirectfbbackingstore.h + qdirectfbblitter.cpp qdirectfbblitter.h + qdirectfbconvenience.cpp qdirectfbconvenience.h + qdirectfbcursor.cpp qdirectfbcursor.h + qdirectfbeglhooks.h + qdirectfbinput.cpp qdirectfbinput.h + qdirectfbintegration.cpp qdirectfbintegration.h + qdirectfbscreen.cpp qdirectfbscreen.h + qdirectfbwindow.cpp qdirectfbwindow.h + LIBRARIES + Qt::CorePrivate + Qt::EventDispatcherSupportPrivate + Qt::FontDatabaseSupportPrivate + Qt::GuiPrivate + Qt::ServiceSupportPrivate + PUBLIC_LIBRARIES + Qt::Core + Qt::EventDispatcherSupport + Qt::FontDatabaseSupport + Qt::Gui + Qt::ServiceSupport + PkgConfig::DirectFB # special case +) + +#### Keys ignored in scope 1:.:.:directfb.pro:: +# OTHER_FILES = "directfb.json" +# _LOADED = "qt_plugin" + +## Scopes: +##################################################################### + +extend_target(qdirectfb CONDITION QT_CONFIG___contains___directfb_egl + SOURCES + qdirectfb_egl.cpp qdirectfb_egl.h + DEFINES + DIRECTFB_GL_EGL + LIBRARIES + Qt::EglSupportPrivate + PUBLIC_LIBRARIES + Qt::EglSupport +) + +extend_target(qdirectfb CONDITION NOT DIRECTFB_PLATFORM_HOOKS_SOURCES_ISEMPTY + DEFINES + DIRECTFB_PLATFORM_HOOKS +) + +#### Keys ignored in scope 3:.:.:directfb.pro:NOT DIRECTFB_PLATFORM_HOOKS_SOURCES_ISEMPTY: +# QMAKE_LIBDIR = "$$DIRECTFB_PLATFORM_HOOKS_LIBDIR" + +extend_target(qdirectfb CONDITION DIRECTFB_PLATFORM_HOOKS_SOURCES_ISEMPTY + SOURCES + qdirectfbeglhooks_stub.cpp +) + +#### Keys ignored in scope 5:.:.:directfb.pro:NOT TARGET___equals____ss_QT_DEFAULT_QPA_PLUGIN: +# PLUGIN_EXTENDS = "-" diff --git a/util/cmake/helper.py b/util/cmake/helper.py index 54b6f815a2..802b674316 100644 --- a/util/cmake/helper.py +++ b/util/cmake/helper.py @@ -352,6 +352,7 @@ _library_map = [ LibraryMapping("bluez", "BlueZ", "PkgConfig::BlueZ"), LibraryMapping("corewlan", None, None), LibraryMapping("cups", "Cups", "Cups::Cups"), + LibraryMapping("directfb", "DirectFB", "PkgConfig::DirectFB"), LibraryMapping("db2", "DB2", "DB2::DB2"), LibraryMapping("dbus", "WrapDBus1", "dbus-1", resultVariable="DBus1"), LibraryMapping("doubleconversion", None, None), -- cgit v1.2.3