Merge topic 'fbuild_fix_pch' into release-4.2

878d154322 FASTBuild: fix multi-language PCHs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11404
This commit is contained in:
Brad King
2025-11-15 13:58:31 +00:00
committed by Kitware Robot
+5 -3
View File
@@ -1499,11 +1499,13 @@ void cmFastbuildNormalTargetGenerator::GenerateObjects(FastbuildTarget& target)
objects.reserve(nodesPermutations.size());
for (auto& val : nodesPermutations) {
auto& node = val.second;
objects.emplace_back(std::move(node));
if (!objects.back().PCHInputFile.empty()) {
if (!node.PCHInputFile.empty()) {
// Node that produces PCH should be the first one, since other nodes
// might reuse this PCH.
std::swap(*objects.begin(), objects.back());
// Note: we might have several such nodes for different languages.
objects.insert(objects.begin(), std::move(node));
} else {
objects.emplace_back(std::move(node));
}
}
if (useUnity) {