mirror of
https://github.com/python/cpython.git
synced 2024-11-26 11:24:40 +08:00
57 lines
2.2 KiB
Python
57 lines
2.2 KiB
Python
#Run this file after automatic conversion of the VisualStudio 2008 solution by VisualStudio 2010.
|
|
#This can be done whenever the 2008 solution changes.
|
|
#It will make the necessary cleanup and updates to the vcxproj files
|
|
#the .props files need to be maintained by hand if the .vsprops files change
|
|
|
|
from __future__ import with_statement
|
|
import sys
|
|
import os
|
|
import os.path
|
|
|
|
def vs9to10(src, dest):
|
|
for name in os.listdir(src):
|
|
path, ext = os.path.splitext(name)
|
|
if ext.lower() not in ('.vcxproj',):
|
|
continue
|
|
|
|
filename = os.path.normpath(os.path.join(src, name))
|
|
destname = os.path.normpath(os.path.join(dest, name))
|
|
print("%s -> %s" % (filename, destname))
|
|
|
|
lines = []
|
|
lastline = b""
|
|
importgroup = False
|
|
with open(filename, 'rb') as fin:
|
|
for line in fin:
|
|
#remove redundant linker output info
|
|
if b"<OutputLine>" in line:
|
|
continue
|
|
if b"<ProgramDatabaseFile>" in line:
|
|
continue
|
|
if b"<ImportLibrary>" in line and b"</ImportLibrary>" in line:
|
|
continue
|
|
|
|
#add new property sheet to the pythoncore
|
|
if importgroup and "pythoncore" in name.lower():
|
|
if b"</ImportGroup>" in line:
|
|
if b"debug.props" in lastline:
|
|
lines.append(b' <Import Project="pythoncore_d.props" />\r\n')
|
|
elif b"pythoncore" not in lastline:
|
|
lines.append(b' <Import Project="pythoncore.props" />\r\n')
|
|
if b"<ImportGroup Condition" in line:
|
|
importgroup = True
|
|
elif b"</ImportGroup>" in line:
|
|
importgroup = False
|
|
lines.append(line)
|
|
lastline = line
|
|
with open(destname, 'wb') as fout:
|
|
for line in lines:
|
|
fout.write(line)
|
|
|
|
if __name__ == "__main__":
|
|
src = "." if len(sys.argv) < 2 else sys.argv[1]
|
|
name = os.path.basename(os.path.abspath(src))
|
|
dest = os.path.abspath(os.path.join(src, "..", name + "Upd"))
|
|
os.makedirs(dest)
|
|
vs9to10(src, dest)
|