Jelajahi Sumber

Merge topic 'compile-object-TARGET-placeholder'

0b7ad3f Replace <TARGET> in CMAKE_<LANG>_COMPILE_OBJECT rule variables
Brad King 12 tahun lalu
induk
melakukan
ddbe2e1d7d
1 mengubah file dengan 8 tambahan dan 0 penghapusan
  1. 8 0
      Source/cmMakefileTargetGenerator.cxx

+ 8 - 0
Source/cmMakefileTargetGenerator.cxx

@@ -640,18 +640,25 @@ cmMakefileTargetGenerator
       (commands, buildEcho.c_str(), cmLocalUnixMakefileGenerator3::EchoBuild);
       (commands, buildEcho.c_str(), cmLocalUnixMakefileGenerator3::EchoBuild);
     }
     }
 
 
+  std::string targetOutPathReal;
   std::string targetOutPathPDB;
   std::string targetOutPathPDB;
   {
   {
+  std::string targetFullPathReal;
   std::string targetFullPathPDB;
   std::string targetFullPathPDB;
   if(this->Target->GetType() == cmTarget::EXECUTABLE ||
   if(this->Target->GetType() == cmTarget::EXECUTABLE ||
      this->Target->GetType() == cmTarget::STATIC_LIBRARY ||
      this->Target->GetType() == cmTarget::STATIC_LIBRARY ||
      this->Target->GetType() == cmTarget::SHARED_LIBRARY ||
      this->Target->GetType() == cmTarget::SHARED_LIBRARY ||
      this->Target->GetType() == cmTarget::MODULE_LIBRARY)
      this->Target->GetType() == cmTarget::MODULE_LIBRARY)
     {
     {
+    targetFullPathReal =
+      this->Target->GetFullPath(this->ConfigName, false, true);
     targetFullPathPDB = this->Target->GetPDBDirectory(this->ConfigName);
     targetFullPathPDB = this->Target->GetPDBDirectory(this->ConfigName);
     targetFullPathPDB += "/";
     targetFullPathPDB += "/";
     targetFullPathPDB += this->Target->GetPDBName(this->ConfigName);
     targetFullPathPDB += this->Target->GetPDBName(this->ConfigName);
     }
     }
+  targetOutPathReal = this->Convert(targetFullPathReal.c_str(),
+                                    cmLocalGenerator::START_OUTPUT,
+                                    cmLocalGenerator::SHELL);
   targetOutPathPDB =
   targetOutPathPDB =
     this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::NONE,
     this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::NONE,
                   cmLocalGenerator::SHELL);
                   cmLocalGenerator::SHELL);
@@ -660,6 +667,7 @@ cmMakefileTargetGenerator
   vars.RuleLauncher = "RULE_LAUNCH_COMPILE";
   vars.RuleLauncher = "RULE_LAUNCH_COMPILE";
   vars.CMTarget = this->Target;
   vars.CMTarget = this->Target;
   vars.Language = lang;
   vars.Language = lang;
+  vars.Target = targetOutPathReal.c_str();
   vars.TargetPDB = targetOutPathPDB.c_str();
   vars.TargetPDB = targetOutPathPDB.c_str();
   vars.Source = sourceFile.c_str();
   vars.Source = sourceFile.c_str();
   std::string shellObj =
   std::string shellObj =