[Cmake-commits] CMake branch, next, updated. v3.6.2-2045-gec58cf7

Brad King brad.king at kitware.com
Wed Sep 14 14:01:24 EDT 2016


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  ec58cf7272fe24baf829b3cd3b0ff0d5eb6d4109 (commit)
       via  3edc6014f0e16757501288912d6e1baf6c4d9e6f (commit)
       via  2e5cea71bcf7a9a08569b0f2ba1eed36289e0402 (commit)
      from  960d2557773ea70b5f9d9316a440634afeb114e0 (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 -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ec58cf7272fe24baf829b3cd3b0ff0d5eb6d4109
commit ec58cf7272fe24baf829b3cd3b0ff0d5eb6d4109
Merge: 960d255 3edc601
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Sep 14 14:01:23 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Sep 14 14:01:23 2016 -0400

    Merge topic 'avoid-target-indexing' into next
    
    3edc6014 Avoid requiring default cmTarget constructor for map indexing
    2e5cea71 cmTarget: Add method to get a copy adapted for a directory


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3edc6014f0e16757501288912d6e1baf6c4d9e6f
commit 3edc6014f0e16757501288912d6e1baf6c4d9e6f
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Sep 14 13:42:27 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Sep 14 13:48:50 2016 -0400

    Avoid requiring default cmTarget constructor for map indexing
    
    The `std::map<>` index operator requires a default constructor on the
    value type.  Avoid requiring a default constructor on `cmTarget` just
    for this purpose.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index ef8266f..961d89d 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1068,8 +1068,8 @@ void cmGlobalGenerator::Configure()
     cmTargets* targets = &(mf->GetTargets());
     cmTargets::iterator tit;
     for (tit = globalTargets.begin(); tit != globalTargets.end(); ++tit) {
-      (*targets)[tit->first] = tit->second;
-      (*targets)[tit->first].SetMakefile(mf);
+      targets->insert(
+        cmTargets::value_type(tit->first, tit->second.CopyForDirectory(mf)));
     }
   }
 
@@ -2101,9 +2101,12 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
     }
   }
   if (cmSystemTools::FileExists(configFile.c_str())) {
-    (*targets)[this->GetPackageTargetName()] = this->CreateGlobalTarget(
-      this->GetPackageTargetName(), "Run CPack packaging tool...",
-      &cpackCommandLines, depends, workingDir.c_str(), /*uses_terminal*/ true);
+    targets->insert(cmTargets::value_type(
+      this->GetPackageTargetName(),
+      this->CreateGlobalTarget(this->GetPackageTargetName(),
+                               "Run CPack packaging tool...",
+                               &cpackCommandLines, depends, workingDir.c_str(),
+                               /*uses_terminal*/ true)));
   }
   // CPack source
   const char* packageSourceTargetName = this->GetPackageSourceTargetName();
@@ -2122,10 +2125,12 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
     if (cmSystemTools::FileExists(configFile.c_str())) {
       singleLine.push_back(configFile);
       cpackCommandLines.push_back(singleLine);
-      (*targets)[packageSourceTargetName] = this->CreateGlobalTarget(
-        packageSourceTargetName, "Run CPack packaging tool for source...",
-        &cpackCommandLines, depends, workingDir.c_str(),
-        /*uses_terminal*/ true);
+      targets->insert(cmTargets::value_type(
+        packageSourceTargetName,
+        this->CreateGlobalTarget(
+          packageSourceTargetName, "Run CPack packaging tool for source...",
+          &cpackCommandLines, depends, workingDir.c_str(),
+          /*uses_terminal*/ true)));
     }
   }
 
@@ -2146,10 +2151,11 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
       singleLine.push_back("$(ARGS)");
     }
     cpackCommandLines.push_back(singleLine);
-    (*targets)[this->GetTestTargetName()] =
+    targets->insert(cmTargets::value_type(
+      this->GetTestTargetName(),
       this->CreateGlobalTarget(this->GetTestTargetName(), "Running tests...",
                                &cpackCommandLines, depends, CM_NULLPTR,
-                               /*uses_terminal*/ true);
+                               /*uses_terminal*/ true)));
   }
 
   // Edit Cache
