From 68bbec66e094e21bdace9607768895b0d381cc2c Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 11 Jun 2021 10:52:06 -0400 Subject: fileapi: Fix codemodel-v2 link command fragment relative paths Use the same `cmLinkLineComputer` subclass as the generator does. This affects the base directory from which relative paths are computed. Fixes: #22301 --- Source/cmFileAPICodemodel.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/cmFileAPICodemodel.cxx b/Source/cmFileAPICodemodel.cxx index 9061109..c96eecd 100644 --- a/Source/cmFileAPICodemodel.cxx +++ b/Source/cmFileAPICodemodel.cxx @@ -27,7 +27,7 @@ #include "cmInstallGenerator.h" #include "cmInstallSubdirectoryGenerator.h" #include "cmInstallTargetGenerator.h" -#include "cmLinkLineComputer.h" +#include "cmLinkLineComputer.h" // IWYU pragma: keep #include "cmListFileCache.h" #include "cmLocalGenerator.h" #include "cmMakefile.h" @@ -1444,9 +1444,10 @@ Json::Value Target::DumpLinkCommandFragments() std::vector> linkPath; std::vector> linkLibs; cmLocalGenerator* lg = this->GT->GetLocalGenerator(); - cmLinkLineComputer linkLineComputer(lg, - lg->GetStateSnapshot().GetDirectory()); - lg->GetTargetFlags(&linkLineComputer, this->Config, linkLibs, + cmGlobalGenerator* gg = this->GT->GetGlobalGenerator(); + std::unique_ptr linkLineComputer = + gg->CreateLinkLineComputer(lg, lg->GetStateSnapshot().GetDirectory()); + lg->GetTargetFlags(linkLineComputer.get(), this->Config, linkLibs, linkLanguageFlags, linkFlags, frameworkPath, linkPath, this->GT); linkLanguageFlags = cmTrimWhitespace(linkLanguageFlags); -- cgit v0.12