import os
-import string
import subprocess
import sys
import time
return self.name
- def clean(self, dir=None, projectFile=None, options=None):
+ def getProjectFileArg(self, projectFile = None):
+ result = []
+ if projectFile:
+ result.append(projectFile)
+ return result
+
+ def clean(self, dir=None, projectFile=None, options=[]):
"""
dir = the directory containing the project file
projectFile = Some formats need to explicitly specify the project file's name
"""
if self.isAvailable():
- if options:
- optionList = list(options)
- else:
- optionList = []
-
- optionList.insert(0, self.getProgramPath())
- optionList.append("clean")
+ args = [self.getProgramPath()]
+ args.extend(self.getProjectFileArg(projectFile))
+ args.append("clean")
+ args.extend(options)
- result = runInDir(optionList, dir)
+ result = runInDir(args, dir)
return result
return False
- def configure(self, options=None):
+ def configure(self, dir=None, options=[]):
# if we don't have configure, just report success
- return True
+ return 0
- def build(self, dir=None, projectFile=None, targets=None, options=None):
+ def build(self, dir=None, projectFile=None, targets=None, options=[]):
if self.isAvailable():
- if options:
- optionList = list(options)
- else:
- optionList = []
-
- optionList.insert(0, self.getProgramPath())
+ args = [self.getProgramPath()]
+ args.extend(self.getProjectFileArg(projectFile))
+ args.extend(options)
- result = runInDir(optionList, dir)
+ result = runInDir(args, dir)
return result
return 1
- def install(self, dir=None, options=None):
+ def install(self, dir=None, projectFile=None, options=[]):
if self.isAvailable():
-
- args = ["make", "install"]
- if options:
- args.extend(options)
+ args = [self.getProgramPath()]
+ args.extend(self.getProjectFileArg(projectFile))
+ args.append("install")
+ args.extend(options)
result = runInDir(args, dir)
return result
sys.stderr.write("Could not find configure script at %r. Have you run autoconf?\n" % dir)
return 1
- optionsStr = string.join(options, " ") if options else ""
+ optionsStr = " ".join(options) if options else ""
command = "%s %s" % (configure_cmd, optionsStr)
print(command)
result = os.system(command)
class MSVCBuilder(Builder):
- def __init__(self):
- Builder.__init__(self, commandName="nmake.exe", formatName="msvc")
+ def __init__(self, commandName="nmake.exe"):
+ Builder.__init__(self, commandName=commandName, formatName="msvc")
def isAvailable(self):
PATH = os.environ['PATH'].split(os.path.pathsep)
return True
return False
+ def getProjectFileArg(self, projectFile = None):
+ result = []
+ if projectFile:
+ result.extend(['-f', projectFile])
+
+ return result
+
class MSVCProjectBuilder(Builder):
def __init__(self):