@@ -2167,18 +2173,22 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
       singleLine.push_back("-H$(CMAKE_SOURCE_DIR)");
       singleLine.push_back("-B$(CMAKE_BINARY_DIR)");
       cpackCommandLines.push_back(singleLine);
-      (*targets)[editCacheTargetName] = this->CreateGlobalTarget(
-        editCacheTargetName, "Running CMake cache editor...",
-        &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true);
+      targets->insert(cmTargets::value_type(
+        editCacheTargetName,
+        this->CreateGlobalTarget(
+          editCacheTargetName, "Running CMake cache editor...",
+          &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true)));
     } else {
       singleLine.push_back(cmSystemTools::GetCMakeCommand());
       singleLine.push_back("-E");
       singleLine.push_back("echo");
       singleLine.push_back("No interactive CMake dialog available.");
       cpackCommandLines.push_back(singleLine);
-      (*targets)[editCacheTargetName] = this->CreateGlobalTarget(
-        editCacheTargetName, "No interactive CMake dialog available...",
-        &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ false);
+      targets->insert(cmTargets::value_type(
+        editCacheTargetName,
+        this->CreateGlobalTarget(
+          editCacheTargetName, "No interactive CMake dialog available...",
+          &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ false)));
     }
   }
 
@@ -2193,9 +2203,11 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
     singleLine.push_back("-H$(CMAKE_SOURCE_DIR)");
     singleLine.push_back("-B$(CMAKE_BINARY_DIR)");
     cpackCommandLines.push_back(singleLine);
-    (*targets)[rebuildCacheTargetName] = this->CreateGlobalTarget(
-      rebuildCacheTargetName, "Running CMake to regenerate build system...",
-      &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true);
+    targets->insert(cmTargets::value_type(
+      rebuildCacheTargetName,
+      this->CreateGlobalTarget(
+        rebuildCacheTargetName, "Running CMake to regenerate build system...",
+        &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true)));
   }
 
   // Install
@@ -2219,9 +2231,11 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
         ostr << "Only default component available";
       }
       singleLine.push_back(ostr.str());
-      (*targets)["list_install_components"] = this->CreateGlobalTarget(
-        "list_install_components", ostr.str().c_str(), &cpackCommandLines,
-        depends, CM_NULLPTR, /*uses_terminal*/ false);
+      targets->insert(cmTargets::value_type(
+        "list_install_components",
+        this->CreateGlobalTarget("list_install_components", ostr.str().c_str(),
+                                 &cpackCommandLines, depends, CM_NULLPTR,
+                                 /*uses_terminal*/ false)));
     }
     std::string cmd = cmSystemTools::GetCMakeCommand();
     cpackCommandLines.erase(cpackCommandLines.begin(),
@@ -2260,9 +2274,11 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
     singleLine.push_back("-P");
     singleLine.push_back("cmake_install.cmake");
     cpackCommandLines.push_back(singleLine);
-    (*targets)[this->GetInstallTargetName()] = this->CreateGlobalTarget(
-      this->GetInstallTargetName(), "Install the project...",
-      &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true);
+    targets->insert(cmTargets::value_type(
+      this->GetInstallTargetName(),
+      this->CreateGlobalTarget(this->GetInstallTargetName(),
+                               "Install the project...", &cpackCommandLines,
+                               depends, CM_NULLPTR, /*uses_terminal*/ true)));
 
     // install_local
     if (const char* install_local = this->GetInstallLocalTargetName()) {
@@ -2274,9 +2290,11 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
                               cpackCommandLines.end());
       cpackCommandLines.push_back(localCmdLine);
 
-      (*targets)[install_local] = this->CreateGlobalTarget(
-        install_local, "Installing only the local directory...",
-        &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true);
+      targets->insert(cmTargets::value_type(
+        install_local,
+        this->CreateGlobalTarget(
+          install_local, "Installing only the local directory...",
+          &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true)));
     }
 
     // install_strip
@@ -2290,9 +2308,11 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
                               cpackCommandLines.end());
       cpackCommandLines.push_back(stripCmdLine);
 
