VS: Refactor CMAKE_FORCE_*64 platform definitions

Remove the general infrastructure for these additional platform
definitions and hard-code the only two special cases that used
it.  They are only for historical reasons so no new such cases
should be added.
This commit is contained in:
Brad King 2014-07-17 16:16:10 -04:00
parent ecb34faaab
commit eeb60102e8
16 changed files with 45 additions and 74 deletions

View File

@ -51,19 +51,19 @@ public:
if(!*p) if(!*p)
{ {
return new cmGlobalVisualStudio10Generator( return new cmGlobalVisualStudio10Generator(
genName, "", ""); genName, "");
} }
if(*p++ != ' ') if(*p++ != ' ')
{ return 0; } { return 0; }
if(strcmp(p, "Win64") == 0) if(strcmp(p, "Win64") == 0)
{ {
return new cmGlobalVisualStudio10Generator( return new cmGlobalVisualStudio10Generator(
genName, "x64", "CMAKE_FORCE_WIN64"); genName, "x64");
} }
if(strcmp(p, "IA64") == 0) if(strcmp(p, "IA64") == 0)
{ {
return new cmGlobalVisualStudio10Generator( return new cmGlobalVisualStudio10Generator(
genName, "Itanium", "CMAKE_FORCE_IA64"); genName, "Itanium");
} }
return 0; return 0;
} }
@ -90,10 +90,8 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio10Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator(
const std::string& name, const std::string& platformName, const std::string& name, const std::string& platformName)
const std::string& additionalPlatformDefinition) : cmGlobalVisualStudio8Generator(name, platformName)
: cmGlobalVisualStudio8Generator(name, platformName,
additionalPlatformDefinition)
{ {
std::string vc10Express; std::string vc10Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@ -25,8 +25,7 @@ class cmGlobalVisualStudio10Generator :
{ {
public: public:
cmGlobalVisualStudio10Generator(const std::string& name, cmGlobalVisualStudio10Generator(const std::string& name,
const std::string& platformName, const std::string& platformName);
const std::string& additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
virtual bool MatchesGeneratorName(const std::string& name) const; virtual bool MatchesGeneratorName(const std::string& name) const;

View File

@ -46,19 +46,19 @@ public:
if(!*p) if(!*p)
{ {
return new cmGlobalVisualStudio11Generator( return new cmGlobalVisualStudio11Generator(
genName, "", ""); genName, "");
} }
if(*p++ != ' ') if(*p++ != ' ')
{ return 0; } { return 0; }
if(strcmp(p, "Win64") == 0) if(strcmp(p, "Win64") == 0)
{ {
return new cmGlobalVisualStudio11Generator( return new cmGlobalVisualStudio11Generator(
genName, "x64", "CMAKE_FORCE_WIN64"); genName, "x64");
} }
if(strcmp(p, "ARM") == 0) if(strcmp(p, "ARM") == 0)
{ {
return new cmGlobalVisualStudio11Generator( return new cmGlobalVisualStudio11Generator(
genName, "ARM", ""); genName, "ARM");
} }
std::set<std::string> installedSDKs = std::set<std::string> installedSDKs =
@ -70,7 +70,7 @@ public:
} }
cmGlobalVisualStudio11Generator* ret = cmGlobalVisualStudio11Generator* ret =
new cmGlobalVisualStudio11Generator(name, p, NULL); new cmGlobalVisualStudio11Generator(name, p);
ret->WindowsCEVersion = "8.00"; ret->WindowsCEVersion = "8.00";
return ret; return ret;
} }
@ -105,10 +105,8 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio11Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator( cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator(
const std::string& name, const std::string& platformName, const std::string& name, const std::string& platformName)
const std::string& additionalPlatformDefinition) : cmGlobalVisualStudio10Generator(name, platformName)
: cmGlobalVisualStudio10Generator(name, platformName,
additionalPlatformDefinition)
{ {
std::string vc11Express; std::string vc11Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@ -21,8 +21,7 @@ class cmGlobalVisualStudio11Generator:
{ {
public: public:
cmGlobalVisualStudio11Generator(const std::string& name, cmGlobalVisualStudio11Generator(const std::string& name,
const std::string& platformName, const std::string& platformName);
const std::string& additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
virtual bool MatchesGeneratorName(const std::string& name) const; virtual bool MatchesGeneratorName(const std::string& name) const;

View File

@ -46,19 +46,19 @@ public:
if(!*p) if(!*p)
{ {
return new cmGlobalVisualStudio12Generator( return new cmGlobalVisualStudio12Generator(
genName, "", ""); genName, "");
} }
if(*p++ != ' ') if(*p++ != ' ')
{ return 0; } { return 0; }
if(strcmp(p, "Win64") == 0) if(strcmp(p, "Win64") == 0)
{ {
return new cmGlobalVisualStudio12Generator( return new cmGlobalVisualStudio12Generator(
genName, "x64", "CMAKE_FORCE_WIN64"); genName, "x64");
} }
if(strcmp(p, "ARM") == 0) if(strcmp(p, "ARM") == 0)
{ {
return new cmGlobalVisualStudio12Generator( return new cmGlobalVisualStudio12Generator(
genName, "ARM", ""); genName, "ARM");
} }
return 0; return 0;
} }
@ -85,10 +85,8 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio12Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator( cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator(
const std::string& name, const std::string& platformName, const std::string& name, const std::string& platformName)
const std::string& additionalPlatformDefinition) : cmGlobalVisualStudio11Generator(name, platformName)
: cmGlobalVisualStudio11Generator(name, platformName,
additionalPlatformDefinition)
{ {
std::string vc12Express; std::string vc12Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@ -21,8 +21,7 @@ class cmGlobalVisualStudio12Generator:
{ {
public: public:
cmGlobalVisualStudio12Generator(const std::string& name, cmGlobalVisualStudio12Generator(const std::string& name,
const std::string& platformName, const std::string& platformName);
const std::string& additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
virtual bool MatchesGeneratorName(const std::string& name) const; virtual bool MatchesGeneratorName(const std::string& name) const;

View File

@ -31,19 +31,19 @@ public:
if(!*p) if(!*p)
{ {
return new cmGlobalVisualStudio14Generator( return new cmGlobalVisualStudio14Generator(
genName, "", ""); genName, "");
} }
if(*p++ != ' ') if(*p++ != ' ')
{ return 0; } { return 0; }
if(strcmp(p, "Win64") == 0) if(strcmp(p, "Win64") == 0)
{ {
return new cmGlobalVisualStudio14Generator( return new cmGlobalVisualStudio14Generator(
genName, "x64", "CMAKE_FORCE_WIN64"); genName, "x64");
} }
if(strcmp(p, "ARM") == 0) if(strcmp(p, "ARM") == 0)
{ {
return new cmGlobalVisualStudio14Generator( return new cmGlobalVisualStudio14Generator(
genName, "ARM", ""); genName, "ARM");
} }
return 0; return 0;
} }
@ -70,10 +70,8 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio14Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator( cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator(
const std::string& name, const std::string& platformName, const std::string& name, const std::string& platformName)
const std::string& additionalPlatformDefinition) : cmGlobalVisualStudio12Generator(name, platformName)
: cmGlobalVisualStudio12Generator(name, platformName,
additionalPlatformDefinition)
{ {
std::string vc14Express; std::string vc14Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@ -21,8 +21,7 @@ class cmGlobalVisualStudio14Generator:
{ {
public: public:
cmGlobalVisualStudio14Generator(const std::string& name, cmGlobalVisualStudio14Generator(const std::string& name,
const std::string& platformName, const std::string& platformName);
const std::string& additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
virtual bool MatchesGeneratorName(const std::string& name) const; virtual bool MatchesGeneratorName(const std::string& name) const;

View File

@ -41,7 +41,6 @@ void cmGlobalVisualStudio6Generator
cmMakefile *mf, cmMakefile *mf,
bool optional) bool optional)
{ {
cmGlobalVisualStudioGenerator::AddPlatformDefinitions(mf);
mf->AddDefinition("CMAKE_GENERATOR_RC", "rc"); mf->AddDefinition("CMAKE_GENERATOR_RC", "rc");
mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1"); mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1");
this->GenerateConfigurations(mf); this->GenerateConfigurations(mf);

View File

@ -262,7 +262,14 @@ cmLocalGenerator *cmGlobalVisualStudio7Generator::CreateLocalGenerator()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void cmGlobalVisualStudio7Generator::AddPlatformDefinitions(cmMakefile* mf) void cmGlobalVisualStudio7Generator::AddPlatformDefinitions(cmMakefile* mf)
{ {
cmGlobalVisualStudioGenerator::AddPlatformDefinitions(mf); if(this->PlatformName == "x64")
{
mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE");
}
else if(this->PlatformName == "Itanium")
{
mf->AddDefinition("CMAKE_FORCE_IA64", "TRUE");
}
mf->AddDefinition("CMAKE_VS_PLATFORM_NAME", this->GetPlatformName().c_str()); mf->AddDefinition("CMAKE_VS_PLATFORM_NAME", this->GetPlatformName().c_str());
mf->AddDefinition("CMAKE_VS_INTEL_Fortran_PROJECT_VERSION", mf->AddDefinition("CMAKE_VS_INTEL_Fortran_PROJECT_VERSION",
this->GetIntelProjectVersion()); this->GetIntelProjectVersion());

View File

@ -36,7 +36,7 @@ public:
if(p[0] == '\0') if(p[0] == '\0')
{ {
return new cmGlobalVisualStudio8Generator( return new cmGlobalVisualStudio8Generator(
name, "", ""); name, "");
} }
if(p[0] != ' ') if(p[0] != ' ')
@ -49,7 +49,7 @@ public:
if(!strcmp(p, "Win64")) if(!strcmp(p, "Win64"))
{ {
return new cmGlobalVisualStudio8Generator( return new cmGlobalVisualStudio8Generator(
name, "x64", "CMAKE_FORCE_WIN64"); name, "x64");
} }
cmVisualStudioWCEPlatformParser parser(p); cmVisualStudioWCEPlatformParser parser(p);
@ -60,7 +60,7 @@ public:
} }
cmGlobalVisualStudio8Generator* ret = new cmGlobalVisualStudio8Generator( cmGlobalVisualStudio8Generator* ret = new cmGlobalVisualStudio8Generator(
name, p, ""); name, p);
ret->WindowsCEVersion = parser.GetOSVersion(); ret->WindowsCEVersion = parser.GetOSVersion();
return ret; return ret;
} }
@ -93,17 +93,11 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio8Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator( cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
const std::string& name, const std::string& platformName, const std::string& name, const std::string& platformName)
const std::string& additionalPlatformDefinition)
: cmGlobalVisualStudio71Generator(platformName) : cmGlobalVisualStudio71Generator(platformName)
{ {
this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms"; this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
this->Name = name; this->Name = name;
if (!additionalPlatformDefinition.empty())
{
this->AdditionalPlatformDefinition = additionalPlatformDefinition;
}
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------

View File

@ -24,8 +24,7 @@ class cmGlobalVisualStudio8Generator : public cmGlobalVisualStudio71Generator
{ {
public: public:
cmGlobalVisualStudio8Generator(const std::string& name, cmGlobalVisualStudio8Generator(const std::string& name,
const std::string& platformName, const std::string& platformName);
const std::string& additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
///! Get the name for the generator. ///! Get the name for the generator.

View File

@ -34,7 +34,7 @@ public:
if(p[0] == '\0') if(p[0] == '\0')
{ {
return new cmGlobalVisualStudio9Generator( return new cmGlobalVisualStudio9Generator(
name, "", ""); name, "");
} }
if(p[0] != ' ') if(p[0] != ' ')
@ -47,13 +47,13 @@ public:
if(!strcmp(p, "IA64")) if(!strcmp(p, "IA64"))
{ {
return new cmGlobalVisualStudio9Generator( return new cmGlobalVisualStudio9Generator(
name, "Itanium", "CMAKE_FORCE_IA64"); name, "Itanium");
} }
if(!strcmp(p, "Win64")) if(!strcmp(p, "Win64"))
{ {
return new cmGlobalVisualStudio9Generator( return new cmGlobalVisualStudio9Generator(
name, "x64", "CMAKE_FORCE_WIN64"); name, "x64");
} }
cmVisualStudioWCEPlatformParser parser(p); cmVisualStudioWCEPlatformParser parser(p);
@ -64,7 +64,7 @@ public:
} }
cmGlobalVisualStudio9Generator* ret = new cmGlobalVisualStudio9Generator( cmGlobalVisualStudio9Generator* ret = new cmGlobalVisualStudio9Generator(
name, p, NULL); name, p);
ret->WindowsCEVersion = parser.GetOSVersion(); ret->WindowsCEVersion = parser.GetOSVersion();
return ret; return ret;
} }
@ -98,10 +98,8 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio9Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator( cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator(
const std::string& name, const std::string& platformName, const std::string& name, const std::string& platformName)
const std::string& additionalPlatformDefinition) : cmGlobalVisualStudio8Generator(name, platformName)
: cmGlobalVisualStudio8Generator(name, platformName,
additionalPlatformDefinition)
{ {
} }

View File

@ -25,8 +25,7 @@ class cmGlobalVisualStudio9Generator :
{ {
public: public:
cmGlobalVisualStudio9Generator(const std::string& name, cmGlobalVisualStudio9Generator(const std::string& name,
const std::string& platformName, const std::string& platformName);
const std::string& additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
///! create the correct local generator ///! create the correct local generator

View File

@ -23,7 +23,6 @@
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator() cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator()
{ {
this->AdditionalPlatformDefinition = "";
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -477,15 +476,6 @@ void cmGlobalVisualStudioGenerator::FindMakeProgram(cmMakefile* mf)
} }
} }
//----------------------------------------------------------------------------
void cmGlobalVisualStudioGenerator::AddPlatformDefinitions(cmMakefile* mf)
{
if(!this->AdditionalPlatformDefinition.empty())
{
mf->AddDefinition(this->AdditionalPlatformDefinition, "TRUE");
}
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
std::string std::string
cmGlobalVisualStudioGenerator::GetUtilityDepend(cmTarget const* target) cmGlobalVisualStudioGenerator::GetUtilityDepend(cmTarget const* target)

View File

@ -97,8 +97,6 @@ protected:
virtual const char* GetIDEVersion() = 0; virtual const char* GetIDEVersion() = 0;
virtual void AddPlatformDefinitions(cmMakefile* mf);
virtual bool ComputeTargetDepends(); virtual bool ComputeTargetDepends();
class VSDependSet: public std::set<std::string> {}; class VSDependSet: public std::set<std::string> {};
class VSDependMap: public std::map<cmTarget const*, VSDependSet> {}; class VSDependMap: public std::map<cmTarget const*, VSDependSet> {};
@ -111,7 +109,6 @@ protected:
std::string GetUtilityDepend(cmTarget const* target); std::string GetUtilityDepend(cmTarget const* target);
typedef std::map<cmTarget const*, std::string> UtilityDependsMap; typedef std::map<cmTarget const*, std::string> UtilityDependsMap;
UtilityDependsMap UtilityDepends; UtilityDependsMap UtilityDepends;
std::string AdditionalPlatformDefinition;
private: private:
virtual std::string GetVSMakeProgram() = 0; virtual std::string GetVSMakeProgram() = 0;