[neon/forks/pyqt-builder/Neon/release] /: New upstream version 1.11.0+dfsg
Dmitry Shachnev
null at kde.org
Mon Oct 18 17:21:13 BST 2021
Git commit 521af1f7008909aa04e10276b67c33514fff070d by Dmitry Shachnev.
Committed on 03/10/2021 at 18:59.
Pushed by jriddell into branch 'Neon/release'.
New upstream version 1.11.0+dfsg
M +86 -1 ChangeLog
M +4 -0 NEWS
M +56 -51 PKG-INFO
M +56 -51 PyQt_builder.egg-info/PKG-INFO
M +2 -1 PyQt_builder.egg-info/SOURCES.txt
M +4 -2 pyqtbuild/builder.py
M +1 -0 pyqtbuild/bundle/packages/__init__.py
M +6 -0 pyqtbuild/bundle/packages/pyqt.py
M +64 -46 pyqtbuild/bundle/packages/pyqt6.py
A +64 -0 pyqtbuild/bundle/packages/pyqt6_webengine.py
M +42 -22 pyqtbuild/bundle/qt_metadata.py
M +7 -1 pyqtbuild/bundle/verbose.py
M +2 -2 pyqtbuild/version.py
https://invent.kde.org/neon/forks/pyqt-builder/commit/521af1f7008909aa04e10276b67c33514fff070d
diff --git a/ChangeLog b/ChangeLog
index 704b2b6..828e07f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,93 @@
+2021-09-25 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, pyqtbuild/bundle/packages/pyqt6_webengine.py:
+ Fixed a native path inconsistency.
+ [128fd244a822] [1.11.0]
+
+2021-09-22 Phil Thompson <phil at riverbankcomputing.com>
+
+ * pyqtbuild/bundle/packages/pyqt6.py:
+ Enable QtBluetooth and QtNfc.
+ [a67741107958]
+
+ * NEWS, pyqtbuild/bundle/packages/pyqt6.py:
+ Added support for bundling QAxContainer.
+ [d30022bc29ee]
+
+2021-09-21 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, pyqtbuild/bundle/packages/pyqt6_webengine.py:
+ Fixed the PyQt6-WebEngine-Qt wheel so that QtWebEngineProcess can
+ find its resources on Windows.
+ [59e15a25db3d]
+
+2021-09-19 Phil Thompson <phil at riverbankcomputing.com>
+
+ * pyqtbuild/bundle/qt_metadata.py:
+ Fixes for Python v3.6.
+ [c0ad44be7b76]
+
+ * NEWS, pyqtbuild/bundle/qt_metadata.py, pyqtbuild/bundle/verbose.py:
+ Qt libraries have the arm64 code removed when bundling or creating
+ Qt wheels.
+ [7b6bfb3c29d4]
+
+2021-09-18 Phil Thompson <phil at riverbankcomputing.com>
+
+ * pyqtbuild/bundle/packages/pyqt.py:
+ Don't bundle the OpenSSL libraries for Qt v6.2.0 and later.
+ [eb435cbe95e9]
+
+ * NEWS, pyqtbuild/bundle/qt_metadata.py:
+ Fixed the bundling of non-debug DLLs that end with a 'd' (ie. the
+ TLS plugins).
+ [533def3bd075]
+
+2021-09-15 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, pyqtbuild/builder.py:
+ Fixes for MinGW support.
+ [24f5bfc4de7a]
+
+2021-08-25 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, pyqtbuild/bundle/packages/__init__.py,
+ pyqtbuild/bundle/packages/pyqt6_webengine.py:
+ Added support for PyQt6-WebEngine.
+ [1075fbb452ce]
+
+2021-08-02 Phil Thompson <phil at riverbankcomputing.com>
+
+ * pyqtbuild/bundle/packages/pyqt6.py:
+ More Qt metadata fixes.
+ [517e02292b51]
+
+ * pyqtbuild/bundle/packages/pyqt6.py:
+ Further updates to the Qt metadata for Qt v6.2.0beta2.
+ [eaa269cc0b01]
+
+2021-08-01 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, pyqtbuild/bundle/packages/pyqt6.py:
+ Updated the Qt metadata for v6.2.0.
+ [8aa4f13e15fb]
+
+2021-07-16 Phil Thompson <phil at riverbankcomputing.com>
+
+ * NEWS, pyqtbuild/bundle/packages/pyqt6.py:
+ Fixed the changed Qt library names in v6.2.0.
+ [e1ac73ff29ce]
+
+2021-07-12 Phil Thompson <phil at riverbankcomputing.com>
+
+ * Merged the 1.10-maint branch.
+ [9ca728c89b53]
+
2021-07-04 Phil Thompson <phil at riverbankcomputing.com>
* .hgtags:
Added tag 1.10.3 for changeset a5437106d445
- [8b4126f4e0c2] [tip] <1.10-maint>
+ [8b4126f4e0c2] <1.10-maint>
* NEWS, pyqtbuild/bundle/qt_wheel.py:
Handle the change in the name of the Qt architecture for macOS in Qt
diff --git a/NEWS b/NEWS
index 0689340..880f0b5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+v1.11.0 25th September 2021
+ - Added support for bundling Qt v6.2.
+ - Added support for PyQt6-WebEngine to pyqt-bundle.
+
v1.10.3 4th July 2021
- A bug fix release.
diff --git a/PKG-INFO b/PKG-INFO
index 1080c53..6cfc961 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,61 +1,66 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
Name: PyQt-builder
-Version: 1.10.3
+Version: 1.11.0
Summary: The PEP 517 compliant PyQt build system
Home-page: https://www.riverbankcomputing.com/software/pyqt-builder/
Author: Riverbank Computing Limited
Author-email: info at riverbankcomputing.com
License: SIP
-Description: PyQt-builder - The PEP 517 Compliant PyQt Build System
- ======================================================
-
- What is PyQt-builder?
- ---------------------
-
- PyQt-builder is the PEP 517 compliant build system for PyQt and projects that
- extend PyQt. It extends the SIP build system and uses Qt's ``qmake`` to
- perform the actual compilation and installation of extension modules.
-
- Projects that use PyQt-builder provide an appropriate ``pyproject.toml`` file
- and an optional ``project.py`` script. Any PEP 517 compliant frontend, for
- example ``sip-install`` or ``pip`` can then be used to build and install the
- project.
-
-
- Author
- ------
-
- PyQt-builder is copyright (c) Riverbank Computing Limited. Its homepage is
- https://www.riverbankcomputing.com/software/pyqt-builder/.
-
- Support may be obtained from the PyQt mailing list at
- https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
-
-
- License
- -------
-
- PyQt-builder is released under the same licenses as SIP.
-
-
- Installation
- ------------
-
- PyQt-builder can be installed from PyPI::
-
- pip install PyQt-builder
-
- However you do not normally need to explicitly install it. It will be
- installed automatically when it is needed.
-
-
- Documentation
- -------------
-
- The documentation for the latest release can be found
- `here <https://www.riverbankcomputing.com/static/Docs/PyQt-builder/>`__.
-
Platform: X11
Platform: macOS
Platform: Windows
Requires-Python: >=3.5
+License-File: LICENSE
+License-File: LICENSE-GPL3
+License-File: LICENSE-GPL2
+
+PyQt-builder - The PEP 517 Compliant PyQt Build System
+======================================================
+
+What is PyQt-builder?
+---------------------
+
+PyQt-builder is the PEP 517 compliant build system for PyQt and projects that
+extend PyQt. It extends the SIP build system and uses Qt's ``qmake`` to
+perform the actual compilation and installation of extension modules.
+
+Projects that use PyQt-builder provide an appropriate ``pyproject.toml`` file
+and an optional ``project.py`` script. Any PEP 517 compliant frontend, for
+example ``sip-install`` or ``pip`` can then be used to build and install the
+project.
+
+
+Author
+------
+
+PyQt-builder is copyright (c) Riverbank Computing Limited. Its homepage is
+https://www.riverbankcomputing.com/software/pyqt-builder/.
+
+Support may be obtained from the PyQt mailing list at
+https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
+
+
+License
+-------
+
+PyQt-builder is released under the same licenses as SIP.
+
+
+Installation
+------------
+
+PyQt-builder can be installed from PyPI::
+
+ pip install PyQt-builder
+
+However you do not normally need to explicitly install it. It will be
+installed automatically when it is needed.
+
+
+Documentation
+-------------
+
+The documentation for the latest release can be found
+`here <https://www.riverbankcomputing.com/static/Docs/PyQt-builder/>`__.
+
+
diff --git a/PyQt_builder.egg-info/PKG-INFO b/PyQt_builder.egg-info/PKG-INFO
index 1080c53..6cfc961 100644
--- a/PyQt_builder.egg-info/PKG-INFO
+++ b/PyQt_builder.egg-info/PKG-INFO
@@ -1,61 +1,66 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
Name: PyQt-builder
-Version: 1.10.3
+Version: 1.11.0
Summary: The PEP 517 compliant PyQt build system
Home-page: https://www.riverbankcomputing.com/software/pyqt-builder/
Author: Riverbank Computing Limited
Author-email: info at riverbankcomputing.com
License: SIP
-Description: PyQt-builder - The PEP 517 Compliant PyQt Build System
- ======================================================
-
- What is PyQt-builder?
- ---------------------
-
- PyQt-builder is the PEP 517 compliant build system for PyQt and projects that
- extend PyQt. It extends the SIP build system and uses Qt's ``qmake`` to
- perform the actual compilation and installation of extension modules.
-
- Projects that use PyQt-builder provide an appropriate ``pyproject.toml`` file
- and an optional ``project.py`` script. Any PEP 517 compliant frontend, for
- example ``sip-install`` or ``pip`` can then be used to build and install the
- project.
-
-
- Author
- ------
-
- PyQt-builder is copyright (c) Riverbank Computing Limited. Its homepage is
- https://www.riverbankcomputing.com/software/pyqt-builder/.
-
- Support may be obtained from the PyQt mailing list at
- https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
-
-
- License
- -------
-
- PyQt-builder is released under the same licenses as SIP.
-
-
- Installation
- ------------
-
- PyQt-builder can be installed from PyPI::
-
- pip install PyQt-builder
-
- However you do not normally need to explicitly install it. It will be
- installed automatically when it is needed.
-
-
- Documentation
- -------------
-
- The documentation for the latest release can be found
- `here <https://www.riverbankcomputing.com/static/Docs/PyQt-builder/>`__.
-
Platform: X11
Platform: macOS
Platform: Windows
Requires-Python: >=3.5
+License-File: LICENSE
+License-File: LICENSE-GPL3
+License-File: LICENSE-GPL2
+
+PyQt-builder - The PEP 517 Compliant PyQt Build System
+======================================================
+
+What is PyQt-builder?
+---------------------
+
+PyQt-builder is the PEP 517 compliant build system for PyQt and projects that
+extend PyQt. It extends the SIP build system and uses Qt's ``qmake`` to
+perform the actual compilation and installation of extension modules.
+
+Projects that use PyQt-builder provide an appropriate ``pyproject.toml`` file
+and an optional ``project.py`` script. Any PEP 517 compliant frontend, for
+example ``sip-install`` or ``pip`` can then be used to build and install the
+project.
+
+
+Author
+------
+
+PyQt-builder is copyright (c) Riverbank Computing Limited. Its homepage is
+https://www.riverbankcomputing.com/software/pyqt-builder/.
+
+Support may be obtained from the PyQt mailing list at
+https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
+
+
+License
+-------
+
+PyQt-builder is released under the same licenses as SIP.
+
+
+Installation
+------------
+
+PyQt-builder can be installed from PyPI::
+
+ pip install PyQt-builder
+
+However you do not normally need to explicitly install it. It will be
+installed automatically when it is needed.
+
+
+Documentation
+-------------
+
+The documentation for the latest release can be found
+`here <https://www.riverbankcomputing.com/static/Docs/PyQt-builder/>`__.
+
+
diff --git a/PyQt_builder.egg-info/SOURCES.txt b/PyQt_builder.egg-info/SOURCES.txt
index bae1181..d816489 100644
--- a/PyQt_builder.egg-info/SOURCES.txt
+++ b/PyQt_builder.egg-info/SOURCES.txt
@@ -59,7 +59,7 @@ doc/html/_static/pygments.css
doc/html/_static/riverbank.css
doc/html/_static/searchtools.js
doc/html/_static/sidebar.js
-doc/html/_static/underscore-1.13.1.js
+doc/html/_static/underscore-1.3.1.js
doc/html/_static/underscore.js
doc/riverbank/layout.html
doc/riverbank/theme.conf
@@ -109,6 +109,7 @@ pyqtbuild/bundle/packages/pyqt6_3d.py
pyqtbuild/bundle/packages/pyqt6_charts.py
pyqtbuild/bundle/packages/pyqt6_datavisualization.py
pyqtbuild/bundle/packages/pyqt6_networkauth.py
+pyqtbuild/bundle/packages/pyqt6_webengine.py
pyqtbuild/bundle/packages/pyqtchart.py
pyqtbuild/bundle/packages/pyqtdatavisualization.py
pyqtbuild/bundle/packages/pyqtnetworkauth.py
diff --git a/pyqtbuild/builder.py b/pyqtbuild/builder.py
index 105a6e4..ad9275e 100644
--- a/pyqtbuild/builder.py
+++ b/pyqtbuild/builder.py
@@ -103,6 +103,8 @@ class QmakeBuilder(Builder):
py_platform = 'wasm'
elif 'win32' in xspec:
py_platform = 'win32'
+ elif 'mingw-w64' in xspec:
+ py_platform = 'win32'
else:
# Treat everything else as Linux.
py_platform = 'linux'
@@ -336,8 +338,8 @@ class QmakeBuilder(Builder):
""" Return the name of a valid make program. """
if self.project.py_platform == 'win32':
- if self.spec == 'win32-g++':
- make = 'mingw32-make'
+ if 'g++' in self.spec:
+ make = 'make'
else:
make = 'nmake'
else:
diff --git a/pyqtbuild/bundle/packages/__init__.py b/pyqtbuild/bundle/packages/__init__.py
index fa96fae..5154cea 100644
--- a/pyqtbuild/bundle/packages/__init__.py
+++ b/pyqtbuild/bundle/packages/__init__.py
@@ -28,6 +28,7 @@ from .pyqt6_3d import PyQt6_3D
from .pyqt6_charts import PyQt6_Charts
from .pyqt6_datavisualization import PyQt6_DataVisualization
from .pyqt6_networkauth import PyQt6_NetworkAuth
+from .pyqt6_webengine import PyQt6_WebEngine
from .pyqt5 import PyQt5
from .pyqt3d import PyQt3D
diff --git a/pyqtbuild/bundle/packages/pyqt.py b/pyqtbuild/bundle/packages/pyqt.py
index 1c63675..d5dddcd 100644
--- a/pyqtbuild/bundle/packages/pyqt.py
+++ b/pyqtbuild/bundle/packages/pyqt.py
@@ -48,6 +48,12 @@ class PyQt(AbstractPackage):
def bundle_openssl(self, target_qt_dir, openssl_dir, arch):
""" Bundle the OpenSSL DLLs. """
+ # Qt v6.2.0 and later include appropriate backends.
+ if self.qt_version >= (6, 2, 0):
+ verbose(
+ "OpenSSL libraries are not required for Qt v6.2.0 and later")
+ return
+
if openssl_dir:
verbose(
"Bundling the OpenSSL libraries from '{0}'".format(
diff --git a/pyqtbuild/bundle/packages/pyqt6.py b/pyqtbuild/bundle/packages/pyqt6.py
index b331d13..32b42d8 100644
--- a/pyqtbuild/bundle/packages/pyqt6.py
+++ b/pyqtbuild/bundle/packages/pyqt6.py
@@ -29,28 +29,28 @@ from .pyqt import PyQt
# The Qt meta-data for this package.
_QT_METADATA = {
- #'QAxContainer':
- # VersionedMetadata(dll=False),
+ 'QAxContainer':
+ VersionedMetadata(dll=False),
- #'QtBluetooth':
- # VersionedMetadata(
- # lib_deps={
- # 'linux': ('QtConcurrent', ),
- # 'macos': ('QtConcurrent', )},
- # qml=True),
+ 'QtBluetooth':
+ VersionedMetadata(version=(6, 2, 0), qml=True),
- 'QtCore':
- VersionedMetadata(
+ 'QtCore': (
+ VersionedMetadata(version=(6, 2, 0),
other_lib_deps={
'linux': ('libicui18n.so.56', 'libicuuc.so.56',
'libicudata.so.56')},
- translations=('qt_help', 'qtbase', 'qtdeclarative',
- 'qtquickcontrols2', 'qt_'),
- #translations=('qt_help', 'qtbase', 'qtconnectivity',
- # 'qtdeclarative', 'qtlocation', 'qtmultimedia',
- # 'qtquickcontrols2', 'qtserialport', 'qtwebsockets',
- # 'qtxmlpatterns', 'qt_'),
+ translations=('qt_', 'qt_help', 'qtbase', 'qtdeclarative',
+ 'qtlocation', 'qtmultimedia', 'qtquickcontrols2',
+ 'qtserialport', 'qtwebsockets'),
excluded_plugins=('designer', 'qmltooling')),
+ VersionedMetadata(
+ other_lib_deps={
+ 'linux': ('libicui18n.so.56', 'libicuuc.so.56',
+ 'libicudata.so.56')},
+ translations=('qt_', 'qt_help', 'qtbase', 'qtdeclarative',
+ 'qtquickcontrols2'),
+ excluded_plugins=('designer', 'qmltooling'))),
'QtDBus':
VersionedMetadata(),
@@ -58,32 +58,34 @@ _QT_METADATA = {
'QtDesigner':
VersionedMetadata(),
- 'QtGui':
- VersionedMetadata(lib_deps={'linux': ('QtWaylandClient', 'QtXcbQpa')},
+ 'QtGui': (
+ VersionedMetadata(version=(6, 2, 0),
+ lib_deps={'linux': ('QtWaylandClient', 'QtXcbQpa')},
other_lib_deps={
'win': ('d3dcompiler_47.dll', 'opengl32sw.dll')}),
+ VersionedMetadata(lib_deps={'linux': ('QtWaylandClient', 'QtXcbQpa')},
+ other_lib_deps={
+ 'win': ('d3dcompiler_47.dll', 'opengl32sw.dll')})),
'QtHelp':
VersionedMetadata(),
#'QtLocation':
- # VersionedMetadata(
- # lib_deps={'': ('QtPositioningQuick', )},
- # qml=True),
+ # VersionedMetadata(qml=True),
- #'QtMultimedia':
- # VersionedMetadata(
- # lib_deps={'linux': ('QtMultimediaGstTools', )},
- # qml=True, qml_names=('QtAudioEngine', 'QtMultimedia')),
+ 'QtMultimedia':
+ VersionedMetadata(version=(6, 2, 0),
+ lib_deps={'': ('QtMultimediaQuick', )},
+ qml=True),
- #'QtMultimediaWidgets':
- # VersionedMetadata(),
+ 'QtMultimediaWidgets':
+ VersionedMetadata(version=(6, 2, 0)),
'QtNetwork':
VersionedMetadata(),
- #'QtNfc':
- # VersionedMetadata(qml=True),
+ 'QtNfc':
+ VersionedMetadata(version=(6, 2, 0), qml=True),
'QtOpenGL':
VersionedMetadata(),
@@ -91,8 +93,10 @@ _QT_METADATA = {
'QtOpenGLWidgets':
VersionedMetadata(),
- #'QtPositioning':
- # VersionedMetadata(qml=True),
+ 'QtPositioning':
+ VersionedMetadata(version=(6, 2, 0),
+ lib_deps={'': ('QtPositioningQuick', )},
+ qml=True),
'QtPrintSupport':
VersionedMetadata(),
@@ -102,19 +106,29 @@ _QT_METADATA = {
lib_deps={'': ('QtQmlModels', 'QtQmlWorkerScript')},
qml=True),
- 'QtQuick':
+ 'QtQuick': (
+ VersionedMetadata(version=(6, 2, 0),
+ lib_deps={'': ('QtQuickControls2', 'QtQuickControls2Impl',
+ 'QtQuickDialogs2', 'QtQuickDialogs2QuickImpl',
+ 'QtQuickDialogs2Utils', 'QtQuickLayouts',
+ 'QtQuickParticles', 'QtQuickShapes',
+ 'QtQuickTemplates2', 'QtQuickTest',
+ 'QtQuickTimeline')},
+ qml=True),
VersionedMetadata(
lib_deps={'': ('QtQuickControls2', 'QtQuickControls2Impl',
'QtQuickLayouts', 'QtQuickParticles', 'QtQuickShapes',
'QtQuickTemplates2', 'QtQuickTest')},
- qml=True),
+ qml=True)),
'QtQuick3D': (
VersionedMetadata(version=(6, 1, 0),
lib_deps={
- '': ('QtQuick3DAssetImport', 'QtQuick3DIblBaker',
- 'QtQuick3DParticles', 'QtQuick3DRuntimeRender',
- 'QtQuick3DUtils', 'QtShaderTools')},
+ '': ('QtQuick3DAssetImport', 'QtQuick3DAssetUtils',
+ 'QtQuick3DEffects', 'QtQuick3DHelpers',
+ 'QtQuick3DIblBaker', 'QtQuick3DParticles',
+ 'QtQuick3DRuntimeRender', 'QtQuick3DUtils',
+ 'QtShaderTools')},
qml=True),
VersionedMetadata(
lib_deps={
@@ -125,14 +139,18 @@ _QT_METADATA = {
'QtQuickWidgets':
VersionedMetadata(),
- #'QtRemoteObjects':
- # VersionedMetadata(qml=True),
+ 'QtRemoteObjects':
+ VersionedMetadata(version=(6, 2, 0),
+ lib_deps={'': ('QtRemoteObjectsQml', )},
+ qml=True),
- #'QtSensors':
- # VersionedMetadata(qml=True),
+ 'QtSensors':
+ VersionedMetadata(version=(6, 2, 0),
+ lib_deps={'': ('QtSensorsQuick', )},
+ qml=True),
- #'QtSerialPort':
- # VersionedMetadata(),
+ 'QtSerialPort':
+ VersionedMetadata(version=(6, 2, 0)),
'QtSql':
VersionedMetadata(),
@@ -149,11 +167,11 @@ _QT_METADATA = {
#'QtTextToSpeech':
# VersionedMetadata(),
- #'QtWebChannel':
- # VersionedMetadata(qml=True),
+ 'QtWebChannel':
+ VersionedMetadata(version=(6, 2, 0), qml=True),
- #'QtWebSockets':
- # VersionedMetadata(qml=True),
+ 'QtWebSockets':
+ VersionedMetadata(version=(6, 2, 0), qml=True),
'QtWidgets':
VersionedMetadata(),
diff --git a/pyqtbuild/bundle/packages/pyqt6_webengine.py b/pyqtbuild/bundle/packages/pyqt6_webengine.py
new file mode 100755
index 0000000..d7327a9
--- /dev/null
+++ b/pyqtbuild/bundle/packages/pyqt6_webengine.py
@@ -0,0 +1,64 @@
+# Copyright (c) 2021, Riverbank Computing Limited
+# All rights reserved.
+#
+# This copy of PyQt-builder is licensed for use under the terms of the SIP
+# License Agreement. See the file LICENSE for more details.
+#
+# This copy of PyQt-builder may also used under the terms of the GNU General
+# Public License v2 or v3 as published by the Free Software Foundation which
+# can be found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this
+# package.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+
+from ..abstract_package import AbstractPackage
+from ..qt_metadata import VersionedMetadata
+
+
+# The Qt meta-data for this package.
+_QT_METADATA = {
+ 'QtWebEngineCore':
+ VersionedMetadata(version=(6, 2, 0),
+ other_lib_deps={
+ 'macos': ('QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/Info.plist', )},
+ exes={
+ 'linux': ('libexec/QtWebEngineProcess', ),
+ 'macos': ('lib/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess', ),
+ 'win': ('bin\\QtWebEngineProcess.exe', )},
+ files={
+ 'win': (('lib\\Qt6Core.lib',
+ "Enable QtWebEngineProcess to find it's resources.\n"), )},
+ others={
+ 'linux': ('resources', 'translations/qtwebengine_locales'),
+ 'win': ('resources', 'translations\\qtwebengine_locales')}),
+
+ 'QtWebEngineQuick':
+ VersionedMetadata(version=(6, 2, 0),
+ lib_deps={'': ('QtWebEngineQuickDelegatesQml', )},
+ qml=True, qml_names=['QtWebEngine']),
+
+ 'QtWebEngineWidgets':
+ VersionedMetadata(version=(6, 2, 0)),
+}
+
+
+class PyQt6_WebEngine(AbstractPackage):
+ """ The PyQt6-WebEngine package. """
+
+ def get_qt_metadata(self):
+ """ Return the package-specific meta-data describing the parts of Qt to
+ install.
+ """
+
+ return _QT_METADATA
diff --git a/pyqtbuild/bundle/qt_metadata.py b/pyqtbuild/bundle/qt_metadata.py
index f337e2a..13cf3b3 100644
--- a/pyqtbuild/bundle/qt_metadata.py
+++ b/pyqtbuild/bundle/qt_metadata.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020, Riverbank Computing Limited
+# Copyright (c) 2021, Riverbank Computing Limited
# All rights reserved.
#
# This copy of PyQt-builder is licensed for use under the terms of the SIP
@@ -29,7 +29,7 @@ import subprocess
from sipbuild import UserException
-from .verbose import verbose
+from .verbose import is_verbose, verbose
class VersionedMetadata:
@@ -96,17 +96,18 @@ class VersionedMetadata:
for qt_lib in lib_contents:
if fnmatch.fnmatch(qt_lib, lib):
self._bundle_library(qt_lib, target_qt_dir,
- qt_dir, arch, ignore_missing)
+ qt_dir, arch, qt_version,
+ ignore_missing)
else:
self._bundle_library(lib, target_qt_dir, qt_dir, arch,
- ignore_missing)
+ qt_version, ignore_missing)
# Bundle any executables.
for exe_arch, exes in self._exes.items():
if exe_arch == '' or exe_arch == arch:
for exe in exes:
bundled_exe = self._bundle_file(exe, target_qt_dir, qt_dir,
- ignore_missing)
+ arch, qt_version, ignore_missing)
if bundled_exe is not None:
if arch == 'linux':
@@ -124,14 +125,15 @@ class VersionedMetadata:
for qml_subdir in qml_names:
self._bundle_nondebug(os.path.join('qml', qml_subdir),
- target_qt_dir, qt_dir, arch, ignore_missing)
+ target_qt_dir, qt_dir, arch, qt_version,
+ ignore_missing)
# Bundle any plugins. We haven't done the analysis of which plugins
# belong to which package so we assume that only the QtCore package
# will specify any to exclude and we bundle all of them with that.
if self._excluded_plugins is not None:
self._bundle_nondebug('plugins', target_qt_dir, qt_dir, arch,
- ignore_missing, exclude=self._excluded_plugins)
+ qt_version, ignore_missing, exclude=self._excluded_plugins)
# Bundle any translations:
if self._translations:
@@ -142,8 +144,9 @@ class VersionedMetadata:
if qm.endswith('.qm'):
for prefix in self._translations:
if qm.startswith(prefix):
- self._bundle_file(qm, target_tr_dir, tr_dir,
- ignore_missing)
+ self._bundle_file(qm, target_tr_dir, tr_dir, arch,
+ qt_version, ignore_missing,
+ might_be_code=False)
# Bundle any dynamically created files.
for files_arch, files in self._files.items():
@@ -160,7 +163,8 @@ class VersionedMetadata:
if oth_arch == '' or oth_arch == arch:
for oth in others:
self._bundle_file(oth, target_qt_dir, qt_dir,
- ignore_missing)
+ arch, qt_version, ignore_missing,
+ might_be_code=False)
def is_applicable(self, qt_version):
""" Returns True if this meta-data is applicable for a particular Qt
@@ -170,7 +174,7 @@ class VersionedMetadata:
return self._version is None or qt_version >= self._version
@classmethod
- def _bundle_nondebug(cls, src_dir, target_qt_dir, qt_dir, arch,
+ def _bundle_nondebug(cls, src_dir, target_qt_dir, qt_dir, arch, qt_version,
ignore_missing, exclude=None):
""" Bundle the non-debug contents of a directory. """
@@ -194,10 +198,12 @@ class VersionedMetadata:
cls._bundle_file(
os.path.relpath(os.path.join(dirpath, name), qt_dir),
- target_qt_dir, qt_dir, ignore_missing)
+ target_qt_dir, qt_dir, arch, qt_version,
+ ignore_missing)
@staticmethod
- def _bundle_file(name, target_dir, src_dir, ignore_missing, ignore=None):
+ def _bundle_file(name, target_dir, src_dir, arch, qt_version,
+ ignore_missing, ignore=None, might_be_code=True):
""" Bundle a file (or directory) and return the name of the installed
file (or directory) or None if it was missing.
"""
@@ -210,7 +216,19 @@ class VersionedMetadata:
if os.path.isdir(src):
shutil.copytree(src, dst, ignore=ignore)
elif os.path.isfile(src):
- shutil.copy2(src, dst)
+ # See if it worth trying to remove the arm64 code.
+ if arch == 'macos' and might_be_code and qt_version >= (6, 2, 0):
+ stderr = None if is_verbose() else subprocess.DEVNULL
+
+ try:
+ subprocess.run(
+ ['lipo', '-thin', 'x86_64', '-output', dst, src],
+ stderr=stderr, check=True)
+ except:
+ # If there is any sort of error then just copy it.
+ shutil.copy2(src, dst)
+ else:
+ shutil.copy2(src, dst)
elif ignore_missing:
verbose("Ignoring missing '{0}'".format(name))
dst = None
@@ -221,14 +239,14 @@ class VersionedMetadata:
return dst
@classmethod
- def _bundle_library(cls, name, target_qt_dir, qt_dir, arch, ignore_missing,
- ignore=None):
+ def _bundle_library(cls, name, target_qt_dir, qt_dir, arch, qt_version,
+ ignore_missing, ignore=None):
""" Bundle a library. """
cls._bundle_file(name,
os.path.join(target_qt_dir, cls._get_qt_library_subdir(arch)),
- cls._get_qt_library_dir(qt_dir, arch), ignore_missing,
- ignore=ignore)
+ cls._get_qt_library_dir(qt_dir, arch), arch, qt_version,
+ ignore_missing, ignore=ignore)
@classmethod
def _bundle_qt_library(cls, name, target_qt_dir, qt_dir, arch, qt_version,
@@ -236,12 +254,12 @@ class VersionedMetadata:
""" Bundle a Qt library. """
cls._bundle_library(cls._impl_from_library(name, arch, qt_version),
- target_qt_dir, qt_dir, arch, ignore_missing)
+ target_qt_dir, qt_dir, arch, qt_version, ignore_missing)
if arch == 'macos':
# Copy the Resources directory without the unnecessary .prl files.
cls._bundle_library('{}.framework/Resources'.format(name),
- target_qt_dir, qt_dir, arch, ignore_missing,
+ target_qt_dir, qt_dir, arch, qt_version, ignore_missing,
ignore=lambda d, c: [f for f in c if f.endswith('.prl')])
@staticmethod
@@ -348,6 +366,8 @@ class VersionedMetadata:
return name.endswith('_debug.dylib') or name.endswith('.dSYM')
if arch == 'win':
- # This is a bit flakely as we could have a non-debug DLL that ends
- # with a 'd'.
+ # Special case known non-debug DLLs that end with a 'd'.
+ if name.endswith('backend.dll'):
+ return False
+
return name.endswith('.pdb') or name.endswith('d.dll')
diff --git a/pyqtbuild/bundle/verbose.py b/pyqtbuild/bundle/verbose.py
index 1743043..bc8acd4 100644
--- a/pyqtbuild/bundle/verbose.py
+++ b/pyqtbuild/bundle/verbose.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020, Riverbank Computing Limited
+# Copyright (c) 2021, Riverbank Computing Limited
# All rights reserved.
#
# This copy of PyQt-builder is licensed for use under the terms of the SIP
@@ -26,6 +26,12 @@
_verbose = False
+def is_verbose():
+ """ Return True if verbose progress messages are enabled. """
+
+ return _verbose
+
+
def set_verbose(verbose):
""" Enable or disable verbose progress messages. """
diff --git a/pyqtbuild/version.py b/pyqtbuild/version.py
index cc2e9d7..52f0fa6 100644
--- a/pyqtbuild/version.py
+++ b/pyqtbuild/version.py
@@ -1,2 +1,2 @@
-PYQTBUILD_VERSION = 0x010a03
-PYQTBUILD_VERSION_STR = '1.10.3'
+PYQTBUILD_VERSION = 0x010b00
+PYQTBUILD_VERSION_STR = '1.11.0'
More information about the Neon-commits
mailing list