VS: Replace ArchitectureId with PlatformName

Since we do not need the information about the target architecture
we can use the PlatformName only to specify the this information.
This also removes setting of the MSVC_*_ARCHITECTURE_ID variable
which is not required, because this variable gets set by the
compiler detection code in CMAKE_DETERMINE_COMPILER_ID_CHECK().
This commit is contained in:
Patrick Gansterer 2013-08-05 12:57:58 +02:00
parent 4b15dc855d
commit b02f09d434
19 changed files with 45 additions and 60 deletions

View File

@ -109,7 +109,7 @@ Id flags: ${testflags}
# Compile the compiler identification source. # Compile the compiler identification source.
if("${CMAKE_GENERATOR}" MATCHES "Visual Studio ([0-9]+)") if("${CMAKE_GENERATOR}" MATCHES "Visual Studio ([0-9]+)")
set(vs_version ${CMAKE_MATCH_1}) set(vs_version ${CMAKE_MATCH_1})
set(id_arch ${CMAKE_VS_PLATFORM_NAME}) set(id_platform ${CMAKE_VS_PLATFORM_NAME})
set(id_lang "${lang}") set(id_lang "${lang}")
set(id_cl cl.exe) set(id_cl cl.exe)
if(NOT "${vs_version}" VERSION_LESS 10) if(NOT "${vs_version}" VERSION_LESS 10)
@ -123,8 +123,8 @@ Id flags: ${testflags}
set(v 6) set(v 6)
set(ext dsp) set(ext dsp)
endif() endif()
if("${id_arch}" STREQUAL "Itanium") if("${id_platform}" STREQUAL "Itanium")
set(id_arch ia64) set(id_platform ia64)
endif() endif()
if(CMAKE_VS_PLATFORM_TOOLSET) if(CMAKE_VS_PLATFORM_TOOLSET)
set(id_toolset "<PlatformToolset>${CMAKE_VS_PLATFORM_TOOLSET}</PlatformToolset>") set(id_toolset "<PlatformToolset>${CMAKE_VS_PLATFORM_TOOLSET}</PlatformToolset>")
@ -138,7 +138,7 @@ Id flags: ${testflags}
set(id_subsystem 1) set(id_subsystem 1)
endif() endif()
if("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Bb][Uu][Ii][Ll][Dd]") if("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Bb][Uu][Ii][Ll][Dd]")
set(build /p:Configuration=Debug /p:Platform=@id_arch@ /p:VisualStudioVersion=${vs_version}.0) set(build /p:Configuration=Debug /p:Platform=@id_platform@ /p:VisualStudioVersion=${vs_version}.0)
elseif("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Dd][Ee][Vv]") elseif("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Dd][Ee][Vv]")
set(build /make) set(build /make)
else() else()

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@id_arch@"> <ProjectConfiguration Include="Debug|@id_platform@">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>@id_arch@</Platform> <Platform>@id_platform@</Platform>
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
@ -12,7 +12,7 @@
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_arch@'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
@id_toolset@ @id_toolset@
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
@ -20,11 +20,11 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_arch@'">.\</OutDir> <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">.\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_arch@'">$(Configuration)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|@id_arch@'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">false</LinkIncremental>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_arch@'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>

View File

@ -10,12 +10,12 @@
> >
<Platforms> <Platforms>
<Platform <Platform
Name="@id_arch@" Name="@id_platform@"
/> />
</Platforms> </Platforms>
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|@id_arch@" Name="Debug|@id_platform@"
OutputDirectory="." OutputDirectory="."
IntermediateDirectory="$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"

View File