-      (*targets)[install_strip] = this->CreateGlobalTarget(
-        install_strip, "Installing the project stripped...",
-        &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true);
+      targets->insert(cmTargets::value_type(
+        install_strip,
+        this->CreateGlobalTarget(
+          install_strip, "Installing the project stripped...",
+          &cpackCommandLines, depends, CM_NULLPTR, /*uses_terminal*/ true)));
     }
   }
 }
diff --git a/Source/cmInstallTargetsCommand.cxx b/Source/cmInstallTargetsCommand.cxx
index 056ea24..6b594b6 100644
--- a/Source/cmInstallTargetsCommand.cxx
+++ b/Source/cmInstallTargetsCommand.cxx
@@ -37,14 +37,17 @@ bool cmInstallTargetsCommand::InitialPass(std::vector<std::string> const& args,
       }
 
       runtime_dir = *s;
-    } else if (tgts.find(*s) != tgts.end()) {
-      tgts[*s].SetInstallPath(args[0].c_str());
-      tgts[*s].SetRuntimeInstallPath(runtime_dir.c_str());
-      tgts[*s].SetHaveInstallRule(true);
     } else {
-      std::string str = "Cannot find target: \"" + *s + "\" to install.";
-      this->SetError(str);
-      return false;
+      cmTargets::iterator ti = tgts.find(*s);
+      if (ti != tgts.end()) {
+        ti->second.SetInstallPath(args[0].c_str());
+        ti->second.SetRuntimeInstallPath(runtime_dir.c_str());
+        ti->second.SetHaveInstallRule(true);
+      } else {
+        std::string str = "Cannot find target: \"" + *s + "\" to install.";
+        this->SetError(str);
+        return false;
+      }
     }
   }
 
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index e5a5e6e..eb39afa 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -979,8 +979,9 @@ void cmMakefile::AddCustomCommandOldStyle(
     // then add the source to the target to make sure the rule is
     // included.
     if (sf && !sf->GetPropertyAsBool("__CMAKE_RULE")) {
-      if (this->Targets.find(target) != this->Targets.end()) {
-        this->Targets[target].AddSource(sf->GetFullPath());
+      cmTargets::iterator ti = this->Targets.find(target);
+      if (ti != this->Targets.end()) {
+        ti->second.AddSource(sf->GetFullPath());
       } else {
         cmSystemTools::Error("Attempt to add a custom rule to a target "
                              "that does not exist yet for target ",

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2e5cea71bcf7a9a08569b0f2ba1eed36289e0402
commit 2e5cea71bcf7a9a08569b0f2ba1eed36289e0402
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Sep 14 13:38:00 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Sep 14 13:48:50 2016 -0400

    cmTarget: Add method to get a copy adapted for a directory
    
    The "global" targets are built once for the top directory and then
    copied into all directories.  Add a helper method to make the copy.

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index d5274cd..77055af 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -83,6 +83,13 @@ void cmTarget::SetType(cmState::TargetType type, const std::string& name)
   }
 }
 
+cmTarget cmTarget::CopyForDirectory(cmMakefile* mf) const
+{
+  cmTarget result(*this);
+  result.SetMakefile(mf);
+  return result;
+}
+
 void cmTarget::SetMakefile(cmMakefile* mf)
 {
   // Set our makefile.
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index fc30166..b0bfc72 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -86,6 +86,9 @@ public:
   ///! Set/Get the name of the target
   const std::string& GetName() const { return this->Name; }
 
+  /** Get a copy of this target adapted for the given directory.  */
+  cmTarget CopyForDirectory(cmMakefile* mf) const;
+
   ///! Set the cmMakefile that owns this target
   void SetMakefile(cmMakefile* mf);
   cmMakefile* GetMakefile() const { return this->Makefile; }

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

Summary of changes:
 Source/cmGlobalGenerator.cxx       |   84 ++++++++++++++++++++++--------------
 Source/cmInstallTargetsCommand.cxx |   17 +++++---
 Source/cmMakefile.cxx              |    5 ++-
 Source/cmTarget.cxx                |    7 +++
 Source/cmTarget.h                  |    3 ++
 5 files changed, 75 insertions(+), 41 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list