diff options
author | Bartosz Kosiorek <bartosz.kosiorek@tomtom.com> | 2019-02-08 13:28:49 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-03-05 13:55:28 (GMT) |
commit | 324d18bb3418aee8dcb63e28106ac0dac6abea71 (patch) | |
tree | 390a0ccc8c8bb955c0330af9bd66621a71ea2041 /Source/cmGlobalGhsMultiGenerator.cxx | |
parent | ebc94500c1726f393ac6119848d53deca47e1ccf (diff) | |
download | CMake-324d18bb3418aee8dcb63e28106ac0dac6abea71.zip CMake-324d18bb3418aee8dcb63e28106ac0dac6abea71.tar.gz CMake-324d18bb3418aee8dcb63e28106ac0dac6abea71.tar.bz2 |
cmake: Teach --build mode to support multiple targets
Fixes: #16136
Diffstat (limited to 'Source/cmGlobalGhsMultiGenerator.cxx')
-rw-r--r-- | Source/cmGlobalGhsMultiGenerator.cxx | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/Source/cmGlobalGhsMultiGenerator.cxx b/Source/cmGlobalGhsMultiGenerator.cxx index 3511a15..4f1d06a 100644 --- a/Source/cmGlobalGhsMultiGenerator.cxx +++ b/Source/cmGlobalGhsMultiGenerator.cxx @@ -369,12 +369,14 @@ void cmGlobalGhsMultiGenerator::OutputTopLevelProject( fout.Close(); } -void cmGlobalGhsMultiGenerator::GenerateBuildCommand( - GeneratedMakeCommand& makeCommand, const std::string& makeProgram, - const std::string& projectName, const std::string& projectDir, - const std::string& targetName, const std::string& /*config*/, bool /*fast*/, - int jobs, bool /*verbose*/, std::vector<std::string> const& makeOptions) +std::vector<cmGlobalGenerator::GeneratedMakeCommand> +cmGlobalGhsMultiGenerator::GenerateBuildCommand( + const std::string& makeProgram, const std::string& projectName, + const std::string& projectDir, std::vector<std::string> const& targetNames, + const std::string& /*config*/, bool /*fast*/, int jobs, bool /*verbose*/, + std::vector<std::string> const& makeOptions) { + GeneratedMakeCommand makeCommand = {}; const char* gbuild = this->CMakeInstance->GetCacheDefinition("CMAKE_MAKE_PROGRAM"); makeCommand.Add(this->SelectMakeProgram(makeProgram, (std::string)gbuild)); @@ -400,17 +402,23 @@ void cmGlobalGhsMultiGenerator::GenerateBuildCommand( } makeCommand.Add("-top", proj); - if (!targetName.empty()) { - if (targetName == "clean") { + if (!targetNames.empty()) { + if (std::find(targetNames.begin(), targetNames.end(), "clean") != + targetNames.end()) { makeCommand.Add("-clean"); } else { - if (targetName.compare(targetName.size() - 4, 4, ".gpj") == 0) { - makeCommand.Add(targetName); - } else { - makeCommand.Add(targetName + ".gpj"); + for (const auto& tname : targetNames) { + if (!tname.empty()) { + if (tname.compare(tname.size() - 4, 4, ".gpj") == 0) { + makeCommand.Add(tname); + } else { + makeCommand.Add(tname + ".gpj"); + } + } } } } + return { makeCommand }; } void cmGlobalGhsMultiGenerator::WriteMacros(std::ostream& fout) |