mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-18 17:31:57 +08:00
cmCxxModuleMapper: Use value semantics in path conversion callback
The call site already owns a path it doesn't need when the callback returns. Hand ownership to the callback so it can optionally mutate the path without necessarily allocating.
This commit is contained in:
@@ -21,7 +21,7 @@ cm::optional<std::string> CxxModuleLocations::BmiGeneratorPathForModule(
|
||||
std::string const& logical_name) const
|
||||
{
|
||||
if (auto l = this->BmiLocationForModule(logical_name)) {
|
||||
return this->PathForGenerator(*l);
|
||||
return this->PathForGenerator(std::move(*l));
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
@@ -30,7 +30,7 @@ struct CxxModuleLocations
|
||||
std::string RootDirectory;
|
||||
|
||||
// A function to convert a full path to a path for the generator.
|
||||
std::function<std::string(std::string const&)> PathForGenerator;
|
||||
std::function<std::string(std::string)> PathForGenerator;
|
||||
|
||||
// Lookup the BMI location of a logical module name.
|
||||
std::function<cm::optional<std::string>(std::string const&)>
|
||||
|
@@ -2629,7 +2629,7 @@ bool cmGlobalNinjaGenerator::WriteDyndepFile(
|
||||
{
|
||||
CxxModuleLocations locs;
|
||||
locs.RootDirectory = ".";
|
||||
locs.PathForGenerator = [this](std::string const& path) -> std::string {
|
||||
locs.PathForGenerator = [this](std::string path) -> std::string {
|
||||
return this->ConvertToNinjaPath(path);
|
||||
};
|
||||
locs.BmiLocationForModule =
|
||||
|
Reference in New Issue
Block a user