| #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) |