BUG: fix problem for non-C/CXX languages with Visual Studio, the
dependencies for the custom commands added for java were not handled correctly. Needs more work. Alex
This commit is contained in:
parent
181f4cb0af
commit
8245f437b6
|
@ -717,14 +717,12 @@ void cmGlobalGenerator::Configure()
|
|||
}
|
||||
// at this point this->LocalGenerators has been filled,
|
||||
// so create the map from project name to vector of local generators
|
||||
this->FillProjectMap();
|
||||
this->FillProjectMap();
|
||||
// now create project to target map
|
||||
// This will make sure that targets have all the
|
||||
// targets they depend on as part of the build.
|
||||
this->FillProjectToTargetMap();
|
||||
// now trace all dependencies
|
||||
this->TraceDependencies();
|
||||
|
||||
this->FillProjectToTargetMap();
|
||||
|
||||
if ( !this->CMakeInstance->GetScriptMode() )
|
||||
{
|
||||
this->CMakeInstance->UpdateProgress("Configuring done", -1);
|
||||
|
@ -735,6 +733,19 @@ void cmGlobalGenerator::Generate()
|
|||
{
|
||||
// For each existing cmLocalGenerator
|
||||
unsigned int i;
|
||||
|
||||
// Add generator specific helper commands
|
||||
for (i = 0; i < this->LocalGenerators.size(); ++i)
|
||||
{
|
||||
this->LocalGenerators[i]->AddHelperCommands();
|
||||
}
|
||||
|
||||
// Trace the dependencies, after that no custom commands should be added
|
||||
// because their dependencies might not be handled correctly
|
||||
for (i = 0; i < this->LocalGenerators.size(); ++i)
|
||||
{
|
||||
this->LocalGenerators[i]->TraceDependencies();
|
||||
}
|
||||
|
||||
// Consolidate global targets
|
||||
cmTargets globalTargets;
|
||||
|
@ -1043,14 +1054,6 @@ const char* cmGlobalGenerator::GetLinkerPreference(const char* lang)
|
|||
return "None";
|
||||
}
|
||||
|
||||
void cmGlobalGenerator::TraceDependencies()
|
||||
{
|
||||
for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i)
|
||||
{
|
||||
this->LocalGenerators[i]->TraceDependencies();
|
||||
}
|
||||
}
|
||||
|
||||
void cmGlobalGenerator::FillProjectMap()
|
||||
{
|
||||
this->ProjectMap.clear(); // make sure we start with a clean map
|
||||
|
|
|
@ -202,8 +202,6 @@ protected:
|
|||
void FillProjectMap();
|
||||
bool IsExcluded(cmLocalGenerator* root, cmLocalGenerator* gen);
|
||||
void FillProjectToTargetMap();
|
||||
// Calls TraceVSDependencies() on all targets
|
||||
void TraceDependencies();
|
||||
void CreateDefaultGlobalTargets(cmTargets* targets);
|
||||
cmTarget CreateGlobalTarget(const char* name, const char* message,
|
||||
const cmCustomCommandLines* commandLines,
|
||||
|
|
|
@ -54,7 +54,9 @@ public:
|
|||
* Calls TraceVSDependencies() on all targets of this generator.
|
||||
*/
|
||||
virtual void TraceDependencies();
|
||||
|
||||
|
||||
virtual void AddHelperCommands() {}
|
||||
|
||||
/**
|
||||
* Perform any final calculations prior to generation
|
||||
*/
|
||||
|
|
|
@ -32,13 +32,16 @@ cmLocalVisualStudio6Generator::~cmLocalVisualStudio6Generator()
|
|||
{
|
||||
}
|
||||
|
||||
|
||||
void cmLocalVisualStudio6Generator::Generate()
|
||||
{
|
||||
void cmLocalVisualStudio6Generator::AddHelperCommands()
|
||||
{
|
||||
std::set<cmStdString> lang;
|
||||
lang.insert("C");
|
||||
lang.insert("CXX");
|
||||
this->CreateCustomTargetsAndCommands(lang);
|
||||
}
|
||||
|
||||
void cmLocalVisualStudio6Generator::Generate()
|
||||
{
|
||||
this->OutputDSPFile();
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,9 @@ public:
|
|||
cmLocalVisualStudio6Generator();
|
||||
|
||||
virtual ~cmLocalVisualStudio6Generator();
|
||||
|
||||
|
||||
virtual void AddHelperCommands();
|
||||
|
||||
/**
|
||||
* Generate the makefile for this directory.
|
||||
*/
|
||||
|
|
|
@ -42,8 +42,7 @@ cmLocalVisualStudio7Generator::~cmLocalVisualStudio7Generator()
|
|||
{
|
||||
}
|
||||
|
||||
|
||||
void cmLocalVisualStudio7Generator::Generate()
|
||||
void cmLocalVisualStudio7Generator::AddHelperCommands()
|
||||
{
|
||||
std::set<cmStdString> lang;
|
||||
lang.insert("C");
|
||||
|
@ -53,6 +52,10 @@ void cmLocalVisualStudio7Generator::Generate()
|
|||
lang.insert("DEF");
|
||||
this->CreateCustomTargetsAndCommands(lang);
|
||||
this->FixGlobalTargets();
|
||||
}
|
||||
|
||||
void cmLocalVisualStudio7Generator::Generate()
|
||||
{
|
||||
this->OutputVCProjFile();
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,9 @@ public:
|
|||
cmLocalVisualStudio7Generator();
|
||||
|
||||
virtual ~cmLocalVisualStudio7Generator();
|
||||
|
||||
|
||||
virtual void AddHelperCommands();
|
||||
|
||||
/**
|
||||
* Generate the makefile for this directory.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue