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:
Eelco Dolstra 2017-02-28 12:54:50 +01:00
parent 3fab1f04a7
commit 7251d048fa
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
4 changed files with 18 additions and 7 deletions

View file

@ -167,6 +167,10 @@ struct LegacyArgs : public MixCommonArgs
settings.set("build-fallback", "true");
});
mkFlag1('j', "max-jobs", "jobs", "maximum number of parallel builds", [=](std::string s) {
settings.set("build-max-jobs", s);
});
auto intSettingAlias = [&](char shortName, const std::string & longName,
const std::string & description, const std::string & dest) {
mkFlag<unsigned int>(shortName, longName, description, [=](unsigned int n) {
@ -174,7 +178,6 @@ struct LegacyArgs : public MixCommonArgs
});
};
intSettingAlias('j', "max-jobs", "maximum number of parallel builds", "build-max-jobs");
intSettingAlias(0, "cores", "maximum number of CPU cores to use inside a build", "build-cores");
intSettingAlias(0, "max-silent-time", "number of seconds of silence before a build is killed", "build-max-silent-time");
intSettingAlias(0, "timeout", "number of seconds before a build is killed", "build-timeout");