Source code for benchbuild.projects.benchbuild.sevenz
from plumbum import local
from benchbuild import project
from benchbuild.utils.cmd import cp, make, tar
from benchbuild.utils import compiler, download, run, wrapping
[docs]@download.with_wget({
'16.02':
'http://downloads.sourceforge.net/'
'project/p7zip/p7zip/16.02/p7zip_16.02_src_all.tar.bz2'
})
class SevenZip(project.Project):
""" 7Zip """
NAME = '7z'
DOMAIN = 'compression'
GROUP = 'benchbuild'
VERSION = '16.02'
SRC_FILE = 'p7zip.tar.bz2'
[docs] def compile(self):
self.download()
unpack_dir = local.path('p7zip_{0}'.format(self.version))
tar('xfj', self.src_file)
cp(unpack_dir / "makefile.linux_clang_amd64_asm",
unpack_dir / "makefile.machine")
clang = compiler.cc(self)
clang_cxx = compiler.cxx(self)
with local.cwd(unpack_dir):
run.run(make["CC=" + str(clang), "CXX=" +
str(clang_cxx), "clean", "all"])
[docs] def run_tests(self, runner):
unpack_dir = local.path('p7zip_{0}'.format(self.version))
_7z = wrapping.wrap(unpack_dir / "bin" / "7za", self)
runner(_7z["b", "-mmt1"])