Commit 41685c8b authored by Sebastian Holtermann's avatar Sebastian Holtermann
Browse files

Autogen: Let AUTORCC generate output for all configurations

For multi configuration generators let AUTORCC generate
the rcc output for all configurations.  This is a workaround
for the incomplete `$<CONFIG>` support in the DEPENDS and OUTPUT
clauses of a custom_command/custom_target.  Since we can't depend
on the per-config rcc output file we somehow must ensure the successful
rcc build for one configuration doesn't shadow the need to rcc rebuild
for a second configuration.

Closes #18006
parent 2930a198
......@@ -628,14 +628,26 @@ void cmQtAutoGenInitializer::InitCustomTargets()
std::vector<std::string> ccOutput;
ccOutput.push_back(qrc.RccFile);
cmCustomCommandLines commandLines;
{
if (this->MultiConfig) {
// Build for all configurations
for (std::string const& config : this->ConfigsList) {
cmCustomCommandLine currentLine;
currentLine.push_back(cmSystemTools::GetCMakeCommand());
currentLine.push_back("-E");
currentLine.push_back("cmake_autorcc");
currentLine.push_back(qrc.InfoFile);
currentLine.push_back(config);
commandLines.push_back(std::move(currentLine));
}
} else {
cmCustomCommandLine currentLine;
currentLine.push_back(cmSystemTools::GetCMakeCommand());
currentLine.push_back("-E");
currentLine.push_back("cmake_autorcc");
currentLine.push_back(qrc.InfoFile);
currentLine.push_back("$<CONFIGURATION>");
currentLine.push_back("$<CONFIG>");
commandLines.push_back(std::move(currentLine));
}
std::string ccComment = "Automatic RCC for ";
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment