Warning, /graphics/krita/3rdparty/ext_pyqt/0001-Support-MinGW-and-MSYS-Python-builds.patch is written in an unsupported language. File is not indexed.
0001 From 492e19d22d6ed91c22cbf7a7d7798431fd6e40c1 Mon Sep 17 00:00:00 2001
0002 From: "L. E. Segovia" <amy@amyspark.me>
0003 Date: Sun, 2 Oct 2022 16:07:12 -0300
0004 Subject: [PATCH] Support MinGW and MSYS Python builds
0005
0006 Based on
0007 https://github.com/msys2/MINGW-packages/blame/master/mingw-w64-pyqt-builder/001-mingw-python.patch
0008
0009 Co-authored-by: Mehdi Chinoune <mehdi.chinoune@hotmail.com>
0010 Co-authored-by: Alexey Pavlov <alexpux@gmail.com>
0011 Co-authored-by: Biswapriyo Nath <nathbappai@gmail.com>
0012
0013 Signed-off-by: L. E. Segovia <amy@amyspark.me>
0014 ---
0015 pyqtbuild/builder.py | 27 +++++++++++++++++++++------
0016 pyqtbuild/project.py | 6 +++++-
0017 2 files changed, 26 insertions(+), 7 deletions(-)
0018
0019 diff --git a/pyqtbuild/builder.py b/pyqtbuild/builder.py
0020 index 3f35a7f..c5dbe04 100644
0021 --- a/pyqtbuild/builder.py
0022 +++ b/pyqtbuild/builder.py
0023 @@ -26,6 +26,11 @@ import os
0024 import sys
0025 import sysconfig
0026
0027 +try:
0028 + from sysconfig import _POSIX_BUILD
0029 +except:
0030 + _POSIX_BUILD = False
0031 +
0032 from sipbuild import (Buildable, BuildableModule, Builder, Option, Project,
0033 PyProjectOptionException, UserException)
0034
0035 @@ -57,7 +62,8 @@ class QmakeBuilder(Builder):
0036 # be on PATH).
0037 if tool != 'pep517':
0038 self._sip_distinfo = os.path.join(
0039 - os.path.abspath(os.path.dirname(sys.argv[0])),
0040 + os.path.abspath(os.path.dirname(
0041 + sys.argv[0]).replace('\\', '/')),
0042 self._sip_distinfo)
0043
0044 # Check we have a qmake.
0045 @@ -237,8 +243,13 @@ class QmakeBuilder(Builder):
0046 ['install_' + installable.name
0047 for installable in project.installables])))
0048 pro_lines.append('distinfo.extra = {}'.format(' '.join(args)))
0049 + if self.project.py_platform == 'win32' and "MSYSTEM" in os.environ:
0050 + distinfo_dir = os.popen(
0051 + ' '.join(['cygpath', '--unix', target_dir])).readline().strip()
0052 + else:
0053 + distinfo_dir = target_dir
0054 pro_lines.append(
0055 - 'distinfo.path = {}'.format(self.qmake_quote(target_dir)))
0056 + 'distinfo.path = {}'.format(self.qmake_quote(distinfo_dir)))
0057 pro_lines.append('INSTALLS += distinfo')
0058
0059 pro_name = os.path.join(project.build_dir, project.name + '.pro')
0060 @@ -336,6 +347,8 @@ class QmakeBuilder(Builder):
0061 if self.project.py_platform == 'win32':
0062 if 'g++' in self.spec:
0063 make = 'make'
0064 + if self._find_exe(make) is None:
0065 + make = 'mingw32-make'
0066 else:
0067 make = 'nmake'
0068 else:
0069 @@ -462,11 +475,10 @@ macx {
0070
0071 # Python.h on Windows seems to embed the need for pythonXY.lib, so tell
0072 # it where it is.
0073 - # TODO: is this still necessary for Python v3.8?
0074 if not buildable.static:
0075 pro_lines.extend(['win32 {',
0076 - ' LIBS += -L{}'.format(
0077 - self.qmake_quote(project.py_pylib_dir)),
0078 + ' LIBS += -L{} -l{}'.format(
0079 + self.qmake_quote(project.py_pylib_dir), self.qmake_quote(project.py_pylib_lib)),
0080 '}'])
0081
0082 # Add any installables from the buildable.
0083 @@ -497,6 +509,9 @@ macx {
0084 "Unexpected output from qmake: '{0}'".format(line))
0085
0086 name, value = tokens
0087 + if _POSIX_BUILD and "MSYSTEM" in os.environ and value != "":
0088 + value = os.popen(
0089 + ' '.join(['cygpath', '--unix', value])).readline().strip()
0090 else:
0091 name = tokens
0092 value = None
0093 @@ -627,7 +642,7 @@ macx {
0094
0095 if install:
0096 args.append('install')
0097 - elif project.py_platform != 'win32' and self.jobs:
0098 + elif 'make' in args[0] and self.jobs:
0099 args.append('-j')
0100 args.append(str(self.jobs))
0101
0102 diff --git a/pyqtbuild/project.py b/pyqtbuild/project.py
0103 index 8a816ad..5f8fd79 100644
0104 --- a/pyqtbuild/project.py
0105 +++ b/pyqtbuild/project.py
0106 @@ -24,6 +24,10 @@
0107
0108 import os
0109 import sys
0110 +try:
0111 + from sysconfig import _POSIX_BUILD
0112 +except:
0113 + _POSIX_BUILD = False
0114
0115 from sipbuild import Option, Project, UserException
0116
0117 @@ -72,7 +76,7 @@ class PyQtProject(Project):
0118 # Get the details of the default Python interpreter library. Note that
0119 # these are actually non-user options but we need the 'link_full_dll'
0120 # user option in order to set them.
0121 - if self.py_platform == 'win32':
0122 + if self.py_platform == 'win32' and not _POSIX_BUILD:
0123 pylib_dir = os.path.join(sys.base_prefix, 'libs')
0124
0125 debug_suffix = '_d' if self.py_debug else ''
0126 --
0127 2.37.1.windows.1
0128