From 268448b89151cf80ac9d4d0ea974a2d4f17c3cd5 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Fri, 20 Nov 2009 11:55:28 -0500 Subject: [PATCH] Teach VS generators to set the MACHINE type correctly. --- Source/cmGlobalVisualStudio10Generator.cxx | 2 ++ Source/cmGlobalVisualStudio10Win64Generator.cxx | 8 +++++--- Source/cmGlobalVisualStudio10Win64Generator.h | 4 ++-- Source/cmGlobalVisualStudio6Generator.cxx | 2 ++ Source/cmGlobalVisualStudio71Generator.cxx | 1 + Source/cmGlobalVisualStudio7Generator.cxx | 3 ++- Source/cmGlobalVisualStudio8Generator.cxx | 2 ++ Source/cmGlobalVisualStudio8Win64Generator.cxx | 8 +++++--- Source/cmGlobalVisualStudio8Win64Generator.h | 3 +-- Source/cmGlobalVisualStudio9Generator.cxx | 2 ++ Source/cmGlobalVisualStudio9Win64Generator.cxx | 8 +++++--- Source/cmGlobalVisualStudio9Win64Generator.h | 3 +-- 12 files changed, 30 insertions(+), 16 deletions(-) diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index abe66a88f7..691502f1aa 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -25,6 +25,8 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator() void cmGlobalVisualStudio10Generator::AddPlatformDefinitions(cmMakefile* mf) { mf->AddDefinition("MSVC10", "1"); + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "X86"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "X86"); } //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalVisualStudio10Win64Generator.cxx b/Source/cmGlobalVisualStudio10Win64Generator.cxx index 0e821c72ab..3737c142bf 100644 --- a/Source/cmGlobalVisualStudio10Win64Generator.cxx +++ b/Source/cmGlobalVisualStudio10Win64Generator.cxx @@ -29,9 +29,11 @@ void cmGlobalVisualStudio10Win64Generator } //---------------------------------------------------------------------------- -void cmGlobalVisualStudio10Win64Generator::EnableLanguage( - std::vector const& lang, cmMakefile *mf, bool optional) +void cmGlobalVisualStudio10Win64Generator +::AddPlatformDefinitions(cmMakefile* mf) { + this->cmGlobalVisualStudio10Generator::AddPlatformDefinitions(mf); mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE"); - cmGlobalVisualStudio10Generator::EnableLanguage(lang, mf, optional); + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "X86"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "X86"); } diff --git a/Source/cmGlobalVisualStudio10Win64Generator.h b/Source/cmGlobalVisualStudio10Win64Generator.h index 51b68c0282..98ba03ceb8 100644 --- a/Source/cmGlobalVisualStudio10Win64Generator.h +++ b/Source/cmGlobalVisualStudio10Win64Generator.h @@ -30,7 +30,7 @@ public: /** Get the documentation entry for this generator. */ virtual void GetDocumentation(cmDocumentationEntry& entry) const; - virtual void EnableLanguage(std::vectorconst& languages, - cmMakefile *, bool optional); + virtual void AddPlatformDefinitions(cmMakefile* mf); + }; #endif diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx index 783db21948..d053ca2c30 100644 --- a/Source/cmGlobalVisualStudio6Generator.cxx +++ b/Source/cmGlobalVisualStudio6Generator.cxx @@ -44,6 +44,8 @@ void cmGlobalVisualStudio6Generator mf->AddDefinition("CMAKE_GENERATOR_RC", "rc"); mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1"); mf->AddDefinition("CMAKE_GENERATOR_Fortran", "ifort"); + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "X86"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "X86"); mf->AddDefinition("MSVC60", "1"); this->GenerateConfigurations(mf); this->cmGlobalGenerator::EnableLanguage(lang, mf, optional); diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx index c7014aa29f..d608aac3a6 100644 --- a/Source/cmGlobalVisualStudio71Generator.cxx +++ b/Source/cmGlobalVisualStudio71Generator.cxx @@ -36,6 +36,7 @@ cmLocalGenerator *cmGlobalVisualStudio71Generator::CreateLocalGenerator() //---------------------------------------------------------------------------- void cmGlobalVisualStudio71Generator::AddPlatformDefinitions(cmMakefile* mf) { + this->cmGlobalVisualStudio7Generator::AddPlatformDefinitions(mf); mf->AddDefinition("MSVC71", "1"); } diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index ea9065ebfd..9631e9a312 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -31,7 +31,6 @@ void cmGlobalVisualStudio7Generator mf->AddDefinition("CMAKE_GENERATOR_RC", "rc"); mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1"); mf->AddDefinition("CMAKE_GENERATOR_FC", "ifort"); - this->AddPlatformDefinitions(mf); // Create list of configurations requested by user's cache, if any. @@ -59,6 +58,8 @@ void cmGlobalVisualStudio7Generator void cmGlobalVisualStudio7Generator::AddPlatformDefinitions(cmMakefile* mf) { mf->AddDefinition("MSVC70", "1"); + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "X86"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "X86"); } std::string cmGlobalVisualStudio7Generator diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx index 8aec865b6c..e423174265 100644 --- a/Source/cmGlobalVisualStudio8Generator.cxx +++ b/Source/cmGlobalVisualStudio8Generator.cxx @@ -55,6 +55,8 @@ void cmGlobalVisualStudio8Generator //---------------------------------------------------------------------------- void cmGlobalVisualStudio8Generator::AddPlatformDefinitions(cmMakefile* mf) { + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "X86"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "X86"); mf->AddDefinition("MSVC80", "1"); } diff --git a/Source/cmGlobalVisualStudio8Win64Generator.cxx b/Source/cmGlobalVisualStudio8Win64Generator.cxx index aa756d8b6c..d5558bb91b 100644 --- a/Source/cmGlobalVisualStudio8Win64Generator.cxx +++ b/Source/cmGlobalVisualStudio8Win64Generator.cxx @@ -42,10 +42,12 @@ void cmGlobalVisualStudio8Win64Generator entry.Full = ""; } +//---------------------------------------------------------------------------- void cmGlobalVisualStudio8Win64Generator -::EnableLanguage(std::vectorconst & lang, - cmMakefile *mf, bool optional) +::AddPlatformDefinitions(cmMakefile* mf) { + this->cmGlobalVisualStudio8Generator::AddPlatformDefinitions(mf); mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE"); - cmGlobalVisualStudio8Generator::EnableLanguage(lang, mf, optional); + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "x64"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "x64"); } diff --git a/Source/cmGlobalVisualStudio8Win64Generator.h b/Source/cmGlobalVisualStudio8Win64Generator.h index 2d41a3615c..44c237cd4e 100644 --- a/Source/cmGlobalVisualStudio8Win64Generator.h +++ b/Source/cmGlobalVisualStudio8Win64Generator.h @@ -43,7 +43,6 @@ public: * Try to determine system infomation such as shared library * extension, pthreads, byte order etc. */ - virtual void EnableLanguage(std::vectorconst& languages, - cmMakefile *, bool optional); + virtual void AddPlatformDefinitions(cmMakefile *); }; #endif diff --git a/Source/cmGlobalVisualStudio9Generator.cxx b/Source/cmGlobalVisualStudio9Generator.cxx index 75fe900010..f6ae705990 100644 --- a/Source/cmGlobalVisualStudio9Generator.cxx +++ b/Source/cmGlobalVisualStudio9Generator.cxx @@ -25,6 +25,8 @@ cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator() //---------------------------------------------------------------------------- void cmGlobalVisualStudio9Generator::AddPlatformDefinitions(cmMakefile* mf) { + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "X86"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "X86"); mf->AddDefinition("MSVC90", "1"); } diff --git a/Source/cmGlobalVisualStudio9Win64Generator.cxx b/Source/cmGlobalVisualStudio9Win64Generator.cxx index 288480fa4a..c5b9babfd9 100644 --- a/Source/cmGlobalVisualStudio9Win64Generator.cxx +++ b/Source/cmGlobalVisualStudio9Win64Generator.cxx @@ -39,10 +39,12 @@ void cmGlobalVisualStudio9Win64Generator entry.Full = ""; } +//---------------------------------------------------------------------------- void cmGlobalVisualStudio9Win64Generator -::EnableLanguage(std::vectorconst & lang, - cmMakefile *mf, bool optional) +::AddPlatformDefinitions(cmMakefile* mf) { + cmGlobalVisualStudio9Generator::AddPlatformDefinitions(mf); mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE"); - cmGlobalVisualStudio9Generator::EnableLanguage(lang, mf, optional); + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "x64"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "x64"); } diff --git a/Source/cmGlobalVisualStudio9Win64Generator.h b/Source/cmGlobalVisualStudio9Win64Generator.h index 698d20ef92..55abcfc56f 100644 --- a/Source/cmGlobalVisualStudio9Win64Generator.h +++ b/Source/cmGlobalVisualStudio9Win64Generator.h @@ -43,7 +43,6 @@ public: * Try to determine system infomation such as shared library * extension, pthreads, byte order etc. */ - virtual void EnableLanguage(std::vectorconst& languages, - cmMakefile *, bool optional); + virtual void AddPlatformDefinitions(cmMakefile *); }; #endif