mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 18:07:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 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)
 | 
