Source code for benchbuild.projects.benchbuild.js

from functools import partial

from plumbum import local

from benchbuild import project
from benchbuild.settings import CFG
from benchbuild.utils import compiler, download, run, wrapping
from benchbuild.utils.cmd import make, mkdir, tar


[docs]@download.with_git( "https://github.com/mozilla/gecko-dev.git", target_dir="gecko-dev.git", clone=False, limit=5) class SpiderMonkey(project.Project): """ SpiderMonkey requires a legacy version of autoconf: autoconf-2.13 """ NAME = 'js' DOMAIN = 'compilation' GROUP = 'benchbuild' VERSION = 'HEAD' SRC_FILE = "gecko-dev.git" src_uri = "https://github.com/mozilla/gecko-dev.git"
[docs] def compile(self): self.download() js_dir = local.path(self.src_file) / "js" / "src" clang = compiler.cc(self) clang_cxx = compiler.cxx(self) with local.cwd(js_dir): make_src_pkg = local["./make-source-package.sh"] with local.env( DIST=self.builddir, MOZJS_MAJOR_VERSION=0, MOZJS_MINOR_VERSION=0, MOZJS_PATCH_VERSION=0): make_src_pkg() mozjs_dir = local.path("mozjs-0.0.0") mozjs_src_dir = mozjs_dir / "js" / "src" tar("xfj", mozjs_dir + ".tar.bz2") with local.cwd(mozjs_src_dir): mkdir("obj") autoconf = local["autoconf-2.13"] autoconf() with local.cwd("obj"): with local.env(CC=str(clang), CXX=str(clang_cxx)): configure = local["../configure"] configure = configure["--without-system-zlib"] run.run(configure) mozjs_obj_dir = mozjs_src_dir / "obj" with local.cwd(mozjs_obj_dir): run.run(make["-j", str(CFG["jobs"])])
[docs] def run_tests(self, runner): mozjs_obj_dir = local.path("mozjs-0.0.0") / "js" / "src" / "obj" self.runtime_extension = partial(self, may_wrap=False) wrapping.wrap(mozjs_obj_dir / "js" / "src" / "shell" / "js", self) with local.cwd(mozjs_obj_dir): runner(make["check-jstests"])