aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/vstudio.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/vstudio.py')
-rw-r--r--lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/vstudio.py408
1 files changed, 0 insertions, 408 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/vstudio.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/vstudio.py
deleted file mode 100644
index 5fad1f8d..00000000
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/vstudio.py
+++ /dev/null
@@ -1,408 +0,0 @@
-# This file is part of Buildbot. Buildbot is free software: you can
-# redistribute it and/or modify it under the terms of the GNU General Public
-# License as published by the Free Software Foundation, version 2.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright Buildbot Team Members
-
-# Visual studio steps
-
-from buildbot.steps.shell import ShellCommand
-from buildbot.process.buildstep import LogLineObserver
-from buildbot import config
-from buildbot.status.results import SUCCESS, WARNINGS, FAILURE
-
-import re
-
-
-def addEnvPath(env, name, value):
- """ concat a path for this name """
- try:
- oldval = env[name]
- if not oldval.endswith(';'):
- oldval = oldval + ';'
- except KeyError:
- oldval = ""
- if not value.endswith(';'):
- value = value + ';'
- env[name] = oldval + value
-
-class MSLogLineObserver(LogLineObserver):
-
- _re_delimiter = re.compile(r'^(\d+>)?-{5}.+-{5}$')
- _re_file = re.compile(r'^(\d+>)?[^ ]+\.(cpp|c)$')
- _re_warning = re.compile(r' ?: warning [A-Z]+[0-9]+:')
- _re_error = re.compile(r' ?error ([A-Z]+[0-9]+)?\s?: ')
-
- nbFiles = 0
- nbProjects = 0
- nbWarnings = 0
- nbErrors = 0
-
- logwarnings = None
- logerrors = None
-
- def __init__(self, logwarnings, logerrors, **kwargs):
- LogLineObserver.__init__(self, **kwargs)
- self.logwarnings = logwarnings
- self.logerrors = logerrors
- self.stdoutParser.delimiter = "\r\n"
- self.stderrParser.delimiter = "\r\n"
-
- def outLineReceived(self, line):
- if self._re_delimiter.search(line):
- self.nbProjects += 1
- self.logwarnings.addStdout("%s\n" % line)
- self.logerrors.addStdout("%s\n" % line)
- self.step.setProgress('projects', self.nbProjects)
- elif self._re_file.search(line):
- self.nbFiles += 1
- self.step.setProgress('files', self.nbFiles)
- elif self._re_warning.search(line):
- self.nbWarnings += 1
- self.logwarnings.addStdout("%s\n" % line)
- self.step.setProgress('warnings', self.nbWarnings)
- elif self._re_error.search("%s\n" % line):
- # error has no progress indication
- self.nbErrors += 1
- self.logerrors.addStderr("%s\n" % line)
-
-
-class VisualStudio(ShellCommand):
- # an *abstract* base class, which will not itself work as a buildstep
-
- name = "compile"
- description = "compiling"
- descriptionDone = "compile"
-
-
- progressMetrics = ( ShellCommand.progressMetrics +
- ('projects', 'files','warnings',))
-
- logobserver = None
-
- installdir = None
- default_installdir = None
-
- # One of build, or rebuild
- mode = "rebuild"
-
- projectfile = None
- config = None
- useenv = False
- project = None
- PATH = []
- INCLUDE = []
- LIB = []
-
- renderables = [ 'projectfile', 'config', 'project' ]
-
- def __init__(self,
- installdir = None,
- mode = "rebuild",
- projectfile = None,
- config = 'release',
- useenv = False,
- project = None,
- INCLUDE = [],
- LIB = [],
- PATH = [],
- **kwargs):
- self.installdir = installdir
- self.mode = mode
- self.projectfile = projectfile
- self.config = config
- self.useenv = useenv
- self.project = project
- if len(INCLUDE) > 0:
- self.INCLUDE = INCLUDE
- self.useenv = True
- if len(LIB) > 0:
- self.LIB = LIB
- self.useenv = True
- if len(PATH) > 0:
- self.PATH = PATH
- # always upcall !
- ShellCommand.__init__(self, **kwargs)
-
- def setupLogfiles(self, cmd, logfiles):
- logwarnings = self.addLog("warnings")
- logerrors = self.addLog("errors")
- self.logobserver = MSLogLineObserver(logwarnings, logerrors)
- self.addLogObserver('stdio', self.logobserver)
- ShellCommand.setupLogfiles(self, cmd, logfiles)
-
- def setupInstalldir(self):
- if not self.installdir:
- self.installdir = self.default_installdir
-
- def setupEnvironment(self, cmd):
- ShellCommand.setupEnvironment(self, cmd)
- if cmd.args['env'] is None:
- cmd.args['env'] = {}
-
- # setup the custom one, those one goes first
- for path in self.PATH:
- addEnvPath(cmd.args['env'], "PATH", path)
- for path in self.INCLUDE:
- addEnvPath(cmd.args['env'], "INCLUDE", path)
- for path in self.LIB:
- addEnvPath(cmd.args['env'], "LIB", path)
-
- self.setupInstalldir()
-
- def describe(self, done=False):
- description = ShellCommand.describe(self, done)
- if done:
- description.append('%d projects' % self.step_status.getStatistic('projects', 0))
- description.append('%d files' % self.step_status.getStatistic('files', 0))
- warnings = self.step_status.getStatistic('warnings', 0)
- if warnings > 0:
- description.append('%d warnings' % warnings)
- errors = self.step_status.getStatistic('errors', 0)
- if errors > 0:
- description.append('%d errors' % errors)
- return description
-
- def createSummary(self, log):
- self.step_status.setStatistic('projects', self.logobserver.nbProjects)
- self.step_status.setStatistic('files', self.logobserver.nbFiles)
- self.step_status.setStatistic('warnings', self.logobserver.nbWarnings)
- self.step_status.setStatistic('errors', self.logobserver.nbErrors)
-
- def evaluateCommand(self, cmd):
- if cmd.didFail():
- return FAILURE
- if self.logobserver.nbErrors > 0:
- return FAILURE
- if self.logobserver.nbWarnings > 0:
- return WARNINGS
- else:
- return SUCCESS
-
- def finished(self, result):
- self.getLog("warnings").finish()
- self.getLog("errors").finish()
- ShellCommand.finished(self, result)
-
-class VC6(VisualStudio):
-
- default_installdir = 'C:\\Program Files\\Microsoft Visual Studio'
-
- def setupEnvironment(self, cmd):
- VisualStudio.setupEnvironment(self, cmd)
-
- # Root of Visual Developer Studio Common files.
- VSCommonDir = self.installdir + '\\Common'
- MSVCDir = self.installdir + '\\VC98'
- MSDevDir = VSCommonDir + '\\msdev98'
-
- addEnvPath(cmd.args['env'], "PATH", MSDevDir + '\\BIN')
- addEnvPath(cmd.args['env'], "PATH", MSVCDir + '\\BIN')
- addEnvPath(cmd.args['env'], "PATH", VSCommonDir + '\\TOOLS\\WINNT')
- addEnvPath(cmd.args['env'], "PATH", VSCommonDir + '\\TOOLS')
-
- addEnvPath(cmd.args['env'], "INCLUDE", MSVCDir + '\\INCLUDE')
- addEnvPath(cmd.args['env'], "INCLUDE", MSVCDir + '\\ATL\\INCLUDE')
- addEnvPath(cmd.args['env'], "INCLUDE", MSVCDir + '\\MFC\\INCLUDE')
-
- addEnvPath(cmd.args['env'], "LIB", MSVCDir + '\\LIB')
- addEnvPath(cmd.args['env'], "LIB", MSVCDir + '\\MFC\\LIB')
-
- def start(self):
- command = ["msdev"]
- command.append(self.projectfile)
- command.append("/MAKE")
- if self.project is not None:
- command.append(self.project + " - " + self.config)
- else:
- command.append("ALL - " + self.config)
- if self.mode == "rebuild":
- command.append("/REBUILD")
- elif self.mode == "clean":
- command.append("/CLEAN")
- else:
- command.append("/BUILD")
- if self.useenv:
- command.append("/USEENV")
- self.setCommand(command)
- return VisualStudio.start(self)
-
-class VC7(VisualStudio):
- default_installdir = 'C:\\Program Files\\Microsoft Visual Studio .NET 2003'
-
- def setupEnvironment(self, cmd):
- VisualStudio.setupEnvironment(self, cmd)
-
- VSInstallDir = self.installdir + '\\Common7\\IDE'
- VCInstallDir = self.installdir
- MSVCDir = self.installdir + '\\VC7'
-
- addEnvPath(cmd.args['env'], "PATH", VSInstallDir)
- addEnvPath(cmd.args['env'], "PATH", MSVCDir + '\\BIN')
- addEnvPath(cmd.args['env'], "PATH", VCInstallDir + '\\Common7\\Tools')
- addEnvPath(cmd.args['env'], "PATH", VCInstallDir + '\\Common7\\Tools\\bin')
-
- addEnvPath(cmd.args['env'], "INCLUDE", MSVCDir + '\\INCLUDE')
- addEnvPath(cmd.args['env'], "INCLUDE", MSVCDir + '\\ATLMFC\\INCLUDE')
- addEnvPath(cmd.args['env'], "INCLUDE", MSVCDir + '\\PlatformSDK\\include')
- addEnvPath(cmd.args['env'], "INCLUDE", VCInstallDir + '\\SDK\\v1.1\\include')
-
- addEnvPath(cmd.args['env'], "LIB", MSVCDir + '\\LIB')
- addEnvPath(cmd.args['env'], "LIB", MSVCDir + '\\ATLMFC\\LIB')
- addEnvPath(cmd.args['env'], "LIB", MSVCDir + '\\PlatformSDK\\lib')
- addEnvPath(cmd.args['env'], "LIB", VCInstallDir + '\\SDK\\v1.1\\lib')
-
- def start(self):
- command = ["devenv.com"]
- command.append(self.projectfile)
- if self.mode == "rebuild":
- command.append("/Rebuild")
- elif self.mode == "clean":
- command.append("/Clean")
- else:
- command.append("/Build")
- command.append(self.config)
- if self.useenv:
- command.append("/UseEnv")
- if self.project is not None:
- command.append("/Project")
- command.append(self.project)
- self.setCommand(command)
- return VisualStudio.start(self)
-
-#alias VC7 as VS2003
-VS2003 = VC7
-
-class VC8(VC7):
-
- # Our ones
- arch = None
- default_installdir = 'C:\\Program Files\\Microsoft Visual Studio 8'
-
- renderables = ['arch']
-
- def __init__(self, arch = "x86", **kwargs):
- self.arch = arch
-
- # always upcall !
- VisualStudio.__init__(self, **kwargs)
-
- def setupEnvironment(self, cmd):
- VisualStudio.setupEnvironment(self, cmd)
-
- VSInstallDir = self.installdir
- VCInstallDir = self.installdir + '\\VC'
-
- addEnvPath(cmd.args['env'], "PATH", VSInstallDir + '\\Common7\\IDE')
- if self.arch == "x64":
- addEnvPath(cmd.args['env'], "PATH", VCInstallDir + '\\BIN\\x86_amd64')
- addEnvPath(cmd.args['env'], "PATH", VCInstallDir + '\\BIN')
- addEnvPath(cmd.args['env'], "PATH", VSInstallDir + '\\Common7\\Tools')
- addEnvPath(cmd.args['env'], "PATH", VSInstallDir + '\\Common7\\Tools\\bin')
- addEnvPath(cmd.args['env'], "PATH", VCInstallDir + '\\PlatformSDK\\bin')
- addEnvPath(cmd.args['env'], "PATH", VSInstallDir + '\\SDK\\v2.0\\bin')
- addEnvPath(cmd.args['env'], "PATH", VCInstallDir + '\\VCPackages')
- addEnvPath(cmd.args['env'], "PATH", r'${PATH}')
-
- addEnvPath(cmd.args['env'], "INCLUDE", VCInstallDir + '\\INCLUDE')
- addEnvPath(cmd.args['env'], "INCLUDE", VCInstallDir + '\\ATLMFC\\include')
- addEnvPath(cmd.args['env'], "INCLUDE", VCInstallDir + '\\PlatformSDK\\include')
-
- archsuffix = ''
- if self.arch == "x64":
- archsuffix = '\\amd64'
- addEnvPath(cmd.args['env'], "LIB", VCInstallDir + '\\LIB' + archsuffix)
- addEnvPath(cmd.args['env'], "LIB", VCInstallDir + '\\ATLMFC\\LIB' + archsuffix)
- addEnvPath(cmd.args['env'], "LIB", VCInstallDir + '\\PlatformSDK\\lib' + archsuffix)
- addEnvPath(cmd.args['env'], "LIB", VSInstallDir + '\\SDK\\v2.0\\lib' + archsuffix)
-
-#alias VC8 as VS2005
-VS2005 = VC8
-
-class VCExpress9(VC8):
- def start(self):
- command = ["vcexpress"]
- command.append(self.projectfile)
- if self.mode == "rebuild":
- command.append("/Rebuild")
- elif self.mode == "clean":
- command.append("/Clean")
- else:
- command.append("/Build")
- command.append(self.config)
- if self.useenv:
- command.append("/UseEnv")
- if self.project is not None:
- command.append("/Project")
- command.append(self.project)
- self.setCommand(command)
- return VisualStudio.start(self)
-
-# Add first support for VC9 (Same as VC8, with a different installdir)
-class VC9(VC8):
- default_installdir = 'C:\\Program Files\\Microsoft Visual Studio 9.0'
-
-VS2008 = VC9
-
-# VC10 doesn't look like it needs extra stuff.
-class VC10(VC9):
- default_installdir = 'C:\\Program Files\\Microsoft Visual Studio 10.0'
-
-VS2010 = VC10
-
-# VC11 doesn't look like it needs extra stuff.
-class VC11(VC10):
- default_installdir = 'C:\\Program Files\\Microsoft Visual Studio 11.0'
-
-VS2012 = VC11
-
-class MsBuild(VisualStudio):
- platform = None
-
- def __init__(self, platform, **kwargs):
- self.platform = platform
- VisualStudio.__init__(self, **kwargs)
-
- def setupEnvironment(self, cmd):
- VisualStudio.setupEnvironment(self, cmd)
- cmd.args['env']['VCENV_BAT'] = "\"${VS110COMNTOOLS}..\\..\\VC\\vcvarsall.bat\""
-
- def describe(self, done=False):
- rv = []
- if done:
- rv.append("built")
- else:
- rv.append("building")
- if self.project is not None:
- rv.append("%s for" % (self.project))
- else:
- rv.append("solution for")
- rv.append("%s|%s" % (self.config, self.platform))
- return rv
-
- def start(self):
- if self.platform is None:
- config.error('platform is mandatory. Please specify a string such as "Win32"')
-
- command = ["%VCENV_BAT%",
- "x86",
- "&&",
- "msbuild",
- self.projectfile,
- "/p:Configuration=%s" % (self.config),
- "/p:Platform=%s" % (self.platform)]
- if self.project is not None:
- command.append("/t:%s" % (self.project))
-
- self.setCommand(command)
-
- return VisualStudio.start(self)