From dd203d5b8671996fde8ac3a31628f5668f37dc07 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 26 Apr 2013 06:37:17 +0000 Subject: [PATCH] Changes needed to help builder.py be more generic and working well with other modules git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- build/tools/builder.py | 71 +++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/build/tools/builder.py b/build/tools/builder.py index 635c5ae46b..c69d26ab10 100755 --- a/build/tools/builder.py +++ b/build/tools/builder.py @@ -88,50 +88,50 @@ class Builder: 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 @@ -153,13 +153,10 @@ class AutoconfBuilder(GNUMakeBuilder): def __init__(self, formatName="autoconf"): GNUMakeBuilder.__init__(self, formatName=formatName) - def configure(self, dir=None, options=None): - #olddir = os.getcwd() - #os.chdir(dir) - - configdir = dir + def configure(self, dir=None, options=[]): if not dir: - configdir = os.getcwd() + dir = os.getcwd() + configdir = dir configure_cmd = "" while os.path.exists(configdir): @@ -178,11 +175,14 @@ class AutoconfBuilder(GNUMakeBuilder): sys.stderr.write("Could not find configure script at %r. Have you run autoconf?\n" % dir) return 1 + olddir = os.getcwd() + os.chdir(configdir) + optionsStr = " ".join(options) if options else "" - command = "%s %s" % (configure_cmd, optionsStr) + command = "./configure %s" % optionsStr print(command) result = os.system(command) - #os.chdir(olddir) + os.chdir(olddir) return result @@ -197,6 +197,13 @@ class MSVCBuilder(Builder): return True return False + def getProjectFileArg(self, projectFile = None): + result = [] + if projectFile: + result.extend(['-f', projectFile]) + + return result + class MSVCProjectBuilder(Builder): def __init__(self): -- 2.45.2