X-Git-Url: https://git.ralfj.de/mass-build.git/blobdiff_plain/9b1d3a9e46d2e807e6beac1cb0c70e46cd951e31..d81d19eaf43a265baba2b9d8e97d771ee66cde01:/build_system.py diff --git a/build_system.py b/build_system.py index f56c546..1c0411b 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,12 +22,12 @@ 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'])]) + subprocess.check_call(self.config.get('buildCmdPrefix', []) + ['make', '-j'+str(self.config['jobs'])]) # run installation - subprocess.check_call(self.config['installCmdPrefix'] + ['make', 'install']) + subprocess.check_call(self.config.get('installCmdPrefix', []) + ['make', 'install']) # if auto-debuild is available, provide a wrapper for it try: @@ -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'):