浏览代码

BUG: make sure OBJECT_DIR is in the path of the SHELL

Bill Hoffman 17 年之前
父节点
当前提交
b0256fbe1c
共有 2 个文件被更改,包括 7 次插入1 次删除
  1. 4 1
      Source/cmMakefileLibraryTargetGenerator.cxx
  2. 3 0
      Source/cmMakefileTargetGenerator.cxx

+ 4 - 1
Source/cmMakefileLibraryTargetGenerator.cxx

@@ -724,7 +724,10 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
   std::string objdir = cmake::GetCMakeFilesDirectoryPostSlash();
   objdir += this->Target->GetName();
   objdir += ".dir";
-  vars.ObjectDir = objdir.c_str(); 
+  objdir = this->Convert(objdir.c_str(),
+                         cmLocalGenerator::START_OUTPUT,
+                         cmLocalGenerator::SHELL);
+  vars.ObjectDir = objdir.c_str();
   vars.Target = targetOutPathReal.c_str();
   std::string linkString = linklibs.str();
   vars.LinkLibraries = linkString.c_str();

+ 3 - 0
Source/cmMakefileTargetGenerator.cxx

@@ -614,6 +614,9 @@ cmMakefileTargetGenerator
                   cmLocalGenerator::SHELL).c_str();
   vars.Object = shellObj.c_str();
   std::string objectDir = cmSystemTools::GetFilenamePath(obj);
+  objectDir = this->Convert(objectDir.c_str(),
+                            cmLocalGenerator::START_OUTPUT,
+                            cmLocalGenerator::SHELL);
   vars.ObjectDir = objectDir.c_str();
   vars.Flags = flags.c_str();
   vars.Defines = defines.c_str();