mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
Add support for SIP v5 to the build system
This commit is contained in:
parent
88fa86dfbe
commit
b7edc017b0
@ -30,14 +30,13 @@
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
try:
|
||||
import PyQt5.pyqtconfig
|
||||
import os.path
|
||||
import PyQt5.QtCore
|
||||
|
||||
pyqtcfg = PyQt5.pyqtconfig.Configuration()
|
||||
try:
|
||||
__import__('sipbuild')
|
||||
except ImportError:
|
||||
import PyQt5.QtCore
|
||||
import sipconfig # won't work for SIP v5
|
||||
import os.path
|
||||
import sys
|
||||
|
||||
cfg = sipconfig.Configuration()
|
||||
@ -53,35 +52,40 @@ except ImportError:
|
||||
sip_dir = p
|
||||
break
|
||||
cfg = {
|
||||
'pyqt_version': PyQt5.QtCore.PYQT_VERSION,
|
||||
'pyqt_version_str': PyQt5.QtCore.PYQT_VERSION_STR,
|
||||
'pyqt_sip_flags': PyQt5.QtCore.PYQT_CONFIGURATION['sip_flags'],
|
||||
'pyqt_mod_dir': os.path.join(cfg.default_mod_dir, "PyQt5"),
|
||||
'pyqt_sip_dir': sip_dir,
|
||||
'pyqt_bin_dir': cfg.default_bin_dir,
|
||||
}
|
||||
pyqtcfg = sipconfig.Configuration([cfg])
|
||||
else: # Code for SIP v5
|
||||
from distutils.sysconfig import get_python_lib
|
||||
import shutil
|
||||
cfg = {
|
||||
'pyqt_mod_dir': os.path.dirname(PyQt5.__file__),
|
||||
'pyqt_sip_dir': os.path.join(get_python_lib(plat_specific=1), "PyQt5", "bindings"),
|
||||
'pyqt_bin_dir': os.path.dirname(shutil.which("pyuic5")),
|
||||
}
|
||||
|
||||
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)
|
||||
print("pyqt_version:%06.0x" % PyQt5.QtCore.PYQT_VERSION)
|
||||
print("pyqt_version_num:%d" % PyQt5.QtCore.PYQT_VERSION)
|
||||
print("pyqt_version_str:%s" % PyQt5.QtCore.PYQT_VERSION_STR)
|
||||
|
||||
pyqt_version_tag = ""
|
||||
in_t = False
|
||||
for item in pyqtcfg.pyqt_sip_flags.split(' '):
|
||||
pyqt_config_list = PyQt5.QtCore.PYQT_CONFIGURATION["sip_flags"].split(' ')
|
||||
for item in pyqt_config_list:
|
||||
if item == "-t":
|
||||
in_t = True
|
||||
elif in_t:
|
||||
if item.startswith("Qt_4"):
|
||||
if item.startswith("Qt_5"):
|
||||
pyqt_version_tag = item
|
||||
else:
|
||||
in_t = False
|
||||
print("pyqt_version_tag:%s" % pyqt_version_tag)
|
||||
|
||||
print("pyqt_mod_dir:%s" % pyqtcfg.pyqt_mod_dir)
|
||||
print("pyqt_sip_dir:%s" % pyqtcfg.pyqt_sip_dir)
|
||||
print("pyqt_sip_flags:%s" % pyqtcfg.pyqt_sip_flags)
|
||||
print("pyqt_bin_dir:%s" % pyqtcfg.pyqt_bin_dir)
|
||||
print("pyqt_mod_dir:%s" % cfg['pyqt_mod_dir'])
|
||||
print("pyqt_sip_dir:%s" % cfg['pyqt_sip_dir'])
|
||||
print("pyqt_sip_flags:%s" % PyQt5.QtCore.PYQT_CONFIGURATION['sip_flags'])
|
||||
print("pyqt_bin_dir:%s" % cfg['pyqt_bin_dir'])
|
||||
|
||||
try:
|
||||
import PyQt5.sip
|
||||
|
@ -40,8 +40,12 @@ ELSE(SIP_VERSION)
|
||||
STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config})
|
||||
STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config})
|
||||
STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config})
|
||||
STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
|
||||
STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config})
|
||||
IF(${SIP_VERSION_STR} VERSION_LESS 5)
|
||||
STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
|
||||
STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config})
|
||||
ELSE(${SIP_VERSION_STR} VERSION_LESS 5)
|
||||
FIND_PROGRAM(SIP_MODULE_EXECUTABLE sip-module)
|
||||
ENDIF(${SIP_VERSION_STR} VERSION_LESS 5)
|
||||
SET(SIP_FOUND TRUE)
|
||||
ENDIF(sip_config)
|
||||
|
||||
|
@ -30,17 +30,31 @@
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
import sipconfig
|
||||
try:
|
||||
import sipbuild
|
||||
except ImportError: # Code for SIP v4
|
||||
import sipconfig
|
||||
|
||||
sipcfg = sipconfig.Configuration()
|
||||
print("sip_version:%06.0x" % sipcfg.sip_version)
|
||||
print("sip_version_num:%d" % sipcfg.sip_version)
|
||||
print("sip_version_str:%s" % sipcfg.sip_version_str)
|
||||
print("sip_bin:%s" % sipcfg.sip_bin)
|
||||
print("default_sip_dir:%s" % sipcfg.default_sip_dir)
|
||||
print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
|
||||
# SIP 4.19.10+ has new sipcfg.sip_module_dir
|
||||
if hasattr(sipcfg, "sip_module_dir"):
|
||||
print("sip_module_dir:%s" % sipcfg.sip_module_dir)
|
||||
else:
|
||||
print("sip_module_dir:%s" % sipcfg.sip_mod_dir)
|
||||
sipcfg = sipconfig.Configuration()
|
||||
print("sip_version:%06.0x" % sipcfg.sip_version)
|
||||
print("sip_version_num:%d" % sipcfg.sip_version)
|
||||
print("sip_version_str:%s" % sipcfg.sip_version_str)
|
||||
print("sip_bin:%s" % sipcfg.sip_bin)
|
||||
print("default_sip_dir:%s" % sipcfg.default_sip_dir)
|
||||
print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
|
||||
# SIP 4.19.10+ has new sipcfg.sip_module_dir
|
||||
if hasattr(sipcfg, "sip_module_dir"):
|
||||
print("sip_module_dir:%s" % sipcfg.sip_module_dir)
|
||||
else:
|
||||
print("sip_module_dir:%s" % sipcfg.sip_mod_dir)
|
||||
else: # Code for SIP v5
|
||||
print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION)
|
||||
print("sip_version_num:%d" % sipbuild.version.SIP_VERSION)
|
||||
print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR)
|
||||
|
||||
import shutil
|
||||
print("sip_bin:%s" % shutil.which("sip5"))
|
||||
|
||||
from distutils.sysconfig import get_python_lib
|
||||
python_modules_dir = get_python_lib(plat_specific=1)
|
||||
print("default_sip_dir:%s" % python_modules_dir)
|
||||
|
@ -121,6 +121,12 @@ MACRO(GENERATE_SIP_PYTHON_MODULE_CODE MODULE_NAME MODULE_SIP SIP_FILES CPP_FILES
|
||||
DEPENDS ${SIP_EXTRA_FILES_DEPEND}
|
||||
VERBATIM
|
||||
)
|
||||
IF (SIP_MODULE_EXECUTABLE)
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${_sip_output_files} APPEND
|
||||
COMMAND ${SIP_MODULE_EXECUTABLE} --target-dir ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} --sip-h ${PYQT5_SIP_IMPORT}
|
||||
)
|
||||
ENDIF (SIP_MODULE_EXECUTABLE)
|
||||
|
||||
ADD_CUSTOM_TARGET(generate_sip_${MODULE_NAME}_cpp_files DEPENDS ${_sip_output_files})
|
||||
|
||||
|
@ -85,6 +85,12 @@ INCLUDE_DIRECTORIES(SYSTEM
|
||||
${SPATIALINDEX_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
IF (${SIP_VERSION_STR} VERSION_LESS 5)
|
||||
INCLUDE_DIRECTORIES(SYSTEM
|
||||
${SIP_INCLUDE_DIR}
|
||||
)
|
||||
ENDIF (${SIP_VERSION_STR} VERSION_LESS 5)
|
||||
|
||||
IF (WITH_GUI)
|
||||
INCLUDE_DIRECTORIES(SYSTEM
|
||||
${QSCINTILLA_INCLUDE_DIR}
|
||||
|
Loading…
x
Reference in New Issue
Block a user