diff options
author | Brad King <brad.king@kitware.com> | 2018-09-06 17:10:55 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-09-07 12:57:51 (GMT) |
commit | fc7e4d1ed85370d03acbd62bc753cced3550752b (patch) | |
tree | 25e5d5719b2da65398e7d2f0fbc4cb490e4428ff /Source/cmExportFileGenerator.cxx | |
parent | f782759ed0997eb3d71e1187a829da62668ed5d2 (diff) | |
download | CMake-fc7e4d1ed85370d03acbd62bc753cced3550752b.zip CMake-fc7e4d1ed85370d03acbd62bc753cced3550752b.tar.gz CMake-fc7e4d1ed85370d03acbd62bc753cced3550752b.tar.bz2 |
cmLinkItem: Convert to a "sum type" over a string and target pointer
Avoid exposing the item name implicitly as std::string. When the item
is a target, avoid storing a second copy of its name.
Most link item construction is paired with calls to `FindTargetToLink`
to get the possible target pointer. Rename these methods to
`ResolveLinkItem` and refactor them to construct the entire item.
Diffstat (limited to 'Source/cmExportFileGenerator.cxx')
-rw-r--r-- | Source/cmExportFileGenerator.cxx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 75d3374..1c5040a 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -831,6 +831,16 @@ void cmExportFileGenerator::SetImportDetailProperties( } } +static std::string const& asString(std::string const& l) +{ + return l; +} + +static std::string const& asString(cmLinkItem const& l) +{ + return l.AsStr(); +} + template <typename T> void cmExportFileGenerator::SetImportLinkProperty( std::string const& suffix, cmGeneratorTarget* target, @@ -850,7 +860,7 @@ void cmExportFileGenerator::SetImportLinkProperty( link_entries += sep; sep = ";"; - std::string temp = l; + std::string temp = asString(l); this->AddTargetNamespace(temp, target, missingTargets); link_entries += temp; } |