diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 7ea479e520..1f7aaafbd1 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -411,28 +411,29 @@ std::string cmNinjaTargetGenerator::GetCompiledSourceNinjaPath( return this->ConvertToNinjaAbsPath(source->GetFullPath()); } -std::string cmNinjaTargetGenerator::GetObjectFilePath( - cmSourceFile const* source, const std::string& config) const +std::string cmNinjaTargetGenerator::GetObjectFileDir( + const std::string& config) const { std::string path = this->LocalGenerator->GetHomeRelativeOutputPath(); if (!path.empty()) { path += '/'; } - std::string const& objectName = this->GeneratorTarget->GetObjectName(source); - path += cmStrCat( - this->LocalGenerator->GetTargetDirectory(this->GeneratorTarget), - this->GetGlobalGenerator()->ConfigDirectory(config), '/', objectName); + path += + cmStrCat(this->LocalGenerator->GetTargetDirectory(this->GeneratorTarget), + this->GetGlobalGenerator()->ConfigDirectory(config)); return path; } +std::string cmNinjaTargetGenerator::GetObjectFilePath( + cmSourceFile const* source, const std::string& config) const +{ + std::string const& objectName = this->GeneratorTarget->GetObjectName(source); + return cmStrCat(this->GetObjectFileDir(config), '/', objectName); +} + std::string cmNinjaTargetGenerator::GetBmiFilePath( cmSourceFile const* source, const std::string& config) const { - std::string path = this->LocalGenerator->GetHomeRelativeOutputPath(); - if (!path.empty()) { - path += '/'; - } - auto& importedConfigInfo = this->Configs.at(config).ImportedCxxModules; if (!importedConfigInfo.Initialized()) { std::string configUpper = cmSystemTools::UpperCase(config); @@ -444,10 +445,7 @@ std::string cmNinjaTargetGenerator::GetBmiFilePath( std::string bmiName = importedConfigInfo.BmiNameForSource(source->GetFullPath()); - path += cmStrCat( - this->LocalGenerator->GetTargetDirectory(this->GeneratorTarget), - this->GetGlobalGenerator()->ConfigDirectory(config), '/', bmiName); - return path; + return cmStrCat(this->GetObjectFileDir(config), '/', bmiName); } std::string cmNinjaTargetGenerator::GetClangTidyReplacementsFilePath( diff --git a/Source/cmNinjaTargetGenerator.h b/Source/cmNinjaTargetGenerator.h index b55c460b8d..32d324e93b 100644 --- a/Source/cmNinjaTargetGenerator.h +++ b/Source/cmNinjaTargetGenerator.h @@ -128,6 +128,7 @@ protected: /// @return the source file path for the given @a source. std::string GetCompiledSourceNinjaPath(cmSourceFile const* source) const; + std::string GetObjectFileDir(const std::string& config) const; /// @return the object file path for the given @a source. std::string GetObjectFilePath(cmSourceFile const* source, const std::string& config) const;