mirror of
https://github.com/NixOS/nix
synced 2025-06-25 10:41:16 +02:00
Support auto-configuration of build-max-jobs
"build-max-jobs" and the "-j" option can now be set to "auto" to use the number of CPUs in the system. (Unlike build-cores, it doesn't use 0 to imply auto-configuration, because a) magic values are a bad idea in general; b) 0 is a legitimate value used to disable local building.) Fixes #1198.
This commit is contained in:
parent
3fab1f04a7
commit
7251d048fa
4 changed files with 18 additions and 7 deletions
|
@ -147,7 +147,14 @@ int Settings::get(const string & name, int def)
|
|||
void Settings::update()
|
||||
{
|
||||
_get(tryFallback, "build-fallback");
|
||||
_get(maxBuildJobs, "build-max-jobs");
|
||||
|
||||
auto s = get("build-max-jobs", std::string("1"));
|
||||
if (s == "auto")
|
||||
maxBuildJobs = std::max(1U, std::thread::hardware_concurrency());
|
||||
else
|
||||
if (!string2Int(s, maxBuildJobs))
|
||||
throw Error("configuration setting ‘build-max-jobs’ should be ‘auto’ or an integer");
|
||||
|
||||
_get(buildCores, "build-cores");
|
||||
_get(thisSystem, "system");
|
||||
_get(maxSilentTime, "build-max-silent-time");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue