Avoid relying on the deprecated pyqtconfig module. When PyQt4 is configured using configure-ng.py then no pyqtconfig module will be built, causing the automatic detection in the QGIS build system to fail. This change tries to work around the problem by extracting or guessing all the relevant settings. It should work reasonably well for a default configuration of PyQt, but may fail if PyQt overrides the defaults from sip. All may break if SIP v5 is used, since that version apparently won't contain a sipconfig module any more. But we'll tackle that once we get there. References: * https://bugs.gentoo.org/show_bug.cgi?id=525700 2014-10-21 Martin von Gagern 2014-12-12 Modified by Dave Favis-Mortlock for QGIS 2.6.1 Index: qgis-2.6.1/cmake/FindPyQt.py =================================================================== --- qgis-2.6.1.orig/cmake/FindPyQt.py +++ qgis-2.6.1/cmake/FindPyQt.py @@ -30,9 +30,29 @@ # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -import PyQt4.pyqtconfig +try: + import PyQt4.pyqtconfig + pyqtcfg = PyQt4.pyqtconfig.Configuration() +except ImportError: + import PyQt4.QtCore + import sipconfig # won't work for SIP v5 + import os.path + cfg = sipconfig.Configuration() + sip_dir = cfg.default_sip_dir + for p in (os.path.join(sip_dir, "PyQt4"), sip_dir): + if os.path.exists(os.path.join(p, "QtCore", "QtCoremod.sip")): + sip_dir = p + break + cfg = { + 'pyqt_version': PyQt4.QtCore.PYQT_VERSION, + 'pyqt_version_str': PyQt4.QtCore.PYQT_VERSION_STR, + 'pyqt_sip_flags': PyQt4.QtCore.PYQT_CONFIGURATION['sip_flags'], + 'pyqt_mod_dir': cfg.default_mod_dir, + 'pyqt_sip_dir': sip_dir, + 'pyqt_bin_dir': cfg.default_bin_dir, + } + pyqtcfg = sipconfig.Configuration([cfg]) -pyqtcfg = PyQt4.pyqtconfig.Configuration() print("pyqt_version:%06.0x" % pyqtcfg.pyqt_version) print("pyqt_version_num:%d" % pyqtcfg.pyqt_version) print("pyqt_version_str:%s" % pyqtcfg.pyqt_version_str)