qt5base: add GUI support
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 7 Mar 2013 10:18:39 +0000 (10:18 +0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 10 Mar 2013 21:39:31 +0000 (22:39 +0100)
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/qt5/qt5base/Config.in
package/qt5/qt5base/qt5base.mk

index 4cd6ce0024bfae2cf6185c279aaa9fe1acd1e8e5..801ef6f60ecc59dd705e08639dfe9ff91dace211 100644 (file)
@@ -53,4 +53,48 @@ config BR2_PACKAGE_QT5BASE_XML
        help
          This options enables the Qt5Xml library.
 
+config BR2_PACKAGE_QT5BASE_GUI
+       bool "gui module"
+       # At least one graphic backend must be enabled, so enable
+       # linuxfb if nothing is enabled.
+       select BR2_PACKAGE_QT5BASE_LINUXFB if \
+              !BR2_PACKAGE_QT5BASE_DIRECTFB && \
+              !BR2_PACKAGE_QT5BASE_XCB
+       help
+         This option enables the Qt5Gui library.
+
+if BR2_PACKAGE_QT5BASE_GUI
+
+config BR2_PACKAGE_QT5BASE_WIDGETS
+       bool "widgets module"
+       help
+         This option enables the Qt5Widgets library.
+
+config BR2_PACKAGE_QT5BASE_LINUXFB
+       bool "linuxfb support"
+
+config BR2_PACKAGE_QT5BASE_DIRECTFB
+       bool "directfb support"
+       select BR2_PACKAGE_DIRECTFB
+
+config BR2_PACKAGE_QT5BASE_XCB
+       bool "X.org XCB support"
+       depends on BR2_PACKAGE_XORG7
+       select BR2_PACKAGE_LIBX11
+       select BR2_PACKAGE_LIBXCB
+       select BR2_PACKAGE_XCB_UTIL_IMAGE
+       select BR2_PACKAGE_XCB_UTIL_KEYSYMS
+       select BR2_PACKAGE_XCB_UTIL_WM
+
+comment "X.org XCB backend available if X.org is enabled"
+       depends on !BR2_PACKAGE_XORG7
+
+config BR2_PACKAGE_QT5BASE_PRINTSUPPORT
+       bool "print support module"
+       select BR2_PACKAGE_QT5BASE_WIDGETS
+       help
+         This option enables the Qt5PrintSupport
+
+endif
+
 endif
index fd85c4d292ae26045fd6117c598edb9daf8744cb..cad7b8dd6919a72fc18dac5325f56c96905b3289 100644 (file)
@@ -20,13 +20,8 @@ QT5BASE_INSTALL_STAGING = YES
 #    want to use the one packaged in Buildroot
 QT5BASE_CONFIGURE_OPTS += \
        -optimized-qmake \
-       -no-linuxfb \
-       -no-xcb \
-       -no-directfb \
        -no-eglfs \
        -no-kms \
-       -no-gui \
-       -no-widgets \
        -no-opengl \
        -no-glib \
        -no-cups \
@@ -61,6 +56,26 @@ QT5BASE_LICENSE = Commercial license
 QT5BASE_REDISTRIBUTE = NO
 endif
 
+# We have to use --enable-linuxfb, otherwise Qt thinks that -linuxfb
+# is to add a link against the "inuxfb" library.
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-gui,-no-gui)
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),-widgets,-no-widgets)
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_LINUXFB),--enable-linuxfb,-no-linuxfb)
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb)
+QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),directfb)
+
+ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
+QT5BASE_CONFIGURE_OPTS += -xcb
+QT5BASE_DEPENDENCIES   += \
+       libxcb \
+       xcb-util-wm \
+       xcb-util-image \
+       xcb-util-keysyms \
+       xlib_libX11
+else
+QT5BASE_CONFIGURE_OPTS += -no-xcb
+endif
+
 # Build the list of libraries to be installed on the target
 QT5BASE_INSTALL_LIBS_y                                 += Qt5Core
 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_NETWORK)    += Qt5Network
@@ -69,6 +84,10 @@ QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_SQL)        += Qt5Sql
 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_TEST)       += Qt5Test
 QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_XML)        += Qt5Xml
 
+QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_GUI)          += Qt5Gui
+QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_WIDGETS)      += Qt5Widgets
+QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport
+
 # Ideally, we could use -device-option to substitute variable values
 # in our linux-buildroot-g++/qmake.config, but this mechanism doesn't
 # nicely support variable values that contain spaces. So we use the