build/python: refactoring: introduce new class MakeProject

This introduces a the new class MakeProject, which is used as a base
class for all Makefile based thirdparty libraries.
This commit is contained in:
Felix Hädicke
2017-10-06 23:06:28 +02:00
committed by Max Kellermann
parent 1ca70d9759
commit 8217d75ca1
2 changed files with 37 additions and 10 deletions

@ -0,0 +1,28 @@
import subprocess
from build.project import Project
class MakeProject(Project):
def __init__(self, url, md5, installed,
install_target='install',
**kwargs):
Project.__init__(self, url, md5, installed, **kwargs)
self.install_target = install_target
def get_simultaneous_jobs(self):
return 12
def get_make_args(self, toolchain):
return ['--quiet', '-j' + str(self.get_simultaneous_jobs())]
def get_make_install_args(self, toolchain):
return ['--quiet', self.install_target]
def make(self, toolchain, wd, args):
subprocess.check_call(['/usr/bin/make'] + args,
cwd=wd, env=toolchain.env)
def build(self, toolchain, wd, install=True):
self.make(toolchain, wd, self.get_make_args(toolchain))
if install:
self.make(toolchain, wd, self.get_make_install_args(toolchain))