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