[Cmake-commits] CMake branch, next, updated. v2.8.12.1-6612-g16b8e3a

Brad King brad.king at kitware.com
Thu Jan 2 13:48:32 EST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  16b8e3a1c599620df41996416d992773b1addd13 (commit)
       via  03f3b4e727d7d5f6c3ba4f0a64a2f440cff43a7d (commit)
      from  3c70dbebb524b08e76513c3e19ff72b6a6e580d9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=16b8e3a1c599620df41996416d992773b1addd13
commit 16b8e3a1c599620df41996416d992773b1addd13
Merge: 3c70dbe 03f3b4e
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jan 2 13:48:31 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Jan 2 13:48:31 2014 -0500

    Merge topic 'fix-compile-OBJECT_DIR' into next
    
    03f3b4e Replace <OBJECT_DIR> rule placeholder consistently (#14667)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=03f3b4e727d7d5f6c3ba4f0a64a2f440cff43a7d
commit 03f3b4e727d7d5f6c3ba4f0a64a2f440cff43a7d
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Dec 23 09:41:45 2013 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jan 2 13:45:41 2014 -0500

    Replace <OBJECT_DIR> rule placeholder consistently (#14667)
    
    The <OBJECT_DIR> placeholder is supposed to be the base intermediate
    files directory for the current target.  This is how it gets replaced
    during link line generation.  However, during compile line generation
    we replace it with the directory containing the current object file
    which may be a subdirectory.  Fix replacement of <OBJECT_DIR> in the
    generated compile lines to be the base intermediate files directory.
    
    This was expoxed by commit 42ba1b08 (VS: Separate compiler and linker
    PDB files, 2013-04-05) when we added a "/Fd<OBJECT_DIR>/" flag to the
    MSVC compile line in order to match the VS IDE default compiler program
    database location in the intermediate files directory.  For source files
    in a subdirectory relative to the current target this caused the wrong
    location to be used for the compiler program database.  This becomes
    particularly important when using precompiled headers.
    
    While at it, use the cmTarget::GetSupportDirectory method to compute the
    intermediate files directory for the current target instead of repeating
    the logic in a few places.

diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx
index e4219a9..3a71bd6 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -338,13 +338,11 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
   vars.CMTarget = this->Target;
   vars.Language = linkLanguage;
   vars.Objects = buildObjs.c_str();
-  std::string objdir = cmake::GetCMakeFilesDirectoryPostSlash();
-  objdir += this->Target->GetName();
-  objdir += ".dir";
-  objdir = this->Convert(objdir.c_str(),
-                         cmLocalGenerator::START_OUTPUT,
-                         cmLocalGenerator::SHELL);
-  vars.ObjectDir = objdir.c_str();
+  std::string objectDir = this->Target->GetSupportDirectory();
+  objectDir = this->Convert(objectDir.c_str(),
+                            cmLocalGenerator::START_OUTPUT,
+                            cmLocalGenerator::SHELL);
+  vars.ObjectDir = objectDir.c_str();
   vars.Target = targetOutPathReal.c_str();
   vars.TargetPDB = targetOutPathPDB.c_str();
 
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index ea9663f..ffe68e5 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -577,13 +577,11 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
   vars.CMTarget = this->Target;
   vars.Language = linkLanguage;
   vars.Objects = buildObjs.c_str();
-  std::string objdir = cmake::GetCMakeFilesDirectoryPostSlash();
-  objdir += this->Target->GetName();
-  objdir += ".dir";
-  objdir = this->Convert(objdir.c_str(),
-                         cmLocalGenerator::START_OUTPUT,
-                         cmLocalGenerator::SHELL);
-  vars.ObjectDir = objdir.c_str();
+  std::string objectDir = this->Target->GetSupportDirectory();
+  objectDir = this->Convert(objectDir.c_str(),
+                            cmLocalGenerator::START_OUTPUT,
+                            cmLocalGenerator::SHELL);
+  vars.ObjectDir = objectDir.c_str();
   vars.Target = targetOutPathReal.c_str();
   vars.LinkLibraries = linkLibs.c_str();
   vars.ObjectsQuoted = buildObjs.c_str();
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 0829cab..5e6c548 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -638,7 +638,7 @@ cmMakefileTargetGenerator
                   cmLocalGenerator::NONE,
                   cmLocalGenerator::SHELL).c_str();
   vars.Object = shellObj.c_str();
-  std::string objectDir = cmSystemTools::GetFilenamePath(obj);
+  std::string objectDir = this->Target->GetSupportDirectory();
   objectDir = this->Convert(objectDir.c_str(),
                             cmLocalGenerator::START_OUTPUT,
                             cmLocalGenerator::SHELL);
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 898aa0e..9c8b481 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -543,7 +543,7 @@ cmNinjaTargetGenerator
   vars["DEP_FILE"] = objectFileName + ".d";;
   EnsureParentDirectoryExists(objectFileName);
 
-  std::string objectDir = cmSystemTools::GetFilenamePath(objectFileName);
+  std::string objectDir = this->Target->GetSupportDirectory();
   vars["OBJECT_DIR"] = this->GetLocalGenerator()->ConvertToOutputFormat(
                          ConvertToNinjaPath(objectDir.c_str()).c_str(),
                          cmLocalGenerator::SHELL);

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list