mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
Automatically invoke 2to3 on built/direct for a Python 3 build
This commit is contained in:
parent
5edb53b8e8
commit
4b9da436a0
@ -1611,12 +1611,14 @@ def RunGenPyCode(target, inputs, opts):
|
|||||||
if (PkgSkip("PYTHON") != 0):
|
if (PkgSkip("PYTHON") != 0):
|
||||||
return
|
return
|
||||||
|
|
||||||
cmdstr = sys.executable + " -B " + os.path.join("direct", "src", "ffi", "jGenPyCode.py")
|
cmdstr = sys.executable + " -B " + os.path.join(GetOutputDir(), "direct", "ffi", "jGenPyCode.py")
|
||||||
if (GENMAN): cmdstr += " -d"
|
if (GENMAN): cmdstr += " -d"
|
||||||
cmdstr += " -r"
|
cmdstr += " -r"
|
||||||
for i in inputs:
|
for i in inputs:
|
||||||
if (GetOrigExt(i)==".dll"):
|
if (GetOrigExt(i)==".pyd"):
|
||||||
cmdstr += " " + os.path.basename(os.path.splitext(i)[0].replace("_d","").replace(GetOutputDir()+"/lib/",""))
|
cmdstr += " panda3d." + os.path.basename(os.path.splitext(i)[0])
|
||||||
|
elif (GetOrigExt(i)==".dll"):
|
||||||
|
cmdstr += " " + os.path.basename(os.path.splitext(i)[0].replace("_d",""))
|
||||||
|
|
||||||
oscmd(cmdstr)
|
oscmd(cmdstr)
|
||||||
|
|
||||||
@ -2379,7 +2381,7 @@ CreatePandaVersionFiles()
|
|||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
if (PkgSkip("DIRECT")==0):
|
if (PkgSkip("DIRECT")==0):
|
||||||
CopyTree(GetOutputDir()+'/direct', 'direct/src')
|
CopyPythonTree(GetOutputDir() + '/direct', 'direct/src', lib2to3_fixers=['all'])
|
||||||
ConditionalWriteFile(GetOutputDir() + '/direct/__init__.py', "")
|
ConditionalWriteFile(GetOutputDir() + '/direct/__init__.py', "")
|
||||||
if (GetTarget() == 'windows'):
|
if (GetTarget() == 'windows'):
|
||||||
CopyFile(GetOutputDir()+'/bin/panda3d.py', 'direct/src/ffi/panda3d.py')
|
CopyFile(GetOutputDir()+'/bin/panda3d.py', 'direct/src/ffi/panda3d.py')
|
||||||
|
@ -2343,6 +2343,47 @@ def CopyTree(dstdir, srcdir, omitCVS=True):
|
|||||||
else:
|
else:
|
||||||
cmd = 'cp -R -f ' + srcdir + ' ' + dstdir
|
cmd = 'cp -R -f ' + srcdir + ' ' + dstdir
|
||||||
oscmd(cmd)
|
oscmd(cmd)
|
||||||
|
if omitCVS:
|
||||||
|
DeleteCVS(dstdir)
|
||||||
|
|
||||||
|
def CopyPythonTree(dstdir, srcdir, lib2to3_fixers=[]):
|
||||||
|
if (not os.path.isdir(dstdir)):
|
||||||
|
os.mkdir(dstdir)
|
||||||
|
|
||||||
|
lib2to3 = None
|
||||||
|
if len(lib2to3_fixers) > 0 and sys.version_info >= (3, 0):
|
||||||
|
from lib2to3.main import main as lib2to3
|
||||||
|
lib2to3_args = ['-w', '-n', '--no-diffs', '-x', 'buffer', '-x', 'idioms', '-x', 'set_literal', '-x', 'ws_comma']
|
||||||
|
if lib2to3_fixers != ['all']:
|
||||||
|
for fixer in lib2to3_fixers:
|
||||||
|
lib2to3_args += ['-f', fixer]
|
||||||
|
|
||||||
|
refactor = []
|
||||||
|
for entry in os.listdir(srcdir):
|
||||||
|
srcpth = os.path.join(srcdir, entry)
|
||||||
|
dstpth = os.path.join(dstdir, entry)
|
||||||
|
if (os.path.isfile(srcpth)):
|
||||||
|
base, ext = os.path.splitext(entry)
|
||||||
|
if (entry != ".cvsignore" and ext not in SUFFIX_INC):
|
||||||
|
if (NeedsBuild([dstpth], [srcpth])):
|
||||||
|
WriteBinaryFile(dstpth, ReadBinaryFile(srcpth))
|
||||||
|
|
||||||
|
if ext == '.py' and not entry.endswith('-extensions.py'):
|
||||||
|
refactor.append((dstpth, srcpth))
|
||||||
|
else:
|
||||||
|
JustBuilt([dstpth], [srcpth])
|
||||||
|
|
||||||
|
elif (entry != "CVS"):
|
||||||
|
CopyPythonTree(dstpth, srcpth, lib2to3_fixers)
|
||||||
|
|
||||||
|
for dstpth, srcpth in refactor:
|
||||||
|
if lib2to3 is not None:
|
||||||
|
ret = lib2to3("lib2to3.fixes", lib2to3_args + [dstpth])
|
||||||
|
if ret != 0:
|
||||||
|
os.remove(dstpth)
|
||||||
|
exit("Error in lib2to3.")
|
||||||
|
JustBuilt([dstpth], [srcpth])
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
##
|
##
|
||||||
|
Loading…
x
Reference in New Issue
Block a user