Skip to content
Snippets Groups Projects
Commit a9f42003 authored by Gigg, Martyn Anthony's avatar Gigg, Martyn Anthony
Browse files

Add a wrapper script for internal pyuic script

Refs #27631
parent b6a3c4b7
No related branches found
No related tags found
No related merge requests found
......@@ -28,9 +28,13 @@ set(PYQT4_VERSION_STR "4.12.1" CACHE STRING "PyQt4's version as a human-readable
set(PYQT4_VERSION_TAG "Qt_4_8_6" CACHE STRING "The Qt version tag used by PyQt4's .sip files" FORCE)
set(PYQT4_SIP_DIR "${CMAKE_BINARY_DIR}/${_SIP_PYQT_INSTALL_DIR}/share/sip" CACHE PATH "The base directory where PyQt4's .sip files are installed" FORCE)
set(PYQT4_SIP_FLAGS "-x VendorID -t WS_X11 -x PyQt_NoPrintRangeBug -t Qt_4_8_6" CACHE STRING "The SIP flags used to build PyQt4" FORCE)
set(_lib_site_packages ${CMAKE_BINARY_DIR}/${_SIP_PYQT_INSTALL_DIR}/lib/site-packages)
set(_pyqt4_lib_site_packages ${_lib_site_packages}/PyQt4)
set(PYQT4_PYUIC "${_pyqt4_lib_site_packages}/uic/pyuic.py" CACHE STRING "Location of the pyuic script" FORCE)
set(PRIVATE_PYQT_SITE_PACKAGES ${CMAKE_BINARY_DIR}/${_SIP_PYQT_INSTALL_DIR}/lib/site-packages)
set(_pyqt4_lib_site_packages ${PRIVATE_PYQT_SITE_PACKAGES}/PyQt4)
# Write a wrapper pyuic script so it can find out internal copy of PyQt4
set(PYQT4_PYUIC "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/internal-pyuic.py" CACHE STRING "Location of the pyuic script" FORCE)
configure_file(${CMAKE_MODULE_PATH}/internal-pyuic.py.in ${PYQT4_PYUIC} @ONLY)
ExternalProject_Add(extern-pyqt4
PREFIX ${_SIP_PYQT_DIR}/pyqt4
INSTALL_DIR ${_SIP_PYQT_INSTALL_DIR}
......@@ -51,7 +55,7 @@ ExternalProject_Add(extern-pyqt4
--no-deprecated
--qmake=/usr/bin/qmake-qt4
--no-qsci-api
BUILD_COMMAND make 2> build.log
BUILD_COMMAND make -j24 2> build.log
DEPENDS extern-pyqt4-sip
)
......@@ -59,13 +63,13 @@ ExternalProject_Add(extern-pyqt4
# We assume we only have to support a single-configuration build type on Linux
file(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/private-pyqt4.pth
"import sys; sys.__plen = len(sys.path)
${_lib_site_packages}
${PRIVATE_PYQT_SITE_PACKAGES}
${_pyqt4_lib_site_packages}
import sys; new = sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p = getattr(sys, '__egginsert', 0); sys.path[p:p] = new; sys.__egginsert = p + len(new)
")
# Package PyQt. We assume this is for Python 3
install(DIRECTORY ${_lib_site_packages}/PyQt4
install(DIRECTORY ${PRIVATE_PYQT_SITE_PACKAGES}/PyQt4
DESTINATION ${LIB_DIR}
PATTERN "__pycache__" EXCLUDE
PATTERN "port_v2" EXCLUDE)
import sys
sys.path.insert(0, "@PRIVATE_PYQT_SITE_PACKAGES@")
import PyQt4.uic.pyuic
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment