Make auto-debuild configuration idempotent
[mass-build.git] / build_system.py
index 8ebf6f34aa215149f222b3302d106813f3c6b330..979a47ac35e078c8200f7e60b3888d14e97d983d 100644 (file)
@@ -52,8 +52,11 @@ try:
                        }
                        self.copyOption(config, 'jobs', 'parallelJobs')
                        self.copyOption(module, 'dbgPackage')
+                       self.copyOption(module, 'skipFiles', 'binarySkipFiles')
+                       self.copyOption(module, 'installFiles', 'binaryInstall')
                        self.copyOption(module, 'buildDepends')
                        self.copyOption(module, 'binaryDepends')
+                       self.copyOption(module, 'binaryRecommends')
                        if buildSystem == 'cmake':
                                self.copyOption(module, 'cmakeParameters')
                        self.vcs = vcs
@@ -65,22 +68,22 @@ try:
                                self.autoDebuildConfig[dstName] = src[name]
 
                def configure(self, force=False): # force is ignored
+                       if self.configured: return # do not configure twice
                        self.autoDebuildConfig['version'] = self.vcs.version() # by now, data has been fetched, so this is possible
                        if self.autoDebuildConfig['version'] is None:
                                raise Exception("VCS did not provide us with a proper version, please fix this")
-                       self.vcs.ignore('/debian/') # make sure the debian folder is ignored
                        os.chdir(self.sourceFolder)
                        #print self.autoDebuildConfig
                        self.files = auto_debuild.createDebianFiles(self.autoDebuildConfig)
                        self.configured = True
 
                def build(self):
-                       if not self.configured: self.configure()
+                       self.configure() # make sure we are configured (this call is idempotent)
                        os.chdir(self.sourceFolder)
                        auto_debuild.buildDebianPackage(self.autoDebuildConfig)
 
                def install(self):
-                       if not self.configured: self.configure()
+                       self.configure() # make sure we are configured (this call is idempotent)
                        os.chdir(self.sourceFolder)
                        subprocess.check_call(['sudo', 'dpkg', '--install'] + self.files)
 except ImportError: