Autogen: Move duplicated filename generation code into a function

This commit is contained in:
Duncan Barber
2021-04-10 15:04:22 +01:00
parent 087b717aef
commit 1876f2d03f
2 changed files with 23 additions and 26 deletions

View File

@@ -430,12 +430,8 @@ bool cmQtAutoGenInitializer::InitCustomTargets()
cmSystemTools::ConvertToUnixSlashes(this->Dir.Work); cmSystemTools::ConvertToUnixSlashes(this->Dir.Work);
// Include directory // Include directory
this->ConfigFileNames(this->Dir.Include, this->ConfigFileNamesAndGenex(this->Dir.Include, this->Dir.IncludeGenExp,
cmStrCat(this->Dir.Build, "/include"), ""); cmStrCat(this->Dir.Build, "/include"), "");
this->Dir.IncludeGenExp = this->Dir.Include.Default;
if (this->MultiConfig) {
this->Dir.IncludeGenExp += "_$<CONFIG>";
}
} }
// Moc, Uic and _autogen target settings // Moc, Uic and _autogen target settings
@@ -586,15 +582,9 @@ bool cmQtAutoGenInitializer::InitMoc()
cmStrCat(this->Dir.Build, "/mocs_compilation.cpp"); cmStrCat(this->Dir.Build, "/mocs_compilation.cpp");
this->Moc.CompilationFileGenex = this->Moc.CompilationFile.Default; this->Moc.CompilationFileGenex = this->Moc.CompilationFile.Default;
} else { } else {
this->ConfigFileNames(this->Moc.CompilationFile, this->ConfigFileNamesAndGenex(
cmStrCat(this->Dir.Build, "/mocs_compilation"), this->Moc.CompilationFile, this->Moc.CompilationFileGenex,
".cpp"); cmStrCat(this->Dir.Build, "/mocs_compilation"_s), ".cpp"_s);
if (this->MultiConfig) {
this->Moc.CompilationFileGenex =
cmStrCat(this->Dir.Build, "/mocs_compilation_$<CONFIG>.cpp"_s);
} else {
this->Moc.CompilationFileGenex = this->Moc.CompilationFile.Default;
}
} }
// Moc predefs // Moc predefs
@@ -966,17 +956,10 @@ bool cmQtAutoGenInitializer::InitScanFiles()
cmSystemTools::GetFilenameWithoutLastExtension(fullPath), ".h"_s); cmSystemTools::GetFilenameWithoutLastExtension(fullPath), ".h"_s);
ConfigString uiHeader; ConfigString uiHeader;
uiHeader.Default = std::string uiHeaderGenex;
cmStrCat(this->Dir.Build, "/include"_s, uiHeaderFilePath); this->ConfigFileNamesAndGenex(
auto uiHeaderGenex = uiHeader.Default; uiHeader, uiHeaderGenex, cmStrCat(this->Dir.Build, "/include"_s),
if (this->MultiConfig) { uiHeaderFilePath);
uiHeaderGenex = cmStrCat(this->Dir.Build, "/include_$<CONFIG>"_s,
uiHeaderFilePath);
for (std::string const& cfg : this->ConfigsList) {
uiHeader.Config[cfg] = cmStrCat(this->Dir.Build, "/include_"_s,
cfg, uiHeaderFilePath);
}
}
this->Uic.UiHeaders.emplace_back( this->Uic.UiHeaders.emplace_back(
std::make_pair(uiHeader, uiHeaderGenex)); std::make_pair(uiHeader, uiHeaderGenex));
@@ -1790,6 +1773,18 @@ void cmQtAutoGenInitializer::ConfigFileNames(ConfigString& configString,
} }
} }
void cmQtAutoGenInitializer::ConfigFileNamesAndGenex(
ConfigString& configString, std::string& genex, cm::string_view const prefix,
cm::string_view const suffix)
{
this->ConfigFileNames(configString, prefix, suffix);
if (this->MultiConfig) {
genex = cmStrCat(prefix, "_$<CONFIG>"_s, suffix);
} else {
genex = configString.Default;
}
}
void cmQtAutoGenInitializer::ConfigFileClean(ConfigString& configString) void cmQtAutoGenInitializer::ConfigFileClean(ConfigString& configString)
{ {
this->AddCleanFile(configString.Default); this->AddCleanFile(configString.Default);

View File

@@ -141,6 +141,8 @@ private:
void ConfigFileNames(ConfigString& configString, cm::string_view prefix, void ConfigFileNames(ConfigString& configString, cm::string_view prefix,
cm::string_view suffix); cm::string_view suffix);
void ConfigFileNamesAndGenex(ConfigString& configString, std::string& genex,
cm::string_view prefix, cm::string_view suffix);
void ConfigFileClean(ConfigString& configString); void ConfigFileClean(ConfigString& configString);
std::string GetMocBuildPath(MUFile const& muf); std::string GetMocBuildPath(MUFile const& muf);