#Run this file after automatic convertsion 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"" in line: continue if b"" in line: continue if b"" in line and b"" in line: continue #add new property sheet to the pythoncore if importgroup and "pythoncore" in name.lower(): if b"" in line: if b"debug.props" in lastline: lines.append(b' \r\n') elif b"pythoncore" not in lastline: lines.append(b' \r\n') if b"" 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)