浏览代码

bug in not expanding variables for custom commands in targets

Ken Martin 22 年之前
父节点
当前提交
454c7ad2b6
共有 1 个文件被更改,包括 23 次插入0 次删除
  1. 23 0
      Source/cmMakefile.cxx

+ 23 - 0
Source/cmMakefile.cxx

@@ -1173,6 +1173,7 @@ void cmMakefile::ExpandVariables()
 
 void cmMakefile::ExpandVariablesInCustomCommands()
 {
+  // do source files
   for(std::vector<cmSourceFile*>::iterator i = m_SourceFiles.begin();
       i != m_SourceFiles.end(); ++i)
     {
@@ -1182,6 +1183,28 @@ void cmMakefile::ExpandVariablesInCustomCommands()
       cc->ExpandVariables(*this);
       }
     }
+  
+  // now do targets
+  std::vector<cmCustomCommand>::iterator ic;
+  for (cmTargets::iterator l = m_Targets.begin();
+       l != m_Targets.end(); l++)
+    {
+    for (ic = l->second.GetPreBuildCommands().begin();
+         ic != l->second.GetPreBuildCommands().end(); ++ic)
+      {
+      ic->ExpandVariables(*this);
+      }
+    for (ic = l->second.GetPreLinkCommands().begin();
+         ic != l->second.GetPreLinkCommands().end(); ++ic)
+      {
+      ic->ExpandVariables(*this);
+      }
+    for (ic = l->second.GetPostBuildCommands().begin();
+         ic != l->second.GetPostBuildCommands().end(); ++ic)
+      {
+      ic->ExpandVariables(*this);
+      }
+    }
 }
 
 bool cmMakefile::IsOn(const char* name) const