Warning, /graphics/krita/3rdparty/ext_pyqt/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 SET(PREFIX_ext_pyqt "${EXTPREFIX}" )
0002 
0003 if (APPLE)
0004     SET(Python_EXECUTABLE ${PREFIX_ext_sip}/bin/python3)
0005     if(NOT EXISTS "${Python_EXECUTABLE}")
0006         message("WARNING: using system python3!")
0007         SET(Python_EXECUTABLE python3)
0008     endif()
0009 
0010     list(APPEND _PYQT_conf
0011         --confirm-license
0012         --qmake ${PREFIX_ext_pyqt}/bin/qmake
0013         --sip ${PREFIX_ext_pyqt}/bin/sip
0014         --sip-incdir ${PREFIX_ext_pyqt}/include
0015         --sipdir ${PREFIX_ext_pyqt}/share/sip
0016     )
0017     ExternalProject_Add( ext_pyqt
0018         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0019         URL https://files.kde.org/krita/build/dependencies/PyQt5_gpl-5.13.1.tar.gz
0020         URL_MD5 c77af2f4e230b0053fd22bc2ece2e6c0
0021 
0022         CONFIGURE_COMMAND ${Python_EXECUTABLE} <SOURCE_DIR>/configure.py ${_PYQT_conf}
0023 
0024         # force single-threaded installation to avoid
0025         # race conditions in post-install .py script
0026         INSTALL_COMMAND make -j1 install
0027 
0028         BUILD_IN_SOURCE 1
0029 
0030         UPDATE_COMMAND ""
0031     )
0032 
0033 elseif(UNIX)
0034     SET(Python_EXECUTABLE ${PREFIX_ext_pyqt}/bin/python3)
0035     if(NOT EXISTS ${Python_EXECUTABLE})
0036       message("WARNING: using system python3!")
0037       SET(Python_EXECUTABLE python3)
0038     endif()
0039 
0040     ExternalProject_Add(ext_pyqtbuilder
0041         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0042         URL https://pypi.io/packages/source/P/PyQt-builder/PyQt-builder-1.13.0.tar.gz
0043         URL_HASH SHA256=4877580c38ceb5320e129b381d083b0a8601c68166d8b99707f08fa0a1689eef
0044 
0045         CONFIGURE_COMMAND ""
0046 
0047         BUILD_COMMAND ${CMAKE_COMMAND} -E env 
0048             "PYTHONPATH=${KRITA_PYTHONPATH}"
0049             ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py build ${_compiler} -j ${SUBMAKE_JOBS}
0050 
0051         INSTALL_COMMAND ${CMAKE_COMMAND} -E env 
0052             "PYTHONPATH=${KRITA_PYTHONPATH}"
0053             ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py install --skip-build --prefix=${PREFIX_ext_pyqt} --optimize=1
0054 
0055         BUILD_IN_SOURCE 1
0056 
0057         UPDATE_COMMAND ""
0058     )
0059 
0060     ExternalProject_Add( ext_pyqt5
0061         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0062         URL https://pypi.python.org/packages/source/P/PyQt5/PyQt5-5.15.7.tar.gz
0063         URL_HASH SHA256=755121a52b3a08cb07275c10ebb96576d36e320e572591db16cfdbc558101594
0064 
0065         CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env 
0066             "PYTHONPATH=${KRITA_PYTHONPATH}"
0067             ${PREFIX_ext_pyqt}/bin/sip-build --confirm-license --no-designer-plugin --no-qml-plugin --no-dbus-python --no-tools --no-make --jobs ${SUBMAKE_JOBS}
0068 
0069         BUILD_COMMAND ${CMAKE_COMMAND} -E env 
0070             "PYTHONPATH=${KRITA_PYTHONPATH}"
0071             ${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/build
0072                 make -j${SUBMAKE_JOBS}
0073 
0074         # force single-threaded installation to avoid
0075         # race conditions in post-install .py script
0076         INSTALL_COMMAND ${CMAKE_COMMAND} -E env 
0077             "PYTHONPATH=${KRITA_PYTHONPATH}"
0078             ${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/build
0079                 make -j1 install
0080 
0081         BUILD_IN_SOURCE 1
0082 
0083         UPDATE_COMMAND ""
0084 
0085         DEPENDS ext_sip ext_pyqtbuilder
0086     )
0087 
0088     ExternalProject_Add( ext_pyqt5_sip
0089         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0090         URL https://pypi.python.org/packages/source/P/PyQt5-sip/PyQt5_sip-12.11.0.tar.gz
0091         URL_HASH SHA256=b4710fd85b57edef716cc55fae45bfd5bfac6fc7ba91036f1dcc3f331ca0eb39
0092 
0093         CONFIGURE_COMMAND ""
0094 
0095         BUILD_COMMAND ${CMAKE_COMMAND} -E env 
0096             "PYTHONPATH=${KRITA_PYTHONPATH}"
0097             ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py build ${_compiler} -j ${SUBMAKE_JOBS}
0098 
0099         # Here we need a flat-egg installation, otherwise the egg is deployed
0100         # inside its own directory in site-packages.
0101         # So we set as root our 3rdparty layout, and a sufficiently dud prefix.
0102         # See https://github.com/msys2/MINGW-packages/blob/8a4066591cf1e023971526c55bf2d5fe0c7aa84a/mingw-w64-pyqt5-sip/PKGBUILD
0103         INSTALL_COMMAND ${CMAKE_COMMAND} -E env 
0104             "PYTHONPATH=${KRITA_PYTHONPATH}"
0105             ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py install --prefix "." --root=${PREFIX_ext_pyqt} --optimize=1
0106 
0107         BUILD_IN_SOURCE 1
0108 
0109         UPDATE_COMMAND ""
0110     )
0111 
0112     add_custom_target(ext_pyqt)
0113     add_dependencies(ext_pyqt ext_pyqt5 ext_pyqt5_sip)
0114 elseif(WIN32)
0115     if(MINGW)
0116         set(_compiler -c mingw32)
0117         set(_make_command mingw32-make)
0118     elseif(MSVC)
0119         set(_compiler -c msvc)
0120         set(_make_command jom)
0121     endif()
0122 
0123     krita_to_native_path("${PREFIX_ext_pyqt}" _pyqt_prefix)
0124     krita_to_native_path("${KRITA_PYTHONPATH}" _krita_pythonpath)
0125     string(TOLOWER ${_krita_pythonpath} _krita_pythonpath)
0126     krita_to_native_environment_path_list("${_krita_pythonpath}" _krita_pythonpath)
0127 
0128     ExternalProject_Add(ext_pyqtbuilder
0129         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0130         URL https://pypi.io/packages/source/P/PyQt-builder/PyQt-builder-1.13.0.tar.gz
0131         URL_HASH SHA256=4877580c38ceb5320e129b381d083b0a8601c68166d8b99707f08fa0a1689eef
0132 
0133         PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Support-MinGW-and-MSYS-Python-builds.patch
0134 
0135         CONFIGURE_COMMAND ""
0136 
0137         BUILD_COMMAND ${CMAKE_COMMAND} -E env 
0138             PYTHONPATH=${_krita_pythonpath}
0139             SETUPTOOLS_USE_DISTUTILS=local
0140             ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py build ${_compiler} -j ${SUBMAKE_JOBS}
0141 
0142         # HACK: Create lib\site-packages before installing
0143         # See e.g. https://access.redhat.com/errata/RHBA-2020:4437
0144         INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${_pyqt_prefix}\\lib\\site-packages
0145             COMMAND ${CMAKE_COMMAND} -E env 
0146                 PYTHONPATH=${_krita_pythonpath}
0147                 SETUPTOOLS_USE_DISTUTILS=local
0148                 ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py install --skip-build --prefix=${_pyqt_prefix} --optimize=1 --install-scripts=${_pyqt_prefix}\\bin
0149 
0150         BUILD_IN_SOURCE 1
0151 
0152         UPDATE_COMMAND ""
0153     )
0154 
0155     ExternalProject_Add( ext_pyqt5
0156         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0157         URL https://pypi.python.org/packages/source/P/PyQt5/PyQt5-5.15.7.tar.gz
0158         URL_HASH SHA256=755121a52b3a08cb07275c10ebb96576d36e320e572591db16cfdbc558101594
0159 
0160         CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env 
0161             PYTHONPATH=${_krita_pythonpath}
0162             ${PREFIX_ext_pyqt}/bin/sip-build --confirm-license --no-designer-plugin --no-qml-plugin --no-dbus-python --no-tools --no-make --target-dir ${PREFIX_ext_pyqt}\\lib\\site-packages --jobs ${SUBMAKE_JOBS}
0163 
0164         BUILD_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/build
0165             ${CMAKE_COMMAND} -E env 
0166             PYTHONPATH=${_krita_pythonpath}
0167             ${_make_command} -j${SUBMAKE_JOBS}
0168 
0169         # force single-threaded installation to avoid
0170         # race conditions in post-install .py script
0171         INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/build
0172             ${CMAKE_COMMAND} -E env 
0173             PYTHONPATH=${_krita_pythonpath}
0174             ${_make_command} install
0175 
0176         BUILD_IN_SOURCE 1
0177 
0178         UPDATE_COMMAND ""
0179 
0180         DEPENDS ext_sip ext_pyqtbuilder
0181     )
0182 
0183     ExternalProject_Add( ext_pyqt5_sip
0184         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0185         URL https://pypi.python.org/packages/source/P/PyQt5-sip/PyQt5_sip-12.11.0.tar.gz
0186         URL_HASH SHA256=b4710fd85b57edef716cc55fae45bfd5bfac6fc7ba91036f1dcc3f331ca0eb39
0187 
0188         PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-MinGW-Distutils-support-hack.patch
0189 
0190         CONFIGURE_COMMAND ""
0191 
0192         BUILD_COMMAND ${CMAKE_COMMAND} -E env 
0193             PYTHONPATH=${_krita_pythonpath}
0194             SETUPTOOLS_USE_DISTUTILS=local
0195             ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py build ${_compiler} -j ${SUBMAKE_JOBS}
0196 
0197         # Here we need a flat-egg installation, otherwise the egg is deployed
0198         # inside its own directory in site-packages.
0199         # So we set as root our 3rdparty layout, and a sufficiently dud prefix.
0200         # See https://github.com/msys2/MINGW-packages/blob/8a4066591cf1e023971526c55bf2d5fe0c7aa84a/mingw-w64-pyqt5-sip/PKGBUILD
0201         INSTALL_COMMAND ${CMAKE_COMMAND} -E env 
0202             PYTHONPATH=${_krita_pythonpath}
0203             SETUPTOOLS_USE_DISTUTILS=local
0204             ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py install --skip-build --prefix "." --root=${_pyqt_prefix} --optimize=1 --install-scripts=${_pyqt_prefix}\\bin
0205 
0206         BUILD_IN_SOURCE 1
0207 
0208         UPDATE_COMMAND ""
0209     )
0210 
0211     add_custom_target(ext_pyqt)
0212     add_dependencies(ext_pyqt ext_pyqt5 ext_pyqt5_sip)
0213 endif()
0214