summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2019-05-24 20:45:22 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2019-05-24 11:45:22 -0700
commitc291866b9ac1c6b36022af4b8e9f362669e5f84f (patch)
tree62bed0c148d735b0c346da64f28e3bb3d0a70b6b /var
parent1bd4521f723f7ac1d901423829ca965aeb00f9de (diff)
downloadspack-c291866b9ac1c6b36022af4b8e9f362669e5f84f.tar.gz
spack-c291866b9ac1c6b36022af4b8e9f362669e5f84f.tar.bz2
spack-c291866b9ac1c6b36022af4b8e9f362669e5f84f.tar.xz
spack-c291866b9ac1c6b36022af4b8e9f362669e5f84f.zip
build env: simplify handling of parallel jobs (#11524)
This PR implements several refactors requested in #11373, specifically: - Config scopes are used to handle builtin defaults, command line overrides and package overrides (`parallel=False`) - `Package.make_jobs` attribute has been removed; `make_jobs` remains as a module-scope variable in the build environment. - The use of the argument `-j` has been rationalized across commands - move '-j'/'--jobs' argument into `spack.cmd.common.arguments` - Add unit tests to check that setting parallel jobs works as expected - add new test to ensure that build job setting is isolated to each build - Fix packages that used `Package.make_jobs` (i.e. `bazel`)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/a/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bazel/package.py7
2 files changed, 7 insertions, 2 deletions
diff --git a/var/spack/repos/builtin.mock/packages/a/package.py b/var/spack/repos/builtin.mock/packages/a/package.py
index 7e5a6f72e6..951e633d78 100644
--- a/var/spack/repos/builtin.mock/packages/a/package.py
+++ b/var/spack/repos/builtin.mock/packages/a/package.py
@@ -32,6 +32,8 @@ class A(AutotoolsPackage):
depends_on('b', when='foobar=bar')
+ parallel = False
+
def with_or_without_fee(self, activated):
if not activated:
return '--no-fee'
diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py
index 0c218f6641..51e4e51050 100644
--- a/var/spack/repos/builtin/packages/bazel/package.py
+++ b/var/spack/repos/builtin/packages/bazel/package.py
@@ -3,6 +3,8 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import inspect
+
from spack import *
from multiprocessing import cpu_count
from spack.util.environment import env_flag
@@ -90,8 +92,9 @@ class Bazel(Package):
return super(BazelExecutable, self).__call__(*args, **kwargs)
jobs = cpu_count()
+ dependent_module = inspect.getmodule(dependent_spec.package)
if not dependent_spec.package.parallel:
jobs = 1
- elif dependent_spec.package.make_jobs:
- jobs = dependent_spec.package.make_jobs
+ elif dependent_module.make_jobs:
+ jobs = dependent_module.make_jobs
module.bazel = BazelExecutable('bazel', 'build', jobs)