@ -69,9 +69,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio10Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator(
const char* name, const char* architectureId, const char* name, const char* platformName,
const char* additionalPlatformDefinition) const char* additionalPlatformDefinition)
: cmGlobalVisualStudio8Generator(name, architectureId, : cmGlobalVisualStudio8Generator(name, platformName,
additionalPlatformDefinition) additionalPlatformDefinition)
{ {
this->FindMakeProgramFile = "CMakeVS10FindMake.cmake"; this->FindMakeProgramFile = "CMakeVS10FindMake.cmake";
@ -161,7 +161,7 @@ void cmGlobalVisualStudio10Generator
::EnableLanguage(std::vector<std::string>const & lang, ::EnableLanguage(std::vector<std::string>const & lang,
cmMakefile *mf, bool optional) cmMakefile *mf, bool optional)
{ {
if(this->ArchitectureId == "Itanium" || this->ArchitectureId == "x64") if(this->PlatformName == "Itanium" || this->PlatformName == "x64")
{ {
if(this->IsExpressEdition() && !this->Find64BitTools(mf)) if(this->IsExpressEdition() && !this->Find64BitTools(mf))
{ {

View File

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

View File

@ -64,9 +64,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio11Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator( cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator(
const char* name, const char* architectureId, const char* name, const char* platformName,
const char* additionalPlatformDefinition) const char* additionalPlatformDefinition)
: cmGlobalVisualStudio10Generator(name, architectureId, : cmGlobalVisualStudio10Generator(name, platformName,
additionalPlatformDefinition) additionalPlatformDefinition)
{ {
this->FindMakeProgramFile = "CMakeVS11FindMake.cmake"; this->FindMakeProgramFile = "CMakeVS11FindMake.cmake";

View File

@ -21,7 +21,7 @@ class cmGlobalVisualStudio11Generator:
{ {
public: public:
cmGlobalVisualStudio11Generator(const char* name, cmGlobalVisualStudio11Generator(const char* name,
const char* architectureId, const char* additionalPlatformDefinition); const char* platformName, const char* additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
virtual void WriteSLNHeader(std::ostream& fout); virtual void WriteSLNHeader(std::ostream& fout);

View File

@ -64,9 +64,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio12Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator( cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator(
const char* name, const char* architectureId, const char* name, const char* platformName,
const char* additionalPlatformDefinition) const char* additionalPlatformDefinition)
: cmGlobalVisualStudio11Generator(name, architectureId, : cmGlobalVisualStudio11Generator(name, platformName,
additionalPlatformDefinition) additionalPlatformDefinition)
{ {
this->FindMakeProgramFile = "CMakeVS12FindMake.cmake"; this->FindMakeProgramFile = "CMakeVS12FindMake.cmake";

View File

@ -21,7 +21,7 @@ class cmGlobalVisualStudio12Generator:
{ {
public: public:
cmGlobalVisualStudio12Generator(const char* name, cmGlobalVisualStudio12Generator(const char* name,
const char* architectureId, const char* additionalPlatformDefinition); const char* platformName, const char* additionalPlatformDefinition);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
virtual void WriteSLNHeader(std::ostream& fout); virtual void WriteSLNHeader(std::ostream& fout);

View File

@ -16,7 +16,8 @@
#include "cmake.h" #include "cmake.h"
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio71Generator::cmGlobalVisualStudio71Generator() cmGlobalVisualStudio71Generator::cmGlobalVisualStudio71Generator(
const char* platformName) : cmGlobalVisualStudio7Generator(platformName)
{ {
this->FindMakeProgramFile = "CMakeVS71FindMake.cmake"; this->FindMakeProgramFile = "CMakeVS71FindMake.cmake";
this->ProjectConfigurationSectionName = "ProjectConfiguration"; this->ProjectConfigurationSectionName = "ProjectConfiguration";

View File

@ -23,7 +23,7 @@
class cmGlobalVisualStudio71Generator : public cmGlobalVisualStudio7Generator class cmGlobalVisualStudio71Generator : public cmGlobalVisualStudio7Generator
{ {
public: public:
cmGlobalVisualStudio71Generator(); cmGlobalVisualStudio71Generator(const char* platformName = NULL);
static cmGlobalGeneratorFactory* NewFactory() { static cmGlobalGeneratorFactory* NewFactory() {
return new cmGlobalGeneratorSimpleFactory return new cmGlobalGeneratorSimpleFactory
<cmGlobalVisualStudio71Generator>(); } <cmGlobalVisualStudio71Generator>(); }

View File

@ -17,9 +17,16 @@
#include "cmMakefile.h" #include "cmMakefile.h"
#include "cmake.h" #include "cmake.h"
cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator() cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
const char* platformName)
{ {
this->FindMakeProgramFile = "CMakeVS7FindMake.cmake"; this->FindMakeProgramFile = "CMakeVS7FindMake.cmake";
if (!platformName)
{
platformName = "Win32";
}
this->PlatformName = platformName;
} }
@ -151,20 +158,6 @@ void cmGlobalVisualStudio7Generator::AddPlatformDefinitions(cmMakefile* mf)
mf->AddDefinition("CMAKE_VS_PLATFORM_NAME", this->GetPlatformName()); mf->AddDefinition("CMAKE_VS_PLATFORM_NAME", this->GetPlatformName());
} }
//----------------------------------------------------------------------------
const char* cmGlobalVisualStudio7Generator::GetPlatformName() const
{
if (!this->PlatformName.empty())
{
return this->PlatformName.c_str();
}
if (this->ArchitectureId == "X86")
{
return "Win32";
}
return this->ArchitectureId.c_str();
}
void cmGlobalVisualStudio7Generator::GenerateConfigurations(cmMakefile* mf) void cmGlobalVisualStudio7Generator::GenerateConfigurations(cmMakefile* mf)
{ {
// process the configurations // process the configurations

View File

@ -26,7 +26,7 @@ struct cmIDEFlagTable;
class cmGlobalVisualStudio7Generator : public cmGlobalVisualStudioGenerator class cmGlobalVisualStudio7Generator : public cmGlobalVisualStudioGenerator
{ {
public: public:
cmGlobalVisualStudio7Generator(); cmGlobalVisualStudio7Generator(const char* platformName = NULL);
static cmGlobalGeneratorFactory* NewFactory() { static cmGlobalGeneratorFactory* NewFactory() {
return new cmGlobalGeneratorSimpleFactory return new cmGlobalGeneratorSimpleFactory
<cmGlobalVisualStudio7Generator>(); } <cmGlobalVisualStudio7Generator>(); }
@ -37,7 +37,7 @@ public:
static const char* GetActualName() {return "Visual Studio 7";} static const char* GetActualName() {return "Visual Studio 7";}
///! Get the name for the platform. ///! Get the name for the platform.
const char* GetPlatformName() const; const char* GetPlatformName() const { return this->PlatformName.c_str(); }
///! Create a local generator appropriate to this Global Generator ///! Create a local generator appropriate to this Global Generator
virtual cmLocalGenerator *CreateLocalGenerator(); virtual cmLocalGenerator *CreateLocalGenerator();

View File

@ -57,8 +57,7 @@ public:
} }
cmGlobalVisualStudio8Generator* ret = new cmGlobalVisualStudio8Generator( cmGlobalVisualStudio8Generator* ret = new cmGlobalVisualStudio8Generator(
name, parser.GetArchitectureFamily(), NULL); name, p, NULL);
ret->PlatformName = p;
ret->WindowsCEVersion = parser.GetOSVersion(); ret->WindowsCEVersion = parser.GetOSVersion();
return ret; return ret;
} }
@ -96,16 +95,14 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio8Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator( cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
const char* name, const char* architectureId, const char* name, const char* platformName,
const char* additionalPlatformDefinition) const char* additionalPlatformDefinition)
: cmGlobalVisualStudio71Generator(platformName)
{ {
this->FindMakeProgramFile = "CMakeVS8FindMake.cmake"; this->FindMakeProgramFile = "CMakeVS8FindMake.cmake";
this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms"; this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
this->Name = name; this->Name = name;
if (architectureId)
{
this->ArchitectureId = architectureId;
}
if (additionalPlatformDefinition) if (additionalPlatformDefinition)
{ {
this->AdditionalPlatformDefinition = additionalPlatformDefinition; this->AdditionalPlatformDefinition = additionalPlatformDefinition;

View File

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

View File

@ -62,8 +62,7 @@ public:
} }
cmGlobalVisualStudio9Generator* ret = new cmGlobalVisualStudio9Generator( cmGlobalVisualStudio9Generator* ret = new cmGlobalVisualStudio9Generator(
name, parser.GetArchitectureFamily(), NULL); name, p, NULL);
ret->PlatformName = p;
ret->WindowsCEVersion = parser.GetOSVersion(); ret->WindowsCEVersion = parser.GetOSVersion();
return ret; return ret;
} }
@ -102,9 +101,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio9Generator::NewFactory()
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator( cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator(
const char* name, const char* architectureId, const char* name, const char* platformName,
const char* additionalPlatformDefinition) const char* additionalPlatformDefinition)
: cmGlobalVisualStudio8Generator(name, architectureId, : cmGlobalVisualStudio8Generator(name, platformName,
additionalPlatformDefinition) additionalPlatformDefinition)
{ {
this->FindMakeProgramFile = "CMakeVS9FindMake.cmake"; this->FindMakeProgramFile = "CMakeVS9FindMake.cmake";

View File

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

View File

@ -21,7 +21,6 @@
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator() cmGlobalVisualStudioGenerator::cmGlobalVisualStudioGenerator()
{ {
this->ArchitectureId = "X86";
this->AdditionalPlatformDefinition = NULL; this->AdditionalPlatformDefinition = NULL;
} }
@ -499,9 +498,6 @@ void cmGlobalVisualStudioGenerator::ComputeVSTargetDepends(cmTarget& target)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void cmGlobalVisualStudioGenerator::AddPlatformDefinitions(cmMakefile* mf) void cmGlobalVisualStudioGenerator::AddPlatformDefinitions(cmMakefile* mf)
{ {
mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", this->ArchitectureId.c_str());
mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", this->ArchitectureId.c_str());
if(this->AdditionalPlatformDefinition) if(this->AdditionalPlatformDefinition)
{ {
mf->AddDefinition(this->AdditionalPlatformDefinition, "TRUE"); mf->AddDefinition(this->AdditionalPlatformDefinition, "TRUE");

View File

@ -104,7 +104,6 @@ protected:
std::string GetUtilityDepend(cmTarget* target); std::string GetUtilityDepend(cmTarget* target);
typedef std::map<cmTarget*, cmStdString> UtilityDependsMap; typedef std::map<cmTarget*, cmStdString> UtilityDependsMap;
UtilityDependsMap UtilityDepends; UtilityDependsMap UtilityDepends;
std::string ArchitectureId;
const char* AdditionalPlatformDefinition; const char* AdditionalPlatformDefinition;
private: private: