export: Convert ExportInfo to a struct with meaningful field names

This commit is contained in:
Martin Duffy
2024-12-20 10:40:28 -05:00
parent 41cd84174a
commit 6195cefcfe
4 changed files with 13 additions and 12 deletions

View File

@@ -139,10 +139,9 @@ void cmExportBuildFileGenerator::HandleMissingTarget(
// The target is not in the export.
if (!this->AppendMode) {
auto const& exportInfo = this->FindExportInfo(dependee);
auto const& exportFiles = exportInfo.first;
if (exportFiles.size() == 1) {
std::string missingTarget = exportInfo.second;
if (exportInfo.Files.size() == 1) {
std::string missingTarget = exportInfo.Namespace;
missingTarget += dependee->GetExportName();
link_libs += missingTarget;
@@ -151,7 +150,7 @@ void cmExportBuildFileGenerator::HandleMissingTarget(
}
// We are not appending, so all exported targets should be
// known here. This is probably user-error.
this->ComplainAboutMissingTarget(depender, dependee, exportFiles);
this->ComplainAboutMissingTarget(depender, dependee, exportInfo.Files);
}
// Assume the target will be exported by another command.
// Append it with the export namespace.

View File

@@ -8,7 +8,6 @@
#include <map>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include <cm/string_view>
@@ -133,7 +132,11 @@ protected:
virtual void ReportError(std::string const& errorMessage) const = 0;
using ExportInfo = std::pair<std::vector<std::string>, std::string>;
struct ExportInfo
{
std::vector<std::string> Files;
std::string Namespace;
};
/** Find the set of export files and the unique namespace (if any) for a
* target. */

View File

@@ -247,10 +247,9 @@ void cmExportInstallFileGenerator::HandleMissingTarget(
cmGeneratorTarget* dependee)
{
auto const& exportInfo = this->FindExportInfo(dependee);
auto const& exportFiles = exportInfo.first;
if (exportFiles.size() == 1) {
std::string missingTarget = exportInfo.second;
if (exportInfo.Files.size() == 1) {
std::string missingTarget = exportInfo.Namespace;
missingTarget += dependee->GetExportName();
link_libs += missingTarget;
@@ -258,7 +257,7 @@ void cmExportInstallFileGenerator::HandleMissingTarget(
} else {
// All exported targets should be known here and should be unique.
// This is probably user-error.
this->ComplainAboutMissingTarget(depender, dependee, exportFiles);
this->ComplainAboutMissingTarget(depender, dependee, exportInfo.Files);
}
}

View File

@@ -266,8 +266,8 @@ bool cmExportPackageInfoGenerator::NoteLinkedTarget(
// Target belongs to another export from this build.
auto const& exportInfo = this->FindExportInfo(linkedTarget);
if (exportInfo.first.size() == 1) {
auto const& linkNamespace = exportInfo.second;
if (exportInfo.Files.size() == 1) {
auto const& linkNamespace = exportInfo.Namespace;
if (!cmHasSuffix(linkNamespace, "::")) {
target->Makefile->IssueMessage(
MessageType::FATAL_ERROR,