ENH: Do not generate install target unless some INSTALL or INSTALL_* commands have been used. This addresses bug#2827.
This commit is contained in:
parent
8ffb32369f
commit
239fce5caa
|
@ -42,6 +42,9 @@ cmGlobalGenerator::cmGlobalGenerator()
|
||||||
|
|
||||||
// Relative paths are not configured in the constructor.
|
// Relative paths are not configured in the constructor.
|
||||||
this->RelativePathsConfigured = false;
|
this->RelativePathsConfigured = false;
|
||||||
|
|
||||||
|
// Whether an install target is needed.
|
||||||
|
this->InstallTargetEnabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmGlobalGenerator::~cmGlobalGenerator()
|
cmGlobalGenerator::~cmGlobalGenerator()
|
||||||
|
@ -927,6 +930,11 @@ void cmGlobalGenerator::AddInstallComponent(const char* component)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cmGlobalGenerator::EnableInstallTarget()
|
||||||
|
{
|
||||||
|
this->InstallTargetEnabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
cmLocalGenerator *cmGlobalGenerator::CreateLocalGenerator()
|
cmLocalGenerator *cmGlobalGenerator::CreateLocalGenerator()
|
||||||
{
|
{
|
||||||
cmLocalGenerator *lg = new cmLocalGenerator;
|
cmLocalGenerator *lg = new cmLocalGenerator;
|
||||||
|
@ -1448,6 +1456,8 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Install
|
//Install
|
||||||
|
if(this->InstallTargetEnabled)
|
||||||
|
{
|
||||||
std::string cmd;
|
std::string cmd;
|
||||||
cpackCommandLines.erase(cpackCommandLines.begin(), cpackCommandLines.end());
|
cpackCommandLines.erase(cpackCommandLines.begin(), cpackCommandLines.end());
|
||||||
singleLine.erase(singleLine.begin(), singleLine.end());
|
singleLine.erase(singleLine.begin(), singleLine.end());
|
||||||
|
@ -1509,6 +1519,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
|
||||||
install_local, "Installing only the local directory...",
|
install_local, "Installing only the local directory...",
|
||||||
&cpackCommandLines, depends);
|
&cpackCommandLines, depends);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cmTarget cmGlobalGenerator::CreateGlobalTarget(
|
cmTarget cmGlobalGenerator::CreateGlobalTarget(
|
||||||
|
|
|
@ -123,6 +123,7 @@ public:
|
||||||
void AddLocalGenerator(cmLocalGenerator *lg);
|
void AddLocalGenerator(cmLocalGenerator *lg);
|
||||||
|
|
||||||
void AddInstallComponent(const char* component);
|
void AddInstallComponent(const char* component);
|
||||||
|
void EnableInstallTarget();
|
||||||
|
|
||||||
static int s_TryCompileTimeout;
|
static int s_TryCompileTimeout;
|
||||||
|
|
||||||
|
@ -221,6 +222,7 @@ protected:
|
||||||
|
|
||||||
// Set of named installation components requested by the project.
|
// Set of named installation components requested by the project.
|
||||||
std::set<cmStdString> InstallComponents;
|
std::set<cmStdString> InstallComponents;
|
||||||
|
bool InstallTargetEnabled;
|
||||||
|
|
||||||
// Manifest of all targets that will be built for each configuration.
|
// Manifest of all targets that will be built for each configuration.
|
||||||
// This is computed just before local generators generate.
|
// This is computed just before local generators generate.
|
||||||
|
|
|
@ -33,6 +33,10 @@ bool cmInstallCommand::InitialPass(std::vector<std::string> const& args)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enable the install target.
|
||||||
|
this->Makefile->GetLocalGenerator()
|
||||||
|
->GetGlobalGenerator()->EnableInstallTarget();
|
||||||
|
|
||||||
// Switch among the command modes.
|
// Switch among the command modes.
|
||||||
if(args[0] == "SCRIPT")
|
if(args[0] == "SCRIPT")
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,11 @@ bool cmInstallFilesCommand
|
||||||
this->SetError("called with incorrect number of arguments");
|
this->SetError("called with incorrect number of arguments");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enable the install target.
|
||||||
|
this->Makefile->GetLocalGenerator()
|
||||||
|
->GetGlobalGenerator()->EnableInstallTarget();
|
||||||
|
|
||||||
std::vector<std::string> args;
|
std::vector<std::string> args;
|
||||||
this->Makefile->ExpandSourceListArguments(argsIn, args, 2);
|
this->Makefile->ExpandSourceListArguments(argsIn, args, 2);
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,10 @@ bool cmInstallProgramsCommand
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enable the install target.
|
||||||
|
this->Makefile->GetLocalGenerator()
|
||||||
|
->GetGlobalGenerator()->EnableInstallTarget();
|
||||||
|
|
||||||
// Create an INSTALL_PROGRAMS target specifically for this path.
|
// Create an INSTALL_PROGRAMS target specifically for this path.
|
||||||
this->TargetName = "INSTALL_PROGRAMS_"+args[0];
|
this->TargetName = "INSTALL_PROGRAMS_"+args[0];
|
||||||
cmTarget& target = this->Makefile->GetTargets()[this->TargetName];
|
cmTarget& target = this->Makefile->GetTargets()[this->TargetName];
|
||||||
|
|
|
@ -26,6 +26,10 @@ bool cmInstallTargetsCommand
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enable the install target.
|
||||||
|
this->Makefile->GetLocalGenerator()
|
||||||
|
->GetGlobalGenerator()->EnableInstallTarget();
|
||||||
|
|
||||||
cmTargets &tgts = this->Makefile->GetTargets();
|
cmTargets &tgts = this->Makefile->GetTargets();
|
||||||
std::vector<std::string>::const_iterator s = args.begin();
|
std::vector<std::string>::const_iterator s = args.begin();
|
||||||
++s;
|
++s;
|
||||||
|
|
Loading…
Reference in New Issue