diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx index bac3f5bc68..62d7ffbb13 100644 --- a/Source/cmQtAutoGenInitializer.cxx +++ b/Source/cmQtAutoGenInitializer.cxx @@ -1168,7 +1168,8 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() if (this->Moc.Enabled) { this->AddGeneratedSource(this->Moc.CompilationFile, this->Moc, true); if (useNinjaDepfile) { - if (this->MultiConfig) { + if (this->MultiConfig && + !this->Makefile->GetSafeDefinition("CMAKE_CROSS_CONFIGS").empty()) { // Make all mocs_compilation_.cpp files byproducts of the // ${target}_autogen/timestamp custom command. // We cannot just use Moc.CompilationFileGenex here, because that @@ -1215,10 +1216,23 @@ bool cmQtAutoGenInitializer::InitAutogenTarget() this->GlobalGen->GetQtAutoGenConfigs(configs); bool constexpr stdPipesUTF8 = true; cmCustomCommandLines commandLines; - for (auto const& config : configs) { + if (this->Makefile->GetSafeDefinition("CMAKE_CROSS_CONFIGS").empty()) { + std::string autugenInfoFileconfig; + if (this->MultiConfig) { + autugenInfoFileconfig = "$"; + } else { + autugenInfoFileconfig = configs[0]; + } commandLines.push_back(cmMakeCommandLine( { cmSystemTools::GetCMakeCommand(), "-E", "cmake_autogen", - this->AutogenTarget.InfoFile, config })); + this->AutogenTarget.InfoFile, autugenInfoFileconfig })); + + } else { + for (auto const& config : configs) { + commandLines.push_back(cmMakeCommandLine( + { cmSystemTools::GetCMakeCommand(), "-E", "cmake_autogen", + this->AutogenTarget.InfoFile, config })); + } } // Use PRE_BUILD on demand