#! /usr/bin/env python # (c) Copyright Rosetta Commons Member Institutions. # (c) This file is part of the Rosetta software suite and is made available under license. # (c) The Rosetta software is developed by the contributing members of the Rosetta Commons. # (c) For more information, see http://www.rosettacommons.org. Questions about this can be # (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu. import os import re import sys proj = sys.argv[1].rstrip() prefixdir = '../../src' vsprefixdir = '../../../src' sourcesFileName = '../../src/' + proj + '.src.settings' vsFileName = '../VisualStudio/' + proj + '/' + proj + '.vcproj' vsLines = open(vsFileName, 'r').readlines() vsPreLines, vsPostLines = [], [] addTo = 0 for vsLine in vsLines: if vsLine.find('') >= 0: addTo = 1 elif vsLine.find('') >= 0: addTo = 2 else: if addTo == 0: vsPreLines.append(vsLine) if addTo == 2: vsPostLines.append(vsLine) # Additional include directories pattern = re.compile('AdditionalIncludeDirectories="(.*)"') for (i, line) in enumerate(vsPreLines): match = pattern.search(line) if match: setting = match.group(1) + ';..\..\..\external\dbio;' vsPreLines[i] = 'AdditionalIncludeDirectories="%s"\n' % setting vsFileLines = [] vsFileLines += ['\t\r\n'] execfile(sourcesFileName) for dir, srcfiles in sources.iteritems(): if len(dir) != 0 and dir[-1] != '/': dir += '/' vsFileLines += ['\t\t\r\n'] hdrfiles = os.listdir(prefixdir + '/' + dir) hdrfiles = [hdrfile for hdrfile in hdrfiles if hdrfile.find('.h') >= 0] srcfiles = [srcfile + '.cc' for srcfile in srcfiles if not srcfile.endswith('.cu')] allfiles = sorted(hdrfiles + srcfiles) allfiles = [vsprefixdir + '/' + dir + allfile for allfile in allfiles] allfiles = [allfile.replace('/', '\\') for allfile in allfiles] for allfile in allfiles: vsFileLines += ['\t\t\t\r\n'] if allfile.find('.cc') == len(allfile) - 3: objfile = proj + '\\' + allfile[len(vsprefixdir) + 1:-3] objfile = objfile.replace('/', '__') objfile = objfile.replace('\\', '__') for cfgName in ['Debug|Win32', 'Release|Win32', 'BoincDebug|Win32' , 'BoincRelease|Win32']: vsFileLines += ['\t\t\t\t\r\n'] vsFileLines += ['\t\t\t\t\t\r\n'] vsFileLines += ['\t\t\t\t\r\n'] vsFileLines += ['\t\t\t\r\n'] vsFileLines += ['\t\t\r\n'] vsFileLines += ['\t\r\n'] lines = vsPreLines + vsFileLines + vsPostLines open(vsFileName, 'w').writelines(lines)