cmRulePlaceholderExpander: expand <TARGET_SUPPORT_DIR> placeholders

This commit is contained in:
Ben Boeckel
2025-05-28 11:38:08 +02:00
parent cf1a17861b
commit d1393cc69e
4 changed files with 12 additions and 0 deletions
+5
View File
@@ -2358,6 +2358,7 @@ cmGeneratorTarget::GetClassifiedFlagsForSource(cmSourceFile const* sf,
vars.Object = sfVars.ObjectFileDir.c_str();
vars.ObjectDir = sfVars.ObjectDir.c_str();
vars.ObjectFileDir = sfVars.ObjectFileDir.c_str();
vars.TargetSupportDir = sfVars.TargetSupportDir.c_str();
vars.Flags = PlaceholderFlags.c_str();
vars.DependencyFile = sfVars.DependencyFile.c_str();
vars.DependencyTarget = sfVars.DependencyTarget.c_str();
@@ -2438,12 +2439,16 @@ cmGeneratorTarget::SourceVariables cmGeneratorTarget::GetSourceVariables(
// Object settings.
{
std::string const targetSupportDir = lg->MaybeRelativeToTopBinDir(
gg->ConvertToOutputPath(this->GetCMFSupportDirectory()));
std::string const objectDir = gg->ConvertToOutputPath(
cmStrCat(this->GetSupportDirectory(), gg->GetConfigDirectory(config)));
std::string const objectFileName = this->GetObjectName(sf);
std::string const objectFilePath =
cmStrCat(objectDir, '/', objectFileName);
vars.TargetSupportDir =
lg->ConvertToOutputFormat(targetSupportDir, cmOutputConverter::SHELL);
vars.ObjectDir =
lg->ConvertToOutputFormat(objectDir, cmOutputConverter::SHELL);
vars.ObjectFileDir =
+1
View File
@@ -566,6 +566,7 @@ public:
std::string TargetPDB;
std::string TargetCompilePDB;
std::string ObjectDir;
std::string TargetSupportDir;
std::string ObjectFileDir;
std::string DependencyFile;
std::string DependencyTarget;
+5
View File
@@ -77,6 +77,11 @@ std::string cmRulePlaceholderExpander::ExpandVariable(
return this->ReplaceValues->Object;
}
}
if (this->ReplaceValues->TargetSupportDir) {
if (variable == "TARGET_SUPPORT_DIR") {
return this->ReplaceValues->TargetSupportDir;
}
}
if (this->ReplaceValues->ObjectDir) {
if (variable == "OBJECT_DIR") {
return this->ReplaceValues->ObjectDir;
+1
View File
@@ -48,6 +48,7 @@ public:
char const* DynDepFile = nullptr;
char const* Output = nullptr;
char const* Object = nullptr;
char const* TargetSupportDir = nullptr;
char const* ObjectDir = nullptr;
char const* ObjectFileDir = nullptr;
char const* Flags = nullptr;