[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