summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
diff options
context:
space:
mode:
authorFlorian Maushart <FloriansGit@online.ms>2018-04-14 20:50:19 (GMT)
committerBrad King <brad.king@kitware.com>2018-05-25 13:42:20 (GMT)
commit1ab3881ec9e809ac5f6cad5cd84048310b8683e2 (patch)
tree2b5c7c5a9ad2e38a584de50b5f019056883c3877 /Source/cmGlobalNinjaGenerator.cxx
parentdfc692342831186053bd385605c8a21239e2e77d (diff)
downloadCMake-1ab3881ec9e809ac5f6cad5cd84048310b8683e2.zip
CMake-1ab3881ec9e809ac5f6cad5cd84048310b8683e2.tar.gz
CMake-1ab3881ec9e809ac5f6cad5cd84048310b8683e2.tar.bz2
cmake: Add options for parallel builds to --build mode
While we already support `cmake --build . -- -j`, the options after `--` are specific to the native build tool. Add new options `--parallel [<N>]` and `-j [<N>]` to abstract this and map to the proper option for the native build tool.
Diffstat (limited to 'Source/cmGlobalNinjaGenerator.cxx')
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index c19a61c..69bc3be 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -674,7 +674,7 @@ void cmGlobalNinjaGenerator::GenerateBuildCommand(
std::vector<std::string>& makeCommand, const std::string& makeProgram,
const std::string& /*projectName*/, const std::string& /*projectDir*/,
const std::string& targetName, const std::string& /*config*/, bool /*fast*/,
- bool verbose, std::vector<std::string> const& makeOptions)
+ int jobs, bool verbose, std::vector<std::string> const& makeOptions)
{
makeCommand.push_back(this->SelectMakeProgram(makeProgram));
@@ -682,6 +682,12 @@ void cmGlobalNinjaGenerator::GenerateBuildCommand(
makeCommand.push_back("-v");
}
+ if ((jobs != cmake::NO_BUILD_PARALLEL_LEVEL) &&
+ (jobs != cmake::DEFAULT_BUILD_PARALLEL_LEVEL)) {
+ makeCommand.push_back("-j");
+ makeCommand.push_back(std::to_string(jobs));
+ }
+
makeCommand.insert(makeCommand.end(), makeOptions.begin(),
makeOptions.end());
if (!targetName.empty()) {