FASTBuild: fix multi-language PCHs

Fixes: #27371
This commit is contained in:
Eduard Voronkin authored and Brad King committed 2025-11-13 10:00:33 -05:00
1 parent 39d4fc2bb4
commit 878d154322
1 file changed
+5 -3
+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) {