diff options
author | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2019-05-24 20:45:22 +0200 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2019-05-24 11:45:22 -0700 |
commit | c291866b9ac1c6b36022af4b8e9f362669e5f84f (patch) | |
tree | 62bed0c148d735b0c346da64f28e3bb3d0a70b6b /var | |
parent | 1bd4521f723f7ac1d901423829ca965aeb00f9de (diff) | |
download | spack-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.py | 2 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/bazel/package.py | 7 |
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) |