Detect whether the current Eclipse version supports VirtualFolders
VirtualFolders are supported since 3.6 (Helios). Next patch will be to actually make use of the new flag SupportsVirtualFolders. Alex
This commit is contained in:
parent
4974ec90a4
commit
5b200e3bed
|
@ -34,6 +34,8 @@ cmExtraEclipseCDT4Generator
|
|||
// this->SupportedGlobalGenerators.push_back("MSYS Makefiles");
|
||||
#endif
|
||||
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
||||
|
||||
this->SupportsVirtualFolders = true;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -57,6 +59,24 @@ void cmExtraEclipseCDT4Generator::Generate()
|
|||
const cmMakefile* mf
|
||||
= this->GlobalGenerator->GetLocalGenerators()[0]->GetMakefile();
|
||||
|
||||
std::string eclipseVersion = mf->GetSafeDefinition("CMAKE_ECLIPSE_VERSION");
|
||||
cmsys::RegularExpression regex(".*([0-9]+\\.[0-9]+).*");
|
||||
if (regex.find(eclipseVersion.c_str()))
|
||||
{
|
||||
unsigned int majorVersion = 0;
|
||||
unsigned int minorVersion = 0;
|
||||
int res=sscanf(regex.match(1).c_str(), "%u.%u", &majorVersion,
|
||||
&minorVersion);
|
||||
if (res == 2)
|
||||
{
|
||||
int version = majorVersion * 1000 + minorVersion;
|
||||
if (version < 3006) // 3.6 is Helios
|
||||
{
|
||||
this->SupportsVirtualFolders = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Decide if these are local or member variables
|
||||
this->HomeDirectory = mf->GetHomeDirectory();
|
||||
this->HomeOutputDirectory = mf->GetHomeOutputDirectory();
|
||||
|
|
|
@ -107,6 +107,7 @@ private:
|
|||
std::string HomeOutputDirectory;
|
||||
bool IsOutOfSourceBuild;
|
||||
bool GenerateSourceProject;
|
||||
bool SupportsVirtualFolders;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue