You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.5 KiB
94 lines
3.5 KiB
9 years ago
|
import os
|
||
|
import sipconfig
|
||
|
import subprocess
|
||
|
import os
|
||
|
import site
|
||
|
import pprint
|
||
|
from distutils import sysconfig
|
||
|
import pyqtconfig
|
||
|
from PyQt5 import QtCore
|
||
|
import PyQt5
|
||
|
|
||
|
class Configuration(sipconfig.Configuration):
|
||
|
"""The class that represents PyQt configuration values.
|
||
|
"""
|
||
|
def getEnv(self,name, default):
|
||
|
return os.environ.get(name) or default
|
||
|
|
||
|
def __init__(self):
|
||
|
qtconfig = subprocess.check_output(["/usr/lib64/qt5/bin/qmake", "-query"], universal_newlines=True)
|
||
|
qtconfig = dict(x.split(":", 1) for x in qtconfig.splitlines())
|
||
|
|
||
|
self.pyQtIncludePath = self.getEnv('PYQT_INCLUDE_PATH','/usr/share/sip/PyQt5' )
|
||
|
|
||
|
pyqtconfig = {
|
||
|
"pyqt_config_args": "--confirm-license -v "+str(self.pyQtIncludePath)+" --qsci-api -q /usr/lib64/qt5/bin/qmake",
|
||
|
"pyqt_version": QtCore.PYQT_VERSION,
|
||
|
"pyqt_version_str": QtCore.PYQT_VERSION_STR,
|
||
|
"pyqt_bin_dir": PyQt5.__path__[0],
|
||
|
"pyqt_mod_dir": PyQt5.__path__[0],
|
||
|
"pyqt_sip_dir": str(self.pyQtIncludePath),
|
||
|
"pyqt_modules": "QtCore QtGui QtWidgets", #... and many more
|
||
|
"pyqt_sip_flags": QtCore.PYQT_CONFIGURATION['sip_flags'],
|
||
|
"qt_version": QtCore.QT_VERSION,
|
||
|
"qt_edition": "free",
|
||
|
"qt_winconfig": "shared",
|
||
|
"qt_framework": 0,
|
||
|
"qt_threaded": 1,
|
||
|
"qt_dir": qtconfig['QT_INSTALL_PREFIX'],
|
||
|
"qt_data_dir": qtconfig['QT_INSTALL_DATA'],
|
||
|
"qt_archdata_dir": qtconfig['QT_INSTALL_DATA'],
|
||
|
"qt_inc_dir": qtconfig['QT_INSTALL_HEADERS'],
|
||
|
"qt_lib_dir": qtconfig['QT_INSTALL_LIBS']
|
||
|
}
|
||
|
|
||
|
macros = sipconfig._default_macros.copy()
|
||
|
macros['INCDIR_QT'] = qtconfig['QT_INSTALL_HEADERS']
|
||
|
macros['LIBDIR_QT'] = qtconfig['QT_INSTALL_LIBS']
|
||
|
macros['MOC'] = os.path.join(qtconfig['QT_INSTALL_BINS'], 'moc')
|
||
|
|
||
|
sipconfig.Configuration.__init__(self, [pyqtconfig])
|
||
|
self.set_build_macros(macros)
|
||
|
|
||
|
|
||
|
## The name of the SIP build file generated by SIP and used by the build system.
|
||
|
build_file = "qtermwidget.sbf"
|
||
|
|
||
|
# Get the SIP configuration information.
|
||
|
config = Configuration()
|
||
|
|
||
|
# Run SIP to generate the build_file
|
||
|
os.system(" ".join([config.sip_bin, '-I' , str(config.pyQtIncludePath), str(config.pyqt_sip_flags), "-b", build_file,"-o", "-c", ". " " qtermwidget.sip"]))
|
||
|
|
||
|
installs = []
|
||
|
installs.append(["qtermwidget.sip", os.path.join(config.pyqt_sip_dir,"qtermwidget")])
|
||
|
installs.append(["qtermwidgetconfig.py", config.pyqt_mod_dir])
|
||
|
|
||
|
makefile = sipconfig.SIPModuleMakefile( configuration = config, build_file = build_file, installs = installs, qt=["QtCore" ,"QtGui", "QtWidgets"] )
|
||
|
|
||
|
# Add the library we are wrapping. The name doesn't include any platform
|
||
|
# specific prefixes or extensions (e.g. the "lib" prefix on UNIX, or the
|
||
|
# ".dll" extension on Windows).
|
||
|
makefile.extra_lib_dirs.append("../lib/")
|
||
|
makefile.extra_lib_dirs.append("..")
|
||
|
makefile.extra_libs = ["qtermwidget5"]
|
||
|
|
||
|
# Generate the Makefile itself.
|
||
|
makefile.generate()
|
||
|
|
||
|
content = {
|
||
|
# Publish where the SIP specifications for this module will be
|
||
|
# installed.
|
||
|
"qtermwidget_sip_dir": config.pyqt_sip_dir,
|
||
|
|
||
|
# Publish the set of SIP flags needed by this module. As these are the
|
||
|
# same flags needed by the qt module we could leave it out, but this
|
||
|
# allows us to change the flags at a later date without breaking
|
||
|
# scripts that import the configuration module.
|
||
|
"qtermwidget_sip_flags": config.pyqt_sip_flags
|
||
|
}
|
||
|
|
||
|
# This creates the qtermwidgetconfig.py module from the qtermwidgetconfig.py.in
|
||
|
# template and the dictionary.
|
||
|
sipconfig.create_config_module("qtermwidgetconfig.py", "config.py.in", content)
|