Skip to content
Snippets Groups Projects
Commit b52eb74a authored by Dmitry Shachnev's avatar Dmitry Shachnev :penguin:
Browse files

New upstream version 1.3.0+dfsg

parent 219fe0cd
No related branches found
No related tags found
No related merge requests found
Metadata-Version: 1.2 Metadata-Version: 1.2
Name: PyQt-builder Name: PyQt-builder
Version: 1.2.0 Version: 1.3.0
Summary: The PEP 517 compliant PyQt build system Summary: UNKNOWN
Home-page: https://www.riverbankcomputing.com/software/pyqt/ Home-page: UNKNOWN
Author: Riverbank Computing Limited Author: UNKNOWN
Author-email: info@riverbankcomputing.com Author-email: UNKNOWN
License: BSD License: BSD
Description: PyQt-builder - The PEP 517 Compliant PyQt Build System Description: UNKNOWN
====================================================== Platform: UNKNOWN
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/.
Support may be obtained from the PyQt mailing list at
https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
License
-------
PyQt-builder is released under the BSD license.
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 is part of the
`PyQt5 <https://www.riverbankcomputing.com/static/Docs/PyQt5/>`__
documentation.
Platform: X11
Platform: macOS
Platform: Windows
Requires-Python: >=3.5 Requires-Python: >=3.5
Metadata-Version: 1.2 Metadata-Version: 1.2
Name: PyQt-builder Name: PyQt-builder
Version: 1.2.0 Version: 1.3.0
Summary: The PEP 517 compliant PyQt build system Summary: UNKNOWN
Home-page: https://www.riverbankcomputing.com/software/pyqt/ Home-page: UNKNOWN
Author: Riverbank Computing Limited Author: UNKNOWN
Author-email: info@riverbankcomputing.com Author-email: UNKNOWN
License: BSD License: BSD
Description: PyQt-builder - The PEP 517 Compliant PyQt Build System Description: UNKNOWN
====================================================== Platform: UNKNOWN
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/.
Support may be obtained from the PyQt mailing list at
https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.
License
-------
PyQt-builder is released under the BSD license.
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 is part of the
`PyQt5 <https://www.riverbankcomputing.com/static/Docs/PyQt5/>`__
documentation.
Platform: X11
Platform: macOS
Platform: Windows
Requires-Python: >=3.5 Requires-Python: >=3.5
README README
pyproject.toml
setup.cfg setup.cfg
setup.py setup.py
PyQt_builder.egg-info/PKG-INFO PyQt_builder.egg-info/PKG-INFO
...@@ -20,9 +19,12 @@ pyqtbuild/bundle/bundle.py ...@@ -20,9 +19,12 @@ pyqtbuild/bundle/bundle.py
pyqtbuild/bundle/main.py pyqtbuild/bundle/main.py
pyqtbuild/bundle/qt_metadata.py pyqtbuild/bundle/qt_metadata.py
pyqtbuild/bundle/verbose.py pyqtbuild/bundle/verbose.py
pyqtbuild/bundle/dlls/msvc_runtime/concrt140.dll pyqtbuild/bundle/dlls/msvc-32/concrt140.dll
pyqtbuild/bundle/dlls/msvc_runtime/msvcp140.dll pyqtbuild/bundle/dlls/msvc-32/msvcp140.dll
pyqtbuild/bundle/dlls/msvc_runtime/vcruntime140.dll pyqtbuild/bundle/dlls/msvc-32/vcruntime140.dll
pyqtbuild/bundle/dlls/msvc-64/concrt140.dll
pyqtbuild/bundle/dlls/msvc-64/msvcp140.dll
pyqtbuild/bundle/dlls/msvc-64/vcruntime140.dll
pyqtbuild/bundle/dlls/openssl-32/libcrypto-1_1.dll pyqtbuild/bundle/dlls/openssl-32/libcrypto-1_1.dll
pyqtbuild/bundle/dlls/openssl-32/libeay32.dll pyqtbuild/bundle/dlls/openssl-32/libeay32.dll
pyqtbuild/bundle/dlls/openssl-32/libssl-1_1.dll pyqtbuild/bundle/dlls/openssl-32/libssl-1_1.dll
......
sip<6,>=5.1 sip >=5.1, <6
[build-system]
requires = ["setuptools >=30.3", "wheel"]
...@@ -192,6 +192,10 @@ class QmakeBuilder(Builder): ...@@ -192,6 +192,10 @@ class QmakeBuilder(Builder):
args.append(self.qmake_quote(project.get_distinfo_dir(target_dir))) args.append(self.qmake_quote(project.get_distinfo_dir(target_dir)))
pro_lines.append('distinfo.depends = install_subtargets {}'.format(
' '.join(
['install_' + installable.name
for installable in project.installables])))
pro_lines.append('distinfo.extra = {}'.format(' '.join(args))) pro_lines.append('distinfo.extra = {}'.format(' '.join(args)))
pro_lines.append( pro_lines.append(
'distinfo.path = {}'.format(self.qmake_quote(target_dir))) 'distinfo.path = {}'.format(self.qmake_quote(target_dir)))
...@@ -407,7 +411,8 @@ macx { ...@@ -407,7 +411,8 @@ macx {
# TODO: is this still necessary for Python v3.8? # TODO: is this still necessary for Python v3.8?
if not buildable.static: if not buildable.static:
pro_lines.extend(['win32 {', pro_lines.extend(['win32 {',
' LIBS += -L{}'.format(project.py_pylib_dir), ' LIBS += -L{}'.format(
self.qmake_quote(project.py_pylib_dir)),
'}']) '}'])
# Add any installables from the buildable. # Add any installables from the buildable.
......
# Copyright (c) 2019, Riverbank Computing Limited # Copyright (c) 2020, Riverbank Computing Limited
# All rights reserved. # All rights reserved.
# #
# This copy of SIP is licensed for use under the terms of the SIP License # This copy of SIP is licensed for use under the terms of the SIP License
...@@ -24,9 +24,10 @@ ...@@ -24,9 +24,10 @@
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
import os import os
import packaging import packaging
from sipbuild import UserException
import subprocess import subprocess
from sipbuild import UserException
from .qt_metadata import VersionedMetadata from .qt_metadata import VersionedMetadata
from .verbose import verbose from .verbose import verbose
...@@ -54,7 +55,7 @@ class AbstractPackage(ABC): ...@@ -54,7 +55,7 @@ class AbstractPackage(ABC):
if self._qt_version < _min_qt_version: if self._qt_version < _min_qt_version:
raise UserException("The version of Qt being bundled is too old") raise UserException("The version of Qt being bundled is too old")
def bundle_msvc_runtime(self, target_qt_dir): def bundle_msvc_runtime(self, target_qt_dir, arch):
""" Bundle the MSVC runtime. """ """ Bundle the MSVC runtime. """
# This default implementation does nothing. # This default implementation does nothing.
...@@ -64,7 +65,7 @@ class AbstractPackage(ABC): ...@@ -64,7 +65,7 @@ class AbstractPackage(ABC):
# This default implementation does nothing. # This default implementation does nothing.
def bundle_qt(self, target_qt_dir, qt_dir, arch): def bundle_qt(self, target_qt_dir, qt_dir, arch, exclude):
""" Bundle the relevant parts of the Qt installation. """ """ Bundle the relevant parts of the Qt installation. """
# Architecture-specific values. # Architecture-specific values.
...@@ -84,6 +85,10 @@ class AbstractPackage(ABC): ...@@ -84,6 +85,10 @@ class AbstractPackage(ABC):
package_dir = os.path.dirname(target_qt_dir) package_dir = os.path.dirname(target_qt_dir)
for name, metadata in self.get_qt_metadata().items(): for name, metadata in self.get_qt_metadata().items():
# Ignore a module if it is explicitly excluded.
if name in exclude:
continue
for ext in module_extensions: for ext in module_extensions:
bindings = os.path.join(package_dir, name + ext) bindings = os.path.join(package_dir, name + ext)
......
# Copyright (c) 2019, Riverbank Computing Limited # Copyright (c) 2020, Riverbank Computing Limited
# All rights reserved. # All rights reserved.
# #
# This copy of SIP is licensed for use under the terms of the SIP License # This copy of SIP is licensed for use under the terms of the SIP License
...@@ -26,15 +26,16 @@ import fnmatch ...@@ -26,15 +26,16 @@ import fnmatch
import hashlib import hashlib
import os import os
import shutil import shutil
from sipbuild import UserException
import zipfile import zipfile
from sipbuild import UserException
from . import packages from . import packages
from .verbose import verbose from .verbose import verbose
def bundle(wheel_path, qt_dir, build_tag_suffix, msvc_runtime, openssl, def bundle(wheel_path, qt_dir, build_tag_suffix, msvc_runtime, openssl,
openssl_dir): openssl_dir, exclude):
""" Bundle a Qt installation with a PyQt wheel. """ """ Bundle a Qt installation with a PyQt wheel. """
wheel_path = os.path.abspath(wheel_path) wheel_path = os.path.abspath(wheel_path)
...@@ -114,12 +115,12 @@ def bundle(wheel_path, qt_dir, build_tag_suffix, msvc_runtime, openssl, ...@@ -114,12 +115,12 @@ def bundle(wheel_path, qt_dir, build_tag_suffix, msvc_runtime, openssl,
shutil.rmtree(target_qt_dir, ignore_errors=True) shutil.rmtree(target_qt_dir, ignore_errors=True)
# Bundle the relevant parts of the Qt installation. # Bundle the relevant parts of the Qt installation.
package.bundle_qt(target_qt_dir, qt_dir, arch) package.bundle_qt(target_qt_dir, qt_dir, arch, exclude)
if arch in ('win32', 'win_amd64'): if arch in ('win32', 'win_amd64'):
# Bundle the MSVC runtime if required. # Bundle the MSVC runtime if required.
if msvc_runtime: if msvc_runtime:
package.bundle_msvc_runtime(target_qt_dir) package.bundle_msvc_runtime(target_qt_dir, arch)
# Bundle OpenSSL if required. # Bundle OpenSSL if required.
if openssl: if openssl:
......
# Copyright (c) 2019, Riverbank Computing Limited # Copyright (c) 2020, Riverbank Computing Limited
# All rights reserved. # All rights reserved.
# #
# This copy of SIP is licensed for use under the terms of the SIP License # This copy of SIP is licensed for use under the terms of the SIP License
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
from argparse import ArgumentParser from argparse import ArgumentParser
from sipbuild import handle_exception from sipbuild import handle_exception
from ..version import PYQTBUILD_VERSION_STR from ..version import PYQTBUILD_VERSION_STR
...@@ -46,6 +47,9 @@ def main(): ...@@ -46,6 +47,9 @@ def main():
parser.add_argument('--build-tag-suffix', metavar='SUFFIX', parser.add_argument('--build-tag-suffix', metavar='SUFFIX',
help="append SUFFIX to the build tag in the wheel name") help="append SUFFIX to the build tag in the wheel name")
parser.add_argument('--exclude', metavar="NAME", default=[],
action='append', help="exclude the NAME bindings from the wheel")
parser.add_argument('--no-msvc-runtime', dest='msvc_runtime', default=True, parser.add_argument('--no-msvc-runtime', dest='msvc_runtime', default=True,
action='store_false', action='store_false',
help="don't include msvcp140.dll, concrt140.dll and " help="don't include msvcp140.dll, concrt140.dll and "
...@@ -72,7 +76,7 @@ def main(): ...@@ -72,7 +76,7 @@ def main():
bundle(wheel_path=args.wheels[0], qt_dir=args.qt_dir, bundle(wheel_path=args.wheels[0], qt_dir=args.qt_dir,
build_tag_suffix=args.build_tag_suffix, build_tag_suffix=args.build_tag_suffix,
msvc_runtime=args.msvc_runtime, openssl=args.openssl, msvc_runtime=args.msvc_runtime, openssl=args.openssl,
openssl_dir=args.openssl_dir) openssl_dir=args.openssl_dir, exclude=args.exclude)
except Exception as e: except Exception as e:
handle_exception(e) handle_exception(e)
......
...@@ -187,13 +187,14 @@ _QT_METADATA = { ...@@ -187,13 +187,14 @@ _QT_METADATA = {
class PyQt5(AbstractPackage): class PyQt5(AbstractPackage):
""" The PyQt5 package. """ """ The PyQt5 package. """
def bundle_msvc_runtime(self, target_qt_dir): def bundle_msvc_runtime(self, target_qt_dir, arch):
""" Bundle the MSVC runtime. """ """ Bundle the MSVC runtime. """
verbose("Bundling the MSVC runtime") verbose("Bundling the MSVC runtime")
self._bundle_dlls(target_qt_dir, self._bundle_dlls(target_qt_dir,
os.path.join(_DLLS_DIR, 'msvc_runtime')) os.path.join(_DLLS_DIR,
'msvc-64' if arch == 'win_amd64' else 'msvc-32'))
def bundle_openssl(self, target_qt_dir, openssl_dir, arch): def bundle_openssl(self, target_qt_dir, openssl_dir, arch):
""" Bundle the OpenSSL DLLs. """ """ Bundle the OpenSSL DLLs. """
......
# Copyright (c) 2019, Riverbank Computing Limited # Copyright (c) 2020, Riverbank Computing Limited
# All rights reserved. # All rights reserved.
# #
# This copy of SIP is licensed for use under the terms of the SIP License # This copy of SIP is licensed for use under the terms of the SIP License
...@@ -26,6 +26,8 @@ import os ...@@ -26,6 +26,8 @@ import os
import shutil import shutil
import subprocess import subprocess
from sipbuild import UserException
from .verbose import verbose from .verbose import verbose
...@@ -197,8 +199,11 @@ class VersionedMetadata: ...@@ -197,8 +199,11 @@ class VersionedMetadata:
if os.path.isdir(src): if os.path.isdir(src):
shutil.copytree(src, dst, ignore=ignore) shutil.copytree(src, dst, ignore=ignore)
else: elif os.path.isfile(src):
shutil.copy2(src, dst) shutil.copy2(src, dst)
else:
raise UserException(
"'{0}' is missing from the Qt installation".format(name))
return dst return dst
......
PYQTBUILD_VERSION = 0x010200 PYQTBUILD_VERSION = 0x010300
PYQTBUILD_VERSION_STR = '1.2.0' PYQTBUILD_VERSION_STR = '1.3.0'
...@@ -9,4 +9,5 @@ platforms = X11, macOS, Windows ...@@ -9,4 +9,5 @@ platforms = X11, macOS, Windows
[egg_info] [egg_info]
tag_build = tag_build =
tag_date = 0 tag_date = 0
tag_svn_revision = 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment