Sfoglia il codice sorgente

package/python-pyqt5: manage qt optional dependencies

Explictly enable the needed pyqt5 modules depending on Qt5 options or
packages

QtQuick moodule can't be built without opengl support so enable only
when OpenGL is available

Fixes:
 - https://bugs.buildroot.org/show_bug.cgi?id=12121
 - http://autobuild.buildroot.org/results/cb69c5daa564aa9f3250faa395399cb00a445e85

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 2320dec34c87d28ab7ab3f445e3f6e429023f01f)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Fabrice Fontaine 6 anni fa
parent
commit
43f751efea
1 ha cambiato i file con 107 aggiunte e 1 eliminazioni
  1. 107 1
      package/python-pyqt5/python-pyqt5.mk

+ 107 - 1
package/python-pyqt5/python-pyqt5.mk

@@ -11,6 +11,14 @@ PYTHON_PYQT5_LICENSE = GPL-3.0
 PYTHON_PYQT5_LICENSE_FILES = LICENSE
 PYTHON_PYQT5_LICENSE_FILES = LICENSE
 
 
 PYTHON_PYQT5_DEPENDENCIES = python-sip host-python-sip qt5base
 PYTHON_PYQT5_DEPENDENCIES = python-sip host-python-sip qt5base
+PYTHON_PYQT5_MODULES = \
+	QtCore \
+	$(if $(BR2_PACKAGE_QT5BASE_DBUS),QtDBus) \
+	$(if $(BR2_PACKAGE_QT5BASE_GUI),QtGui) \
+	$(if $(BR2_PACKAGE_QT5BASE_NETWORK),QtNetwork) \
+	$(if $(BR2_PACKAGE_QT5BASE_OPENGL_LIB),QtOpenGL) \
+	$(if $(BR2_PACKAGE_QT5BASE_PRINTSUPPORT),QtPrintSupport) \
+	$(if $(BR2_PACKAGE_QT5BASE_XML),QtXml)
 
 
 ifeq ($(BR2_PACKAGE_PYTHON),y)
 ifeq ($(BR2_PACKAGE_PYTHON),y)
 PYTHON_PYQT5_PYTHON_DIR = python$(PYTHON_VERSION_MAJOR)
 PYTHON_PYQT5_PYTHON_DIR = python$(PYTHON_VERSION_MAJOR)
@@ -20,6 +28,103 @@ PYTHON_PYQT5_PYTHON_DIR = python$(PYTHON3_VERSION_MAJOR)
 PYTHON_PYQT5_RM_PORT_BASE = port_v2
 PYTHON_PYQT5_RM_PORT_BASE = port_v2
 endif
 endif
 
 
+ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
+PYTHON_PYQT5_MODULES += QtWidgets
+
+# QtSql needs QtWidgets
+ifeq ($(BR2_PACKAGE_QT5BASE_SQL),y)
+PYTHON_PYQT5_MODULES += QtSql
+endif
+
+# QtTest needs QtWidgets
+ifeq ($(BR2_PACKAGE_QT5BASE_TEST),y)
+PYTHON_PYQT5_MODULES += QtTest
+endif
+endif
+
+ifeq ($(BR2_PACKAGE_QT5CONNECTIVITY),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5connectivity
+PYTHON_PYQT5_MODULES += QtBluetooth QtNfc
+endif
+
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5declarative
+PYTHON_PYQT5_MODULES += QtQml
+
+# QtQuick module needs opengl
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5BASE_OPENGL_LIB),yy)
+PYTHON_PYQT5_MODULES += \
+	QtQuick \
+	$(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtQuickWidgets)
+endif
+endif
+
+ifeq ($(BR2_PACKAGE_QT5ENGINIO),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5enginio
+PYTHON_PYQT5_MODULES += Enginio
+endif
+
+ifeq ($(BR2_PACKAGE_QT5LOCATION),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5location
+PYTHON_PYQT5_MODULES += QtLocation QtPositioning
+endif
+
+ifeq ($(BR2_PACKAGE_QT5MULTIMEDIA),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5multimedia
+PYTHON_PYQT5_MODULES += \
+	QtMultimedia \
+	$(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtMultimediaWidgets)
+endif
+
+ifeq ($(BR2_PACKAGE_QT5SENSORS),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5sensors
+PYTHON_PYQT5_MODULES += QtSensors
+endif
+
+ifeq ($(BR2_PACKAGE_QT5SERIALPORT),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5serialport
+PYTHON_PYQT5_MODULES += QtSerialPort
+endif
+
+ifeq ($(BR2_PACKAGE_QT5SVG),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5svg
+PYTHON_PYQT5_MODULES += QtSvg
+endif
+
+ifeq ($(BR2_PACKAGE_QT5WEBCHANNEL),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5webchannel
+PYTHON_PYQT5_MODULES += QtWebChannel
+endif
+
+ifeq ($(BR2_PACKAGE_QT5WEBENGINE),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5webengine
+PYTHON_PYQT5_MODULES += \
+	QtWebEngineCore \
+	$(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtWebEngineWidgets)
+endif
+
+ifeq ($(BR2_PACKAGE_QT5WEBKIT),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5webkit
+PYTHON_PYQT5_MODULES += \
+	QtWebKit \
+	$(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtWebKitWidgets)
+endif
+
+ifeq ($(BR2_PACKAGE_QT5WEBSOCKETS),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5websockets
+PYTHON_PYQT5_MODULES += QtWebSockets
+endif
+
+ifeq ($(BR2_PACKAGE_QT5X11EXTRAS),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5x11extras
+PYTHON_PYQT5_MODULES += QtX11Extras
+endif
+
+ifeq ($(BR2_PACKAGE_QT5XMLPATTERNS),y)
+PYTHON_PYQT5_DEPENDENCIES += qt5xmlpatterns
+PYTHON_PYQT5_MODULES += QtXmlPatterns
+endif
+
 PYTHON_PYQT5_QTDETAIL_LICENSE = Open Source
 PYTHON_PYQT5_QTDETAIL_LICENSE = Open Source
 
 
 PYTHON_PYQT5_QTDETAIL_TYPE = shared
 PYTHON_PYQT5_QTDETAIL_TYPE = shared
@@ -52,7 +157,8 @@ PYTHON_PYQT5_CONF_OPTS = \
 	-w --confirm-license \
 	-w --confirm-license \
 	--no-designer-plugin \
 	--no-designer-plugin \
 	--no-docstrings \
 	--no-docstrings \
-	--no-sip-files
+	--no-sip-files \
+	$(foreach module,$(PYTHON_PYQT5_MODULES),--enable=$(module))
 
 
 define PYTHON_PYQT5_CONFIGURE_CMDS
 define PYTHON_PYQT5_CONFIGURE_CMDS
 	$(call PYTHON_PYQT5_GENERATE_QTDETAIL,$(@D))
 	$(call PYTHON_PYQT5_GENERATE_QTDETAIL,$(@D))