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.
|
||||
this->RelativePathsConfigured = false;
|
||||
|
||||
// Whether an install target is needed.
|
||||
this->InstallTargetEnabled = false;
|
||||
}
|
||||
|
||||
cmGlobalGenerator::~cmGlobalGenerator()
|
||||
|
@ -927,6 +930,11 @@ void cmGlobalGenerator::AddInstallComponent(const char* component)
|
|||
}
|
||||
}
|
||||
|
||||
void cmGlobalGenerator::EnableInstallTarget()
|
||||
{
|
||||
this->InstallTargetEnabled = true;
|
||||
}
|
||||
|
||||
cmLocalGenerator *cmGlobalGenerator::CreateLocalGenerator()
|
||||
{
|
||||
cmLocalGenerator *lg = new cmLocalGenerator;
|
||||
|
@ -1448,6 +1456,8 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
|
|||
}
|
||||
|
||||
//Install
|
||||
if(this->InstallTargetEnabled)
|
||||
{
|
||||
std::string cmd;
|
||||
cpackCommandLines.erase(cpackCommandLines.begin(), cpackCommandLines.end());
|
||||
singleLine.erase(singleLine.begin(), singleLine.end());
|
||||
|
@ -1510,6 +1520,7 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
|
|||
&cpackCommandLines, depends);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cmTarget cmGlobalGenerator::CreateGlobalTarget(
|
||||
const char* name, const char* message,
|
||||
|
|
|
@ -123,6 +123,7 @@ public:
|
|||
void AddLocalGenerator(cmLocalGenerator *lg);
|
||||
|
||||
void AddInstallComponent(const char* component);
|
||||
void EnableInstallTarget();
|
||||
|
||||
static int s_TryCompileTimeout;
|
||||
|
||||
|
@ -221,6 +222,7 @@ protected:
|
|||
|
||||
// Set of named installation components requested by the project.
|
||||
std::set<cmStdString> InstallComponents;
|
||||
bool InstallTargetEnabled;
|
||||
|
||||
// Manifest of all targets that will be built for each configuration.
|
||||
// This is computed just before local generators generate.
|
||||
|
|
|
@ -33,6 +33,10 @@ bool cmInstallCommand::InitialPass(std::vector<std::string> const& args)
|
|||
return true;
|
||||
}
|
||||
|
||||
// Enable the install target.
|
||||
this->Makefile->GetLocalGenerator()
|
||||
->GetGlobalGenerator()->EnableInstallTarget();
|
||||
|
||||
// Switch among the command modes.
|
||||
if(args[0] == "SCRIPT")
|
||||
{
|
||||
|
|
|
@ -25,6 +25,11 @@ bool cmInstallFilesCommand
|
|||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Enable the install target.
|
||||
this->Makefile->GetLocalGenerator()
|
||||
->GetGlobalGenerator()->EnableInstallTarget();
|
||||
|
||||
std::vector<std::string> args;
|
||||
this->Makefile->ExpandSourceListArguments(argsIn, args, 2);
|
||||
|
||||
|
|
|
@ -26,6 +26,10 @@ bool cmInstallProgramsCommand
|
|||
return false;
|
||||
}
|
||||
|
||||
// Enable the install target.
|
||||
this->Makefile->GetLocalGenerator()
|
||||
->GetGlobalGenerator()->EnableInstallTarget();
|
||||
|
||||
// Create an INSTALL_PROGRAMS target specifically for this path.
|
||||
this->TargetName = "INSTALL_PROGRAMS_"+args[0];
|
||||
cmTarget& target = this->Makefile->GetTargets()[this->TargetName];
|
||||
|
|
|
@ -26,6 +26,10 @@ bool cmInstallTargetsCommand
|
|||
return false;
|
||||
}
|
||||
|
||||
// Enable the install target.
|
||||
this->Makefile->GetLocalGenerator()
|
||||
->GetGlobalGenerator()->EnableInstallTarget();
|
||||
|
||||
cmTargets &tgts = this->Makefile->GetTargets();
|
||||
std::vector<std::string>::const_iterator s = args.begin();
|
||||
++s;
|
||||
|
|
Loading…
Reference in New Issue