Rewrite some code to work on Python 2.7 and 3+

This commit is contained in:
Thomas Pointhuber 2018-08-03 13:33:16 +02:00 committed by Maciej Suminski
parent e1f30a3b38
commit de7b362695
2 changed files with 29 additions and 26 deletions

View File

@ -693,7 +693,7 @@ if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
# Get the correct Python site package install path from the Python interpreter found by
# FindPythonInterp unless the user specifically defined a custom path.
if( NOT PYTHON_SITE_PACKAGE_PATH )
execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import distutils.sysconfig;print\"%s\"%distutils.sysconfig.get_python_lib(plat_specific=0, standard_lib=0, prefix='')"
execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import distutils.sysconfig;print(\"%s\"%distutils.sysconfig.get_python_lib(plat_specific=0, standard_lib=0, prefix=''))"
OUTPUT_VARIABLE PYTHON_SITE_PACKAGE_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@ -724,7 +724,7 @@ if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
# Check to see if the correct version of wxPython is installed based on the version of
# wxWidgets found. At least the major an minor version should match.
set( _wxpy_version "${wxWidgets_VERSION_MAJOR}.${wxWidgets_VERSION_MINOR}" )
set( _py_cmd "import wxversion;print wxversion.checkInstalled('${_wxpy_version}')" )
set( _py_cmd "import wxversion;print(wxversion.checkInstalled('${_wxpy_version}'))" )
# Add user specified Python site package path.
if( PYTHON_SITE_PACKAGE_PATH )

View File

@ -9,15 +9,18 @@
# fix in the swig_import_helper
#
from __future__ import print_function
from sys import argv,exit
if len(argv)<2:
print "usage:"
print " fix_swig_imports.py file.py"
print ""
print " will fix the swig import code for working inside KiCad"
print " where it happended that the external _pcbnew.so/dll was"
print " loaded too -and the internal _pcbnew module was to be used"
print("usage:")
print(" fix_swig_imports.py file.py")
print("")
print(" will fix the swig import code for working inside KiCad")
print(" where it happended that the external _pcbnew.so/dll was")
print(" loaded too -and the internal _pcbnew module was to be used")
exit(1)
@ -31,31 +34,31 @@ f.close()
doneOk = False
if (len(lines)<4000):
print "still building"
print("still building")
exit(0)
txt = ""
txt = b""
for l in lines:
if l.startswith("if _swig_python_version_info >= (2, 7, 0):"): # ok with swig version >= 3.0.10
l = l.replace("_swig_python_version_info >= (2, 7, 0)","False")
if l.startswith(b"if _swig_python_version_info >= (2, 7, 0):"): # ok with swig version >= 3.0.10
l = l.replace(b"_swig_python_version_info >= (2, 7, 0)", b"False")
doneOk = True
elif l.startswith("elif _swig_python_version_info >= (2, 6, 0):"): # needed with swig version >= 3.0.10
l = l.replace("_swig_python_version_info >= (2, 6, 0)","False")
elif l.startswith(b"elif _swig_python_version_info >= (2, 6, 0):"): # needed with swig version >= 3.0.10
l = l.replace(b"_swig_python_version_info >= (2, 6, 0)", b"False")
doneOk = True
if l.startswith("if version_info >= (2, 7, 0):"): # ok with swig version >= 3.0.9
l = l.replace("version_info >= (2, 7, 0)","False")
if l.startswith(b"if version_info >= (2, 7, 0):"): # ok with swig version >= 3.0.9
l = l.replace(b"version_info >= (2, 7, 0)", b"False")
doneOk = True
elif l.startswith("elif version_info >= (2, 6, 0):"): # needed with swig version >= 3.0.9
l = l.replace("version_info >= (2, 6, 0)","False")
elif l.startswith(b"elif version_info >= (2, 6, 0):"): # needed with swig version >= 3.0.9
l = l.replace(b"version_info >= (2, 6, 0)", b"False")
doneOk = True
elif l.startswith("if version_info >= (2,6,0):"): # ok with swig version <= 3.0.2
l = l.replace("version_info >= (2,6,0)","False")
elif l.startswith(b"if version_info >= (2,6,0):"): # ok with swig version <= 3.0.2
l = l.replace(b"version_info >= (2,6,0)", b"False")
doneOk = True
elif l.startswith("if version_info >= (2, 6, 0):"): # needed with swig version 3.0.3
l = l.replace("version_info >= (2, 6, 0)","False")
elif l.startswith(b"if version_info >= (2, 6, 0):"): # needed with swig version 3.0.3
l = l.replace(b"version_info >= (2, 6, 0)", b"False")
doneOk = True
elif l.startswith("if False:"): # it was already patched?
elif l.startswith(b"if False:"): # it was already patched?
doneOk = True
txt = txt + l
@ -64,10 +67,10 @@ f.write(txt)
f.close()
if doneOk:
print "swig_import_helper fixed for",filename
print("swig_import_helper fixed for", filename)
else:
print "Error: the swig import helper was not fixed, check",filename
print " and fix this script: fix_swig_imports.py"
print("Error: the swig import helper was not fixed, check", filename)
print(" and fix this script: fix_swig_imports.py")
exit(2)