From: Ralf Jung Date: Sun, 9 Sep 2012 18:58:33 +0000 (+0200) Subject: make waitAfterConfig a command-line option, instead of configuring it in the conf... X-Git-Url: https://git.ralfj.de/mass-build.git/commitdiff_plain/5144ec41af16647ac2cd974230a753ee2683f87d?ds=inline make waitAfterConfig a command-line option, instead of configuring it in the conf file --- diff --git a/build_system.py b/build_system.py index f56c546..bdca10a 100644 --- a/build_system.py +++ b/build_system.py @@ -1,6 +1,6 @@ import os, shutil, subprocess -'''A build system must have a "build" method with an optional "reconfigure" parameter.''' +'''A build system must have a "build" method with parameters "reconfigure" and "waitAfterConfig".''' # Compile, build, and install cmake projects: class CMake: @@ -9,7 +9,7 @@ class CMake: self.buildFolder = os.path.abspath(buildFolder) self.config = config - def build(self, reconfigure=False): + def build(self, reconfigure, waitAfterConfig): # Make sure we have a build directory if not os.path.exists(self.buildFolder): os.makedirs(self.buildFolder) os.chdir(self.buildFolder) @@ -22,7 +22,7 @@ class CMake: '-DCMAKE_INSTALL_PREFIX='+self.config['installDir']]+self.config.get('cmakeParameters', [])) os.unsetenv('PKG_CONFIG_PATH') # if asked to do so, wait - if self.config['waitAfterConfig']: + if waitAfterConfig: raw_input('Configuration done. Hit "Enter" to build the project. ') # run compilation subprocess.check_call(self.config['buildCmdPrefix'] + ['make', '-j'+str(self.config['jobs'])]) @@ -40,7 +40,7 @@ try: self.config = config self.vcs = vcs - def build(self, reconfigure=False): # reconfigure is ignored (we always do a reconfiguration) + def build(self, reconfigure, waitAfterConfig): # reconfigure is ignored (we always do a reconfiguration) # create auto-debuild configuration versionName = self.config['versionName'] if 'versionName' in self.config else self.vcs.version() autoDebuildConfig = { @@ -52,11 +52,12 @@ try: 'email': self.config['debEMail'], 'parallelJobs': self.config['jobs'], 'version': versionName, + 'waitAfterConfig': waitAfterConfig, } if autoDebuildConfig['version'] is None: raise Exception("VCS did not provide us with a proper version number, please fix this") # copy some more optional configuration - for option in ('waitAfterConfig', 'dbgPackage', 'section', 'withPython2', 'binarySkipFiles', 'binaryInstallFiles', + for option in ('dbgPackage', 'section', 'withPython2', 'binarySkipFiles', 'binaryInstallFiles', 'buildDepends', 'binaryDepends', 'binaryRecommends', 'binaryProvides', 'binaryConflicts', 'binaryBreaks', 'binaryReplaces', 'binaryBreaksReplaces', 'alternatives', 'cmakeParameters', 'automakeParameters'): diff --git a/mass_build.py b/mass_build.py index 096d9a5..800917d 100755 --- a/mass_build.py +++ b/mass_build.py @@ -40,6 +40,9 @@ parser.add_argument("-c, --config", parser.add_argument("--reconfigure", action="store_true", dest="reconfigure", help="Force configuration to be run") +parser.add_argument("--wait-after-config", + action="store_true", dest="wait_after_config", + help="Wait for user confirmation after configuration is finished") parser.add_argument("--reset-source", action="store_true", dest="reset_source", help="Reset sourcecode to the given version (removes local changes!)") @@ -123,7 +126,7 @@ for project in workProjects: print "Updating project",project.sourceFolder() project.vcs.update(forceVersion=args.reset_source) print "Building project",project.sourceFolder() - project.buildSystem.build(reconfigure=args.reconfigure) + project.buildSystem.build(reconfigure=args.reconfigure, waitAfterConfig=args.wait_after_config) print except (subprocess.CalledProcessError, KeyboardInterrupt) as e: # for some exceptions, a stackrace is usually pointless print >> sys.stderr