1from __future__ import with_statement 2import os 3 4def vs9to8(src, dest): 5 for name in os.listdir(src): 6 path, ext = os.path.splitext(name) 7 if ext.lower() not in ('.sln', '.vcproj', '.vsprops'): 8 continue 9 10 filename = os.path.normpath(os.path.join(src, name)) 11 destname = os.path.normpath(os.path.join(dest, name)) 12 print("%s -> %s" % (filename, destname)) 13 14 with open(filename, 'rU') as fin: 15 lines = fin.read() 16 lines = lines.replace('Version="9,00"', 'Version="8.00"') 17 lines = lines.replace('Version="9.00"', 'Version="8.00"') 18 lines = lines.replace('Format Version 10.00', 'Format Version 9.00') 19 lines = lines.replace('Visual Studio 2008', 'Visual Studio 2005') 20 21 lines = lines.replace('wininst-9.0', 'wininst-8.0') 22 lines = lines.replace('..\\', '..\\..\\') 23 lines = lines.replace('..\\..\\..\\..\\', '..\\..\\..\\') 24 25 # Bah. VS8.0 does not expand macros in file names. 26 # Replace them here. 27 lines = lines.replace('$(sqlite3Dir)', '..\\..\\..\\sqlite-3.6.21') 28 lines = lines.replace('$(bsddbDir)\\..\\..', '..\\..\\..\\db-4.7.25.0\\build_windows\\..') 29 lines = lines.replace('$(bsddbDir)', '..\\..\\..\\db-4.7.25.0\\build_windows') 30 31 with open(destname, 'wb') as fout: 32 lines = lines.replace("\n", "\r\n") 33 fout.write(lines) 34 35if __name__ == "__main__": 36 vs9to8(src=".", dest="../PC/VS8.0") 37