mirror of
https://github.com/Kitware/CMake.git
synced 2026-07-17 21:10:38 +00:00
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:
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user