[Cmake-commits] CMake branch, next, updated. v2.8.2-767-g7ddcc30

David Cole david.cole at kitware.com
Mon Sep 13 16:33:59 EDT 2010


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  7ddcc305907163545c72677b393fefb8f7a84a84 (commit)
       via  ed37fc3ea398b03bbba175ae337f14b6af58daee (commit)
      from  8edcf3432d55a9304534659f4a1d9b2eccbab96f (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=7ddcc305907163545c72677b393fefb8f7a84a84
commit 7ddcc305907163545c72677b393fefb8f7a84a84
Merge: 8edcf34 ed37fc3
Author:     David Cole <david.cole at kitware.com>
AuthorDate: Mon Sep 13 16:33:58 2010 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Sep 13 16:33:58 2010 -0400

    Merge topic 'fix_target_name_with_dot_vs10' into next
    
    ed37fc3 VS2010: Set IntDir for utility and global targets.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ed37fc3ea398b03bbba175ae337f14b6af58daee
commit ed37fc3ea398b03bbba175ae337f14b6af58daee
Author:     David Cole <david.cole at kitware.com>
AuthorDate: Mon Sep 13 13:29:10 2010 -0400
Commit:     David Cole <david.cole at kitware.com>
CommitDate: Mon Sep 13 15:22:15 2010 -0400

    VS2010: Set IntDir for utility and global targets.
    
    VS2010 uses IntDir as the location for writing log files for
    what happens during custom build steps. With no IntDir settings,
    all ExternalProject usage within the same CMakeLists.txt file
    would result in multiple utility targets all trying to use the
    same custom build log files.
    
    With parallel builds, they would try to use them simultaneously
    and result in file access errors, preventing the builds from
    completing successfully.
    
    Now each utility target has its own IntDir setting, and so, its
    own custom build rule log files.

diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index b374579..b290aed 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -814,10 +814,12 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
 
 void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
 {
-  if(this->Target->GetType() > cmTarget::MODULE_LIBRARY)
+  cmTarget::TargetType ttype = this->Target->GetType();
+  if(ttype > cmTarget::GLOBAL_TARGET)
     {
     return;
     }
+
   this->WriteString("<PropertyGroup>\n", 2);
   this->WriteString("<_ProjectFileVersion>10.0.20506.1"
                     "</_ProjectFileVersion>\n", 3);
@@ -827,33 +829,48 @@ void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
   for(std::vector<std::string>::iterator config = configs->begin();
       config != configs->end(); ++config)
     {
-    std::string targetNameFull = 
-      this->Target->GetFullName(config->c_str());
-    std::string intermediateDir = this->LocalGenerator->
-      GetTargetDirectory(*this->Target);
-    intermediateDir += "/";
-    intermediateDir += *config;
-    intermediateDir += "/";
-    this->ConvertToWindowsSlash(intermediateDir);
-    std::string outDir = this->Target->GetDirectory(config->c_str());
-    this->ConvertToWindowsSlash(outDir);
-    this->WritePlatformConfigTag("OutDir", config->c_str(), 3);
-    *this->BuildFileStream << outDir
-                           << "\\"
-                           << "</OutDir>\n";
-    this->WritePlatformConfigTag("IntDir", config->c_str(), 3); 
-    *this->BuildFileStream << intermediateDir
-                           << "</IntDir>\n";
-    this->WritePlatformConfigTag("TargetName", config->c_str(), 3);
-    *this->BuildFileStream
-      << cmSystemTools::GetFilenameWithoutLastExtension(
-      targetNameFull.c_str())
-                           << "</TargetName>\n";
-    this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
-    *this->BuildFileStream << cmSystemTools::GetFilenameLastExtension(
-      targetNameFull.c_str())
-                           << "</TargetExt>\n";
-    this->OutputLinkIncremental(*config);
+    if(ttype >= cmTarget::UTILITY)
+      {
+      this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
+      *this->BuildFileStream
+        << "$(Platform)\\$(Configuration)\\$(ProjectName)\\"
+        << "</IntDir>\n";
+      }
+    else
+      {
+      std::string targetNameFull =
+        this->Target->GetFullName(config->c_str());
+      std::string intermediateDir = this->LocalGenerator->
+        GetTargetDirectory(*this->Target);
+      intermediateDir += "/";
+      intermediateDir += *config;
+      intermediateDir += "/";
+      this->ConvertToWindowsSlash(intermediateDir);
+      std::string outDir = this->Target->GetDirectory(config->c_str());
+      this->ConvertToWindowsSlash(outDir);
+
+      this->WritePlatformConfigTag("OutDir", config->c_str(), 3);
+      *this->BuildFileStream << outDir
+                             << "\\"
+                             << "</OutDir>\n";
+
+      this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
+      *this->BuildFileStream << intermediateDir
+                             << "</IntDir>\n";
+
+      this->WritePlatformConfigTag("TargetName", config->c_str(), 3);
+      *this->BuildFileStream
+        << cmSystemTools::GetFilenameWithoutLastExtension(
+             targetNameFull.c_str())
+        << "</TargetName>\n";
+
+      this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
+      *this->BuildFileStream
+        << cmSystemTools::GetFilenameLastExtension(targetNameFull.c_str())
+        << "</TargetExt>\n";
+
+      this->OutputLinkIncremental(*config);
+      }
     }
   this->WriteString("</PropertyGroup>\n", 2);
 }

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

Summary of changes:
 Source/cmVisualStudio10TargetGenerator.cxx |   73 +++++++++++++++++-----------
 1 files changed, 45 insertions(+), 28 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list