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.
gentoo-overlay/sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated...

54 lines
2.0 KiB

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
Index: qgis-2.4.0/cmake/FindPyQt.py
===================================================================
--- qgis-2.4.0.orig/cmake/FindPyQt.py
+++ qgis-2.4.0/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)