VS: Refactor internal generator factory logic

Consume the space before the platform name as soon as possible
instead of including it in the comparison.
This commit is contained in:
Brad King 2014-06-04 16:35:34 -04:00
parent 2b3e7b6f94
commit eaa9f2f8ee
3 changed files with 15 additions and 14 deletions

View File

@ -48,17 +48,19 @@ public:
const char* p = cmVS10GenName(name, genName);
if(!p)
{ return 0; }
if(strcmp(p, "") == 0)
if(!*p)
{
return new cmGlobalVisualStudio10Generator(
genName, "", "");
}
if(strcmp(p, " Win64") == 0)
if(*p++ != ' ')
{ return 0; }
if(strcmp(p, "Win64") == 0)
{
return new cmGlobalVisualStudio10Generator(
genName, "x64", "CMAKE_FORCE_WIN64");
}
if(strcmp(p, " IA64") == 0)
if(strcmp(p, "IA64") == 0)
{
return new cmGlobalVisualStudio10Generator(
genName, "Itanium", "CMAKE_FORCE_IA64");

View File

@ -43,27 +43,24 @@ public:
const char* p = cmVS11GenName(name, genName);
if(!p)
{ return 0; }
if(strcmp(p, "") == 0)
if(!*p)
{
return new cmGlobalVisualStudio11Generator(
genName, "", "");
}
if(strcmp(p, " Win64") == 0)
if(*p++ != ' ')
{ return 0; }
if(strcmp(p, "Win64") == 0)
{
return new cmGlobalVisualStudio11Generator(
genName, "x64", "CMAKE_FORCE_WIN64");
}
if(strcmp(p, " ARM") == 0)
if(strcmp(p, "ARM") == 0)
{
return new cmGlobalVisualStudio11Generator(
genName, "ARM", "");
}
if(*p++ != ' ')
{
return 0;
}
std::set<std::string> installedSDKs =
cmGlobalVisualStudio11Generator::GetInstalledWindowsCESDKs();

View File

@ -43,17 +43,19 @@ public:
const char* p = cmVS12GenName(name, genName);
if(!p)
{ return 0; }
if(strcmp(p, "") == 0)
if(!*p)
{
return new cmGlobalVisualStudio12Generator(
genName, "", "");
}
if(strcmp(p, " Win64") == 0)
if(*p++ != ' ')
{ return 0; }
if(strcmp(p, "Win64") == 0)
{
return new cmGlobalVisualStudio12Generator(
genName, "x64", "CMAKE_FORCE_WIN64");
}
if(strcmp(p, " ARM") == 0)
if(strcmp(p, "ARM") == 0)
{
return new cmGlobalVisualStudio12Generator(
genName, "ARM", "");