[Cmake-commits] CMake branch, next, updated. v3.2.2-2832-gcab6f4d

Stephen Kelly steveire at gmail.com
Sun May 17 06:38:44 EDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  cab6f4ddb2ec0ccfcd8bde4c47f7ea8347d38781 (commit)
       via  e37932b1c94a101d582d0fdf33e52f32b09fdc12 (commit)
       via  e185da5ce35481dcd8c5624e47ee5dabf4a9a813 (commit)
       via  ce30416e18dd26145a89ecb04dd2326695a60420 (commit)
      from  180c07e81352fb3117b5da2369ba4c5659f4481c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cab6f4ddb2ec0ccfcd8bde4c47f7ea8347d38781
commit cab6f4ddb2ec0ccfcd8bde4c47f7ea8347d38781
Merge: 180c07e e37932b
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun May 17 06:38:42 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sun May 17 06:38:42 2015 -0400

    Merge topic 'clean-up-vs-generators' into next
    
    e37932b1 VS: Remove obsolete methods.
    e185da5c VS: Move version information to global generator.
    ce30416e VS: Simplify setting of flag table.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e37932b1c94a101d582d0fdf33e52f32b09fdc12
commit e37932b1c94a101d582d0fdf33e52f32b09fdc12
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun May 17 11:33:16 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun May 17 12:38:05 2015 +0200

    VS: Remove obsolete methods.
    
    Base class implementations for these are identical.

diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx
index 6fe0501..c7ff1f6 100644
--- a/Source/cmGlobalVisualStudio11Generator.cxx
+++ b/Source/cmGlobalVisualStudio11Generator.cxx
@@ -238,13 +238,6 @@ void cmGlobalVisualStudio11Generator::WriteSLNHeader(std::ostream& fout)
 }
 
 //----------------------------------------------------------------------------
-cmLocalGenerator *
-cmGlobalVisualStudio11Generator::CreateLocalGenerator(cmLocalGenerator* parent)
-{
-  return new cmLocalVisualStudio10Generator(this, parent);
-}
-
-//----------------------------------------------------------------------------
 bool cmGlobalVisualStudio11Generator::UseFolderProperty()
 {
   // Intentionally skip over the parent class implementation and call the
diff --git a/Source/cmGlobalVisualStudio11Generator.h b/Source/cmGlobalVisualStudio11Generator.h
index ae4b888..6a9032f 100644
--- a/Source/cmGlobalVisualStudio11Generator.h
+++ b/Source/cmGlobalVisualStudio11Generator.h
@@ -28,9 +28,6 @@ public:
 
   virtual void WriteSLNHeader(std::ostream& fout);
 
-  ///! create the correct local generator
-  virtual cmLocalGenerator *CreateLocalGenerator(cmLocalGenerator* parent = 0);
-
 protected:
   virtual bool InitializeWindowsPhone(cmMakefile* mf);
   virtual bool InitializeWindowsStore(cmMakefile* mf);
diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx
index c744280..4e89e57 100644
--- a/Source/cmGlobalVisualStudio12Generator.cxx
+++ b/Source/cmGlobalVisualStudio12Generator.cxx
@@ -218,13 +218,6 @@ void cmGlobalVisualStudio12Generator::WriteSLNHeader(std::ostream& fout)
 }
 
 //----------------------------------------------------------------------------
-cmLocalGenerator *
-cmGlobalVisualStudio12Generator::CreateLocalGenerator(cmLocalGenerator* parent)
-{
-  return new cmLocalVisualStudio10Generator(this, parent);
-}
-
-//----------------------------------------------------------------------------
 bool
 cmGlobalVisualStudio12Generator::IsWindowsDesktopToolsetInstalled() const
 {
diff --git a/Source/cmGlobalVisualStudio12Generator.h b/Source/cmGlobalVisualStudio12Generator.h
index d304bc1..797394f 100644
--- a/Source/cmGlobalVisualStudio12Generator.h
+++ b/Source/cmGlobalVisualStudio12Generator.h
@@ -28,9 +28,6 @@ public:
 
   virtual void WriteSLNHeader(std::ostream& fout);
 
-  ///! create the correct local generator
-  virtual cmLocalGenerator *CreateLocalGenerator(cmLocalGenerator* parent = 0);
-
   //in Visual Studio 2013 they detached the MSBuild tools version
   //from the .Net Framework version and instead made it have it's own
   //version number
diff --git a/Source/cmGlobalVisualStudio14Generator.cxx b/Source/cmGlobalVisualStudio14Generator.cxx
index e11943d..06ebe32 100644
--- a/Source/cmGlobalVisualStudio14Generator.cxx
+++ b/Source/cmGlobalVisualStudio14Generator.cxx
@@ -127,10 +127,3 @@ void cmGlobalVisualStudio14Generator::WriteSLNHeader(std::ostream& fout)
     fout << "# Visual Studio 14\n";
     }
 }
-
-//----------------------------------------------------------------------------
-cmLocalGenerator *
-cmGlobalVisualStudio14Generator::CreateLocalGenerator(cmLocalGenerator* parent)
-{
-  return new cmLocalVisualStudio10Generator(this, parent);
-}
diff --git a/Source/cmGlobalVisualStudio14Generator.h b/Source/cmGlobalVisualStudio14Generator.h
index 59f1e60..4d5612f 100644
--- a/Source/cmGlobalVisualStudio14Generator.h
+++ b/Source/cmGlobalVisualStudio14Generator.h
@@ -28,9 +28,6 @@ public:
 
   virtual void WriteSLNHeader(std::ostream& fout);
 
-  ///! create the correct local generator
-  virtual cmLocalGenerator *CreateLocalGenerator(cmLocalGenerator* parent = 0);
-
   virtual const char* GetToolsVersion() { return "14.0"; }
 protected:
   virtual const char* GetIDEVersion() { return "14.0"; }
diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx
index 3021da5..e3636bb 100644
--- a/Source/cmGlobalVisualStudio71Generator.cxx
+++ b/Source/cmGlobalVisualStudio71Generator.cxx
@@ -25,16 +25,6 @@ cmGlobalVisualStudio71Generator::cmGlobalVisualStudio71Generator(
 }
 
 //----------------------------------------------------------------------------
-///! Create a local generator appropriate to this Global Generator
-cmLocalGenerator *
-cmGlobalVisualStudio71Generator::CreateLocalGenerator(cmLocalGenerator* parent)
-{
-  cmLocalVisualStudio7Generator *lg =
-    new cmLocalVisualStudio7Generator(this, parent);
-  return lg;
-}
-
-//----------------------------------------------------------------------------
 std::string cmGlobalVisualStudio71Generator::GetUserMacrosDirectory()
 {
   // Macros not supported on Visual Studio 7.1 and earlier because
diff --git a/Source/cmGlobalVisualStudio71Generator.h b/Source/cmGlobalVisualStudio71Generator.h
index ad6c153..7223ebc 100644
--- a/Source/cmGlobalVisualStudio71Generator.h
+++ b/Source/cmGlobalVisualStudio71Generator.h
@@ -36,9 +36,6 @@ public:
   /** Get the documentation entry for this generator.  */
   static void GetDocumentation(cmDocumentationEntry& entry);
 
-  ///! Create a local generator appropriate to this Global Generator
-  virtual cmLocalGenerator *CreateLocalGenerator(cmLocalGenerator* parent = 0);
-
   /**
    * Where does this version of Visual Studio look for macros for the
    * current user? Returns the empty string if this version of Visual
diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
index 5a69f62..6d0dd36 100644
--- a/Source/cmGlobalVisualStudio8Generator.cxx
+++ b/Source/cmGlobalVisualStudio8Generator.cxx
@@ -126,16 +126,6 @@ std::string cmGlobalVisualStudio8Generator::FindDevEnvCommand()
 }
 
 //----------------------------------------------------------------------------
-///! Create a local generator appropriate to this Global Generator
-cmLocalGenerator *
-cmGlobalVisualStudio8Generator::CreateLocalGenerator(cmLocalGenerator* parent)
-{
-  cmLocalVisualStudio7Generator *lg =
-    new cmLocalVisualStudio7Generator(this, parent);
-  return lg;
-}
-
-//----------------------------------------------------------------------------
 void cmGlobalVisualStudio8Generator
 ::EnableLanguage(std::vector<std::string>const &  lang,
                  cmMakefile *mf, bool optional)
diff --git a/Source/cmGlobalVisualStudio8Generator.h b/Source/cmGlobalVisualStudio8Generator.h
index ee5ba9f..5079862 100644
--- a/Source/cmGlobalVisualStudio8Generator.h
+++ b/Source/cmGlobalVisualStudio8Generator.h
@@ -33,9 +33,6 @@ public:
   /** Get the documentation entry for this generator.  */
   static void GetDocumentation(cmDocumentationEntry& entry);
 
-  ///! Create a local generator appropriate to this Global Generator
-  virtual cmLocalGenerator *CreateLocalGenerator(cmLocalGenerator* parent = 0);
-
   virtual void EnableLanguage(std::vector<std::string>const& languages,
                               cmMakefile *, bool optional);
   virtual void AddPlatformDefinitions(cmMakefile* mf);
diff --git a/Source/cmGlobalVisualStudio9Generator.cxx b/Source/cmGlobalVisualStudio9Generator.cxx
index 8f32165..95e9fb9 100644
--- a/Source/cmGlobalVisualStudio9Generator.cxx
+++ b/Source/cmGlobalVisualStudio9Generator.cxx
@@ -114,15 +114,6 @@ void cmGlobalVisualStudio9Generator::WriteSLNHeader(std::ostream& fout)
   fout << "# Visual Studio 2008\n";
 }
 
-///! Create a local generator appropriate to this Global Generator
-cmLocalGenerator *
-cmGlobalVisualStudio9Generator::CreateLocalGenerator(cmLocalGenerator* parent)
-{
-  cmLocalVisualStudio7Generator *lg
-    = new cmLocalVisualStudio7Generator(this, parent);
-  return lg;
-}
-
 //----------------------------------------------------------------------------
 std::string cmGlobalVisualStudio9Generator::GetUserMacrosDirectory()
 {
diff --git a/Source/cmGlobalVisualStudio9Generator.h b/Source/cmGlobalVisualStudio9Generator.h
index 97b7804..bc4f773 100644
--- a/Source/cmGlobalVisualStudio9Generator.h
+++ b/Source/cmGlobalVisualStudio9Generator.h
@@ -28,9 +28,6 @@ public:
     const std::string& platformName);
   static cmGlobalGeneratorFactory* NewFactory();
 
-  ///! create the correct local generator
-  virtual cmLocalGenerator *CreateLocalGenerator(cmLocalGenerator* parent = 0);
-
   /**
    * Try to determine system information such as shared library
    * extension, pthreads, byte order etc.

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e185da5ce35481dcd8c5624e47ee5dabf4a9a813
commit e185da5ce35481dcd8c5624e47ee5dabf4a9a813
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun May 17 11:33:09 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun May 17 12:38:04 2015 +0200

    VS: Move version information to global generator.

diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 04bb6ce..d907de4 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -105,6 +105,7 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator(
   this->SystemIsWindowsPhone = false;
   this->SystemIsWindowsStore = false;
   this->MSBuildCommandInitialized = false;
+  this->Version = VS10;
 }
 
 //----------------------------------------------------------------------------
@@ -311,8 +312,7 @@ void cmGlobalVisualStudio10Generator::WriteSLNHeader(std::ostream& fout)
 cmLocalGenerator *
 cmGlobalVisualStudio10Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
-  return new cmLocalVisualStudio10Generator(
-    cmLocalVisualStudioGenerator::VS10, this, parent);
+  return new cmLocalVisualStudio10Generator(this, parent);
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx
index 36ae0a4..6fe0501 100644
--- a/Source/cmGlobalVisualStudio11Generator.cxx
+++ b/Source/cmGlobalVisualStudio11Generator.cxx
@@ -117,6 +117,7 @@ cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator(
     "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\11.0\\Setup\\VC;"
     "ProductDir", vc11Express, cmSystemTools::KeyWOW64_32);
   this->DefaultPlatformToolset = "v110";
+  this->Version = VS11;
 }
 
 //----------------------------------------------------------------------------
@@ -240,8 +241,7 @@ void cmGlobalVisualStudio11Generator::WriteSLNHeader(std::ostream& fout)
 cmLocalGenerator *
 cmGlobalVisualStudio11Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
-  return new cmLocalVisualStudio10Generator(
-    cmLocalVisualStudioGenerator::VS11, this, parent);
+  return new cmLocalVisualStudio10Generator(this, parent);
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx
index 17b2fc7..c744280 100644
--- a/Source/cmGlobalVisualStudio12Generator.cxx
+++ b/Source/cmGlobalVisualStudio12Generator.cxx
@@ -97,6 +97,7 @@ cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator(
     "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\12.0\\Setup\\VC;"
     "ProductDir", vc12Express, cmSystemTools::KeyWOW64_32);
   this->DefaultPlatformToolset = "v120";
+  this->Version = VS12;
 }
 
 //----------------------------------------------------------------------------
@@ -220,8 +221,7 @@ void cmGlobalVisualStudio12Generator::WriteSLNHeader(std::ostream& fout)
 cmLocalGenerator *
 cmGlobalVisualStudio12Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
-  return new cmLocalVisualStudio10Generator(
-    cmLocalVisualStudioGenerator::VS12, this, parent);
+  return new cmLocalVisualStudio10Generator(this, parent);
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmGlobalVisualStudio14Generator.cxx b/Source/cmGlobalVisualStudio14Generator.cxx
index 90fcc7e..e11943d 100644
--- a/Source/cmGlobalVisualStudio14Generator.cxx
+++ b/Source/cmGlobalVisualStudio14Generator.cxx
@@ -97,6 +97,7 @@ cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator(
     "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\14.0\\Setup\\VC;"
     "ProductDir", vc14Express, cmSystemTools::KeyWOW64_32);
   this->DefaultPlatformToolset = "v140";
+  this->Version = VS14;
 }
 
 //----------------------------------------------------------------------------
@@ -131,6 +132,5 @@ void cmGlobalVisualStudio14Generator::WriteSLNHeader(std::ostream& fout)
 cmLocalGenerator *
 cmGlobalVisualStudio14Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
-  return new cmLocalVisualStudio10Generator(
-    cmLocalVisualStudioGenerator::VS14, this, parent);
+  return new cmLocalVisualStudio10Generator(this, parent);
 }
diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx
index 570314e..66936b6 100644
--- a/Source/cmGlobalVisualStudio6Generator.cxx
+++ b/Source/cmGlobalVisualStudio6Generator.cxx
@@ -34,6 +34,7 @@ std::string GetVS6TargetName(const std::string& targetName)
 cmGlobalVisualStudio6Generator::cmGlobalVisualStudio6Generator()
 {
   this->MSDevCommandInitialized = false;
+  this->Version = VS6;
 }
 
 void cmGlobalVisualStudio6Generator
diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx
index a71f7c7..3021da5 100644
--- a/Source/cmGlobalVisualStudio71Generator.cxx
+++ b/Source/cmGlobalVisualStudio71Generator.cxx
@@ -21,6 +21,7 @@ cmGlobalVisualStudio71Generator::cmGlobalVisualStudio71Generator(
   : cmGlobalVisualStudio7Generator(platformName)
 {
   this->ProjectConfigurationSectionName = "ProjectConfiguration";
+  this->Version = VS71;
 }
 
 //----------------------------------------------------------------------------
@@ -29,8 +30,7 @@ cmLocalGenerator *
 cmGlobalVisualStudio71Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
   cmLocalVisualStudio7Generator *lg =
-    new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS71,
-                                      this, parent);
+    new cmLocalVisualStudio7Generator(this, parent);
   return lg;
 }
 
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index 4e58868..5538ebc 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -34,6 +34,7 @@ cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
     this->DefaultPlatformName = platformName;
     }
   this->ExtraFlagTable = this->GetExtraFlagTableVS7();
+  this->Version = VS7;
 }
 
 cmGlobalVisualStudio7Generator::~cmGlobalVisualStudio7Generator()
@@ -255,8 +256,7 @@ cmLocalGenerator *
 cmGlobalVisualStudio7Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
   cmLocalVisualStudio7Generator *lg =
-    new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS7,
-                                      this, parent);
+    new cmLocalVisualStudio7Generator(this, parent);
   return lg;
 }
 
diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
index 0239d86..5a69f62 100644
--- a/Source/cmGlobalVisualStudio8Generator.cxx
+++ b/Source/cmGlobalVisualStudio8Generator.cxx
@@ -102,6 +102,7 @@ cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
   this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
   this->Name = name;
   this->ExtraFlagTable = this->GetExtraFlagTableVS8();
+  this->Version = VS8;
 }
 
 //----------------------------------------------------------------------------
@@ -130,8 +131,7 @@ cmLocalGenerator *
 cmGlobalVisualStudio8Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
   cmLocalVisualStudio7Generator *lg =
-    new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS8,
-                                      this, parent);
+    new cmLocalVisualStudio7Generator(this, parent);
   return lg;
 }
 
diff --git a/Source/cmGlobalVisualStudio9Generator.cxx b/Source/cmGlobalVisualStudio9Generator.cxx
index 93028dc..8f32165 100644
--- a/Source/cmGlobalVisualStudio9Generator.cxx
+++ b/Source/cmGlobalVisualStudio9Generator.cxx
@@ -104,6 +104,7 @@ cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator(
   const std::string& name, const std::string& platformName)
   : cmGlobalVisualStudio8Generator(name, platformName)
 {
+  this->Version = VS9;
 }
 
 //----------------------------------------------------------------------------
@@ -118,8 +119,7 @@ cmLocalGenerator *
 cmGlobalVisualStudio9Generator::CreateLocalGenerator(cmLocalGenerator* parent)
 {
   cmLocalVisualStudio7Generator *lg
-    = new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS9,
-                                        this, parent);
+    = new cmLocalVisualStudio7Generator(this, parent);
   return lg;
 }
 
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index b74ba6f..a7d63d8 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -33,6 +33,13 @@ cmGlobalVisualStudioGenerator::~cmGlobalVisualStudioGenerator()
 }
 
 //----------------------------------------------------------------------------
+cmGlobalVisualStudioGenerator::VSVersion
+cmGlobalVisualStudioGenerator::GetVersion() const
+{
+  return this->Version;
+}
+
+//----------------------------------------------------------------------------
 std::string cmGlobalVisualStudioGenerator::GetRegistryBase()
 {
   return cmGlobalVisualStudioGenerator::GetRegistryBase(
diff --git a/Source/cmGlobalVisualStudioGenerator.h b/Source/cmGlobalVisualStudioGenerator.h
index cb54132..1946f91 100644
--- a/Source/cmGlobalVisualStudioGenerator.h
+++ b/Source/cmGlobalVisualStudioGenerator.h
@@ -23,9 +23,26 @@
 class cmGlobalVisualStudioGenerator : public cmGlobalGenerator
 {
 public:
+  /** Known versions of Visual Studio.  */
+  enum VSVersion
+  {
+    VS6 = 60,
+    VS7 = 70,
+    VS71 = 71,
+    VS8 = 80,
+    VS9 = 90,
+    VS10 = 100,
+    VS11 = 110,
+    VS12 = 120,
+    /* VS13 = 130 was skipped */
+    VS14 = 140
+  };
+
   cmGlobalVisualStudioGenerator();
   virtual ~cmGlobalVisualStudioGenerator();
 
+  VSVersion GetVersion() const;
+
   /**
    * Configure CMake's Visual Studio macros file into the user's Visual
    * Studio macros directory.
@@ -107,6 +124,9 @@ protected:
   typedef std::map<cmTarget const*, std::string> UtilityDependsMap;
   UtilityDependsMap UtilityDepends;
 
+protected:
+  VSVersion Version;
+
 private:
   virtual std::string GetVSMakeProgram() = 0;
   void PrintCompilerAdvice(std::ostream&, std::string const&,
diff --git a/Source/cmLocalVisualStudio10Generator.cxx b/Source/cmLocalVisualStudio10Generator.cxx
index 06a3b6c..37b722a 100644
--- a/Source/cmLocalVisualStudio10Generator.cxx
+++ b/Source/cmLocalVisualStudio10Generator.cxx
@@ -62,9 +62,9 @@ class cmVS10XMLParser : public cmXMLParser
 
 //----------------------------------------------------------------------------
 cmLocalVisualStudio10Generator
-::cmLocalVisualStudio10Generator(VSVersion v, cmGlobalGenerator* gg,
+::cmLocalVisualStudio10Generator(cmGlobalGenerator* gg,
                                  cmLocalGenerator* parent):
-  cmLocalVisualStudio7Generator(v, gg, parent)
+  cmLocalVisualStudio7Generator(gg, parent)
 {
 }
 
diff --git a/Source/cmLocalVisualStudio10Generator.h b/Source/cmLocalVisualStudio10Generator.h
index 987e08b..afd52b9 100644
--- a/Source/cmLocalVisualStudio10Generator.h
+++ b/Source/cmLocalVisualStudio10Generator.h
@@ -25,7 +25,7 @@ class cmLocalVisualStudio10Generator : public cmLocalVisualStudio7Generator
 {
 public:
   ///! Set cache only and recurse to false by default.
-  cmLocalVisualStudio10Generator(VSVersion v, cmGlobalGenerator* gg,
+  cmLocalVisualStudio10Generator(cmGlobalGenerator* gg,
                                  cmLocalGenerator* parent);
 
   virtual ~cmLocalVisualStudio10Generator();
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index 42da639..8dc9836 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -26,7 +26,7 @@
 cmLocalVisualStudio6Generator
 ::cmLocalVisualStudio6Generator(cmGlobalGenerator* gg,
                                 cmLocalGenerator* parent):
-  cmLocalVisualStudioGenerator(VS6, gg, parent)
+  cmLocalVisualStudioGenerator(gg, parent)
 {
 }
 
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 6eeea1b..bc0a215 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -55,9 +55,9 @@ static void cmConvertToWindowsSlash(std::string& s)
 
 //----------------------------------------------------------------------------
 cmLocalVisualStudio7Generator
-::cmLocalVisualStudio7Generator(VSVersion v, cmGlobalGenerator* gg,
+::cmLocalVisualStudio7Generator(cmGlobalGenerator* gg,
                                 cmLocalGenerator* parent):
-  cmLocalVisualStudioGenerator(v, gg, parent)
+  cmLocalVisualStudioGenerator(gg, parent)
 {
   this->Internal = new cmLocalVisualStudio7GeneratorInternals(this);
 }
@@ -240,18 +240,17 @@ void cmLocalVisualStudio7Generator::WriteStampFiles()
 void cmLocalVisualStudio7Generator
 ::CreateSingleVCProj(const std::string& lname, cmTarget &target)
 {
-  this->FortranProject =
-    static_cast<cmGlobalVisualStudioGenerator*>(this->GlobalGenerator)
-    ->TargetIsFortranOnly(target);
-  this->WindowsCEProject =
-    static_cast<cmGlobalVisualStudioGenerator*>(this->GlobalGenerator)
-    ->TargetsWindowsCE();
+  cmGlobalVisualStudioGenerator* gg
+      = static_cast<cmGlobalVisualStudioGenerator*>(this->GlobalGenerator);
+  this->FortranProject = gg->TargetIsFortranOnly(target);
+  this->WindowsCEProject = gg->TargetsWindowsCE();
 
   // Intel Fortran for VS10 uses VS9 format ".vfproj" files.
-  VSVersion realVersion = this->Version;
-  if(this->FortranProject && this->Version >= VS10)
+  cmGlobalVisualStudioGenerator::VSVersion realVersion = gg->GetVersion();
+  if(this->FortranProject
+      && gg->GetVersion() >= cmGlobalVisualStudioGenerator::VS10)
     {
-    this->Version = VS9;
+    gg->Version = cmGlobalVisualStudioGenerator::VS9;
     }
 
   // add to the list of projects
@@ -281,7 +280,7 @@ void cmLocalVisualStudio7Generator
     this->GlobalGenerator->FileReplacedDuringGenerate(fname);
     }
 
-  this->Version = realVersion;
+  gg->Version = realVersion;
 }
 
 //----------------------------------------------------------------------------
@@ -996,7 +995,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
   // end of <Tool Name=VCMIDLTool
 
   // Check if we need the FAT32 workaround.
-  if(targetBuilds && this->Version >= VS8)
+  if(targetBuilds && this->GetVersion() >= cmGlobalVisualStudioGenerator::VS8)
     {
     // Check the filesystem type where the target will be written.
     if(cmLVS6G_IsFAT(target.GetDirectory(configName).c_str()))
@@ -1131,7 +1130,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
     fout << "\t\t\t<Tool\n"
          << "\t\t\t\tName=\"" << tool << "\"\n";
 
-    if(this->GetVersion() < VS8 || this->FortranProject)
+    if(this->GetVersion() < cmGlobalVisualStudioGenerator::VS8
+        || this->FortranProject)
       {
       std::ostringstream libdeps;
       this->Internal->OutputObjects(libdeps, &target);
@@ -1191,7 +1191,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
     // libraries which may be set by the user to something bad.
     fout << "\t\t\t\tAdditionalDependencies=\"$(NOINHERIT) "
          << this->Makefile->GetSafeDefinition(standardLibsVar.c_str());
-    if(this->GetVersion() < VS8 || this->FortranProject)
+    if(this->GetVersion() < cmGlobalVisualStudioGenerator::VS8
+        || this->FortranProject)
       {
       this->Internal->OutputObjects(fout, &target, " ");
       }
@@ -1219,7 +1220,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
       }
     if(this->WindowsCEProject)
       {
-      if(this->GetVersion() < VS9)
+      if(this->GetVersion() < cmGlobalVisualStudioGenerator::VS9)
         {
         fout << "\t\t\t\tSubSystem=\"9\"\n";
         }
@@ -1289,7 +1290,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
     // libraries which may be set by the user to something bad.
     fout << "\t\t\t\tAdditionalDependencies=\"$(NOINHERIT) "
          << this->Makefile->GetSafeDefinition(standardLibsVar.c_str());
-    if(this->GetVersion() < VS8 || this->FortranProject)
+    if(this->GetVersion() < cmGlobalVisualStudioGenerator::VS8
+        || this->FortranProject)
       {
       this->Internal->OutputObjects(fout, &target, " ");
       }
@@ -1317,7 +1319,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
       }
     if ( this->WindowsCEProject )
       {
-      if(this->GetVersion() < VS9)
+      if(this->GetVersion() < cmGlobalVisualStudioGenerator::VS9)
         {
         fout << "\t\t\t\tSubSystem=\"9\"\n";
         }
@@ -1518,7 +1520,8 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
     this->WriteGroup(&sg, target, fout, libName, configs);
     }
 
-  if(this->GetVersion() >= VS8 && !this->FortranProject)
+  if(this->GetVersion() >= cmGlobalVisualStudioGenerator::VS8
+      && !this->FortranProject)
     {
     // VS >= 8 support per-config source locations so we
     // list object library content as external objects.
@@ -2153,13 +2156,13 @@ cmLocalVisualStudio7Generator::WriteProjectStart(std::ostream& fout,
        << gg->Encoding() << "\"?>\n"
        << "<VisualStudioProject\n"
        << "\tProjectType=\"Visual C++\"\n";
-  if(this->Version == VS71)
+  if(gg->GetVersion() == cmGlobalVisualStudioGenerator::VS71)
     {
     fout << "\tVersion=\"7.10\"\n";
     }
   else
     {
-    fout <<  "\tVersion=\"" << (this->Version/10) << ".00\"\n";
+    fout <<  "\tVersion=\"" << (gg->GetVersion()/10) << ".00\"\n";
     }
   const char* projLabel = target.GetProperty("PROJECT_LABEL");
   if(!projLabel)
@@ -2172,7 +2175,7 @@ cmLocalVisualStudio7Generator::WriteProjectStart(std::ostream& fout,
     keyword = "Win32Proj";
     }
   fout << "\tName=\"" << projLabel << "\"\n";
-  if(this->Version >= VS8)
+  if(gg->GetVersion() >= cmGlobalVisualStudioGenerator::VS8)
     {
     fout << "\tProjectGUID=\"{" << gg->GetGUID(libName.c_str()) << "}\"\n";
     }
diff --git a/Source/cmLocalVisualStudio7Generator.h b/Source/cmLocalVisualStudio7Generator.h
index 81d0728..464d750 100644
--- a/Source/cmLocalVisualStudio7Generator.h
+++ b/Source/cmLocalVisualStudio7Generator.h
@@ -35,7 +35,7 @@ class cmLocalVisualStudio7Generator : public cmLocalVisualStudioGenerator
 {
 public:
   ///! Set cache only and recurse to false by default.
-  cmLocalVisualStudio7Generator(VSVersion v, cmGlobalGenerator* gg,
+  cmLocalVisualStudio7Generator(cmGlobalGenerator* gg,
                                 cmLocalGenerator* parent);
 
   virtual ~cmLocalVisualStudio7Generator();
diff --git a/Source/cmLocalVisualStudioGenerator.cxx b/Source/cmLocalVisualStudioGenerator.cxx
index 4a596d5..551783b 100644
--- a/Source/cmLocalVisualStudioGenerator.cxx
+++ b/Source/cmLocalVisualStudioGenerator.cxx
@@ -19,11 +19,10 @@
 
 //----------------------------------------------------------------------------
 cmLocalVisualStudioGenerator
-::cmLocalVisualStudioGenerator(VSVersion v, cmGlobalGenerator* gg,
+::cmLocalVisualStudioGenerator(cmGlobalGenerator* gg,
                                cmLocalGenerator* parent)
   : cmLocalGenerator(gg, parent)
 {
-  this->Version = v;
 }
 
 //----------------------------------------------------------------------------
@@ -32,6 +31,15 @@ cmLocalVisualStudioGenerator::~cmLocalVisualStudioGenerator()
 }
 
 //----------------------------------------------------------------------------
+cmGlobalVisualStudioGenerator::VSVersion
+cmLocalVisualStudioGenerator::GetVarsion() const
+{
+  cmGlobalVisualStudioGenerator* gg =
+    static_cast<cmGlobalVisualStudioGenerator*>(this->GlobalGenerator);
+  return gg->GetVersion();
+}
+
+//----------------------------------------------------------------------------
 void cmLocalVisualStudioGenerator::ComputeObjectFilenames(
                         std::map<cmSourceFile const*, std::string>& mapping,
                         cmGeneratorTarget const* gt)
diff --git a/Source/cmLocalVisualStudioGenerator.h b/Source/cmLocalVisualStudioGenerator.h
index 1152e82..df7d20c 100644
--- a/Source/cmLocalVisualStudioGenerator.h
+++ b/Source/cmLocalVisualStudioGenerator.h
@@ -13,6 +13,7 @@
 #define cmLocalVisualStudioGenerator_h
 
 #include "cmLocalGenerator.h"
+#include "cmGlobalVisualStudioGenerator.h"
 
 #include <cmsys/auto_ptr.hxx>
 
@@ -30,22 +31,7 @@ class cmCustomCommandGenerator;
 class cmLocalVisualStudioGenerator : public cmLocalGenerator
 {
 public:
-  /** Known versions of Visual Studio.  */
-  enum VSVersion
-  {
-    VS6 = 60,
-    VS7 = 70,
-    VS71 = 71,
-    VS8 = 80,
-    VS9 = 90,
-    VS10 = 100,
-    VS11 = 110,
-    VS12 = 120,
-    /* VS13 = 130 was skipped */
-    VS14 = 140
-  };
-
-  cmLocalVisualStudioGenerator(VSVersion v, cmGlobalGenerator* gg,
+  cmLocalVisualStudioGenerator(cmGlobalGenerator* gg,
                                cmLocalGenerator* parent);
   virtual ~cmLocalVisualStudioGenerator();
 
@@ -57,8 +43,7 @@ public:
       sequence of custom commands. */
   const char* GetReportErrorLabel() const;
 
-  /** Version of Visual Studio.  */
-  VSVersion GetVersion() const { return this->Version; }
+  cmGlobalVisualStudioGenerator::VSVersion GetVersion() const;
 
   virtual std::string ComputeLongestObjectDirectory(cmTarget&) const = 0;
 
@@ -76,8 +61,6 @@ protected:
   cmsys::auto_ptr<cmCustomCommand>
   MaybeCreateImplibDir(cmTarget& target, const std::string& config,
                        bool isFortran);
-
-  VSVersion Version;
 };
 
 #endif
diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index 457de11..f60c410 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -20,7 +20,7 @@
 #include "cmAlgorithms.h"
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
-# include "cmLocalVisualStudioGenerator.h"
+# include "cmGlobalVisualStudioGenerator.h"
 #endif
 
 #include <sys/stat.h>
@@ -378,7 +378,7 @@ bool cmQtAutoGenerators::InitializeAutogenTarget(cmTarget* target)
     // reduce the number of targets loaded into the IDE.
     // This also works around a VS 11 bug that may skip updating the target:
     //  https://connect.microsoft.com/VisualStudio/feedback/details/769495
-    usePRE_BUILD = vslg->GetVersion() >= cmLocalVisualStudioGenerator::VS7;
+    usePRE_BUILD = vslg->GetVersion() >= cmGlobalVisualStudioGenerator::VS7;
     if(usePRE_BUILD)
       {
       for (std::vector<std::string>::iterator it = depends.begin();
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 131a134..5673982 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -47,13 +47,13 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetClFlagTable() const
 {
   if(this->MSTools)
     {
-    cmLocalVisualStudioGenerator::VSVersion
+    cmGlobalVisualStudioGenerator::VSVersion
       v = this->LocalGenerator->GetVersion();
-    if(v >= cmLocalVisualStudioGenerator::VS14)
+    if(v >= cmGlobalVisualStudioGenerator::VS14)
       { return cmVS14CLFlagTable; }
-    else if(v >= cmLocalVisualStudioGenerator::VS12)
+    else if(v >= cmGlobalVisualStudioGenerator::VS12)
       { return cmVS12CLFlagTable; }
-    else if(v == cmLocalVisualStudioGenerator::VS11)
+    else if(v == cmGlobalVisualStudioGenerator::VS11)
       { return cmVS11CLFlagTable; }
     else
       { return cmVS10CLFlagTable; }
@@ -65,13 +65,13 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetRcFlagTable() const
 {
   if(this->MSTools)
     {
-    cmLocalVisualStudioGenerator::VSVersion
+    cmGlobalVisualStudioGenerator::VSVersion
       v = this->LocalGenerator->GetVersion();
-    if(v >= cmLocalVisualStudioGenerator::VS14)
+    if(v >= cmGlobalVisualStudioGenerator::VS14)
       { return cmVS14RCFlagTable; }
-    else if(v >= cmLocalVisualStudioGenerator::VS12)
+    else if(v >= cmGlobalVisualStudioGenerator::VS12)
       { return cmVS12RCFlagTable; }
-    else if(v == cmLocalVisualStudioGenerator::VS11)
+    else if(v == cmGlobalVisualStudioGenerator::VS11)
       { return cmVS11RCFlagTable; }
     else
       { return cmVS10RCFlagTable; }
@@ -83,13 +83,13 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLibFlagTable() const
 {
   if(this->MSTools)
     {
-    cmLocalVisualStudioGenerator::VSVersion
+    cmGlobalVisualStudioGenerator::VSVersion
       v = this->LocalGenerator->GetVersion();
-    if(v >= cmLocalVisualStudioGenerator::VS14)
+    if(v >= cmGlobalVisualStudioGenerator::VS14)
       { return cmVS14LibFlagTable; }
-    else if(v >= cmLocalVisualStudioGenerator::VS12)
+    else if(v >= cmGlobalVisualStudioGenerator::VS12)
       { return cmVS12LibFlagTable; }
-    else if(v == cmLocalVisualStudioGenerator::VS11)
+    else if(v == cmGlobalVisualStudioGenerator::VS11)
       { return cmVS11LibFlagTable; }
     else
       { return cmVS10LibFlagTable; }
@@ -101,13 +101,13 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetLinkFlagTable() const
 {
   if(this->MSTools)
     {
-    cmLocalVisualStudioGenerator::VSVersion
+    cmGlobalVisualStudioGenerator::VSVersion
       v = this->LocalGenerator->GetVersion();
-    if(v >= cmLocalVisualStudioGenerator::VS14)
+    if(v >= cmGlobalVisualStudioGenerator::VS14)
       { return cmVS14LinkFlagTable; }
-    else if(v >= cmLocalVisualStudioGenerator::VS12)
+    else if(v >= cmGlobalVisualStudioGenerator::VS12)
       { return cmVS12LinkFlagTable; }
-    else if(v == cmLocalVisualStudioGenerator::VS11)
+    else if(v == cmGlobalVisualStudioGenerator::VS11)
       { return cmVS11LinkFlagTable; }
     else
       { return cmVS10LinkFlagTable; }
@@ -119,13 +119,13 @@ cmIDEFlagTable const* cmVisualStudio10TargetGenerator::GetMasmFlagTable() const
 {
   if(this->MSTools)
     {
-    cmLocalVisualStudioGenerator::VSVersion
+    cmGlobalVisualStudioGenerator::VSVersion
       v = this->LocalGenerator->GetVersion();
-    if(v >= cmLocalVisualStudioGenerator::VS14)
+    if(v >= cmGlobalVisualStudioGenerator::VS14)
       { return cmVS14MASMFlagTable; }
-    else if(v >= cmLocalVisualStudioGenerator::VS12)
+    else if(v >= cmGlobalVisualStudioGenerator::VS12)
       { return cmVS12MASMFlagTable; }
-    else if(v == cmLocalVisualStudioGenerator::VS11)
+    else if(v == cmGlobalVisualStudioGenerator::VS11)
       { return cmVS11MASMFlagTable; }
     else
       { return cmVS10MASMFlagTable; }
@@ -911,7 +911,8 @@ cmVisualStudio10TargetGenerator::WriteCustomRule(cmSourceFile const* source,
       sep = ";";
       }
     (*this->BuildFileStream ) << "</Outputs>\n";
-    if(this->LocalGenerator->GetVersion() > cmLocalVisualStudioGenerator::VS10)
+    if(this->LocalGenerator->GetVersion()
+                                        > cmGlobalVisualStudioGenerator::VS10)
       {
       // VS >= 11 let us turn off linking of custom command outputs.
       this->WritePlatformConfigTag("LinkObjects", i->c_str(), 3);
@@ -1416,7 +1417,7 @@ void cmVisualStudio10TargetGenerator::WriteSource(
   // conversion uses full paths when possible to allow deeper trees.
   bool forceRelative = false;
   std::string sourceFile = this->ConvertPath(sf->GetFullPath(), false);
-  if(this->LocalGenerator->GetVersion() == cmLocalVisualStudioGenerator::VS10
+  if(this->LocalGenerator->GetVersion() == cmGlobalVisualStudioGenerator::VS10
      && cmSystemTools::FileIsFullPath(sourceFile.c_str()))
     {
     // Normal path conversion resulted in a full path.  VS 10 (but not 11)
@@ -1544,7 +1545,7 @@ void cmVisualStudio10TargetGenerator::WriteAllSources()
       ++si;
       }
     }
-  if(this->LocalGenerator->GetVersion() > cmLocalVisualStudioGenerator::VS10)
+  if(this->LocalGenerator->GetVersion() > cmGlobalVisualStudioGenerator::VS10)
     {
     // For VS >= 11 we use LinkObjects to avoid linking custom command
     // outputs.  Use Object for all external objects, generated or not.
diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx
index 00386f6..6512fc2 100644
--- a/Source/cmVisualStudioGeneratorOptions.cxx
+++ b/Source/cmVisualStudioGeneratorOptions.cxx
@@ -96,14 +96,14 @@ void cmVisualStudioGeneratorOptions::FixExceptionHandlingDefault()
   // remove the flag we need to override the IDE default of on.
   switch (this->Version)
     {
-    case cmLocalVisualStudioGenerator::VS7:
-    case cmLocalVisualStudioGenerator::VS71:
+    case cmGlobalVisualStudioGenerator::VS7:
+    case cmGlobalVisualStudioGenerator::VS71:
       this->FlagMap["ExceptionHandling"] = "FALSE";
       break;
-    case cmLocalVisualStudioGenerator::VS10:
-    case cmLocalVisualStudioGenerator::VS11:
-    case cmLocalVisualStudioGenerator::VS12:
-    case cmLocalVisualStudioGenerator::VS14:
+    case cmGlobalVisualStudioGenerator::VS10:
+    case cmGlobalVisualStudioGenerator::VS11:
+    case cmGlobalVisualStudioGenerator::VS12:
+    case cmGlobalVisualStudioGenerator::VS14:
       // by default VS puts <ExceptionHandling></ExceptionHandling> empty
       // for a project, to make our projects look the same put a new line
       // and space over for the closing </ExceptionHandling> as the default
@@ -132,7 +132,7 @@ void cmVisualStudioGeneratorOptions::SetVerboseMakefile(bool verbose)
      this->FlagMap.find("SuppressStartupBanner") == this->FlagMap.end())
     {
     this->FlagMap["SuppressStartupBanner"] =
-      this->Version < cmLocalVisualStudioGenerator::VS10 ? "FALSE" : "";
+      this->Version < cmGlobalVisualStudioGenerator::VS10 ? "FALSE" : "";
     }
 }
 
@@ -270,7 +270,7 @@ cmVisualStudioGeneratorOptions
     {
     return;
     }
-  if(this->Version >= cmLocalVisualStudioGenerator::VS10)
+  if(this->Version >= cmGlobalVisualStudioGenerator::VS10)
     {
     // if there are configuration specific flags, then
     // use the configuration specific tag for PreprocessorDefinitions
@@ -298,7 +298,7 @@ cmVisualStudioGeneratorOptions
     {
     // Escape the definition for the compiler.
     std::string define;
-    if(this->Version < cmLocalVisualStudioGenerator::VS10)
+    if(this->Version < cmGlobalVisualStudioGenerator::VS10)
       {
       define =
         this->LocalGenerator->EscapeForShell(di->c_str(), true);
@@ -308,7 +308,7 @@ cmVisualStudioGeneratorOptions
       define = *di;
       }
     // Escape this flag for the IDE.
-    if(this->Version >= cmLocalVisualStudioGenerator::VS10)
+    if(this->Version >= cmGlobalVisualStudioGenerator::VS10)
       {
       define = cmVisualStudio10GeneratorOptionsEscapeForXML(define);
 
@@ -325,7 +325,7 @@ cmVisualStudioGeneratorOptions
     fout << sep << define;
     sep = ";";
     }
-  if(this->Version >= cmLocalVisualStudioGenerator::VS10)
+  if(this->Version >= cmGlobalVisualStudioGenerator::VS10)
     {
     fout <<  ";%(PreprocessorDefinitions)</PreprocessorDefinitions>" << suffix;
     }
@@ -340,7 +340,7 @@ void
 cmVisualStudioGeneratorOptions
 ::OutputFlagMap(std::ostream& fout, const char* indent)
 {
-  if(this->Version >= cmLocalVisualStudioGenerator::VS10)
+  if(this->Version >= cmGlobalVisualStudioGenerator::VS10)
     {
     for(std::map<std::string, FlagValue>::iterator m = this->FlagMap.begin();
         m != this->FlagMap.end(); ++m)
@@ -395,7 +395,7 @@ cmVisualStudioGeneratorOptions
 {
   if(!this->FlagString.empty())
     {
-    if(this->Version >= cmLocalVisualStudioGenerator::VS10)
+    if(this->Version >= cmGlobalVisualStudioGenerator::VS10)
       {
       fout << prefix;
       if(this->Configuration.size())
diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h
index 5490a43..0179134 100644
--- a/Source/cmVisualStudioGeneratorOptions.h
+++ b/Source/cmVisualStudioGeneratorOptions.h
@@ -73,7 +73,7 @@ public:
   void SetConfiguration(const char* config);
 private:
   cmLocalVisualStudioGenerator* LocalGenerator;
-  cmLocalVisualStudioGenerator::VSVersion Version;
+  cmGlobalVisualStudioGenerator::VSVersion Version;
 
   std::string Configuration;
   Tool CurrentTool;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ce30416e18dd26145a89ecb04dd2326695a60420
commit ce30416e18dd26145a89ecb04dd2326695a60420
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun May 17 11:33:04 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun May 17 12:38:04 2015 +0200

    VS: Simplify setting of flag table.

diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx
index 308e858..a71f7c7 100644
--- a/Source/cmGlobalVisualStudio71Generator.cxx
+++ b/Source/cmGlobalVisualStudio71Generator.cxx
@@ -31,7 +31,6 @@ cmGlobalVisualStudio71Generator::CreateLocalGenerator(cmLocalGenerator* parent)
   cmLocalVisualStudio7Generator *lg =
     new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS71,
                                       this, parent);
-  lg->SetExtraFlagTable(this->GetExtraFlagTableVS7());
   return lg;
 }
 
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index a2faddd..4e58868 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -33,6 +33,7 @@ cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
     {
     this->DefaultPlatformName = platformName;
     }
+  this->ExtraFlagTable = this->GetExtraFlagTableVS7();
 }
 
 cmGlobalVisualStudio7Generator::~cmGlobalVisualStudio7Generator()
@@ -256,7 +257,6 @@ cmGlobalVisualStudio7Generator::CreateLocalGenerator(cmLocalGenerator* parent)
   cmLocalVisualStudio7Generator *lg =
     new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS7,
                                       this, parent);
-  lg->SetExtraFlagTable(this->GetExtraFlagTableVS7());
   return lg;
 }
 
diff --git a/Source/cmGlobalVisualStudio7Generator.h b/Source/cmGlobalVisualStudio7Generator.h
index 92c5f1a..204fdc8 100644
--- a/Source/cmGlobalVisualStudio7Generator.h
+++ b/Source/cmGlobalVisualStudio7Generator.h
@@ -111,6 +111,8 @@ public:
   // Encoding for Visual Studio files
   virtual std::string Encoding();
 
+  cmIDEFlagTable const* ExtraFlagTable;
+
 protected:
   virtual void Generate();
   virtual const char* GetIDEVersion() { return "7.0"; }
@@ -120,7 +122,6 @@ protected:
 
   static const char* ExternalProjectType(const char* location);
 
-  static cmIDEFlagTable const* GetExtraFlagTableVS7();
   virtual void OutputSLNFile(cmLocalGenerator* root,
                              std::vector<cmLocalGenerator*>& generators);
   virtual void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root,
diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
index ff9ff10..0239d86 100644
--- a/Source/cmGlobalVisualStudio8Generator.cxx
+++ b/Source/cmGlobalVisualStudio8Generator.cxx
@@ -101,6 +101,7 @@ cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
 {
   this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
   this->Name = name;
+  this->ExtraFlagTable = this->GetExtraFlagTableVS8();
 }
 
 //----------------------------------------------------------------------------
@@ -131,7 +132,6 @@ cmGlobalVisualStudio8Generator::CreateLocalGenerator(cmLocalGenerator* parent)
   cmLocalVisualStudio7Generator *lg =
     new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS8,
                                       this, parent);
-  lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
   return lg;
 }
 
diff --git a/Source/cmGlobalVisualStudio9Generator.cxx b/Source/cmGlobalVisualStudio9Generator.cxx
index 8adde23..93028dc 100644
--- a/Source/cmGlobalVisualStudio9Generator.cxx
+++ b/Source/cmGlobalVisualStudio9Generator.cxx
@@ -120,7 +120,6 @@ cmGlobalVisualStudio9Generator::CreateLocalGenerator(cmLocalGenerator* parent)
   cmLocalVisualStudio7Generator *lg
     = new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS9,
                                         this, parent);
-  lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
   return lg;
 }
 
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 63c18a7..6eeea1b 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -59,7 +59,6 @@ cmLocalVisualStudio7Generator
                                 cmLocalGenerator* parent):
   cmLocalVisualStudioGenerator(v, gg, parent)
 {
-  this->ExtraFlagTable = 0;
   this->Internal = new cmLocalVisualStudio7GeneratorInternals(this);
 }
 
@@ -771,9 +770,11 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
     t = Options::FortranCompiler;
     table = cmLocalVisualStudio7GeneratorFortranFlagTable;
     }
+  cmGlobalVisualStudio7Generator* gg =
+    static_cast<cmGlobalVisualStudio7Generator*>(this->GlobalGenerator);
   Options targetOptions(this, t,
                         table,
-                        this->ExtraFlagTable);
+                        gg->ExtraFlagTable);
   targetOptions.FixExceptionHandlingDefault();
   std::string asmLocation = configName + "/";
   targetOptions.AddFlag("AssemblerListingLocation", asmLocation.c_str());
@@ -1841,8 +1842,11 @@ bool cmLocalVisualStudio7Generator
               tool = Options::FortranCompiler;
               table = cmLocalVisualStudio7GeneratorFortranFlagTable;
               }
+            cmGlobalVisualStudio7Generator* gg =
+              static_cast<cmGlobalVisualStudio7Generator*>(
+                                                      this->GlobalGenerator);
             Options fileOptions(this, tool, table,
-                                this->ExtraFlagTable);
+                                gg->ExtraFlagTable);
             fileOptions.Parse(fc.CompileFlags.c_str());
             fileOptions.AddDefines(fc.CompileDefs.c_str());
             fileOptions.AddDefines(fc.CompileDefsConfig.c_str());
diff --git a/Source/cmLocalVisualStudio7Generator.h b/Source/cmLocalVisualStudio7Generator.h
index 1891369..81d0728 100644
--- a/Source/cmLocalVisualStudio7Generator.h
+++ b/Source/cmLocalVisualStudio7Generator.h
@@ -54,8 +54,6 @@ public:
    */
   void SetBuildType(BuildType,const std::string& name);
 
-  void SetExtraFlagTable(cmVS7FlagTable const* table)
-    { this->ExtraFlagTable = table; }
   virtual std::string GetTargetDirectory(cmTarget const&) const;
   cmSourceFile* CreateVCProjBuildRule();
   void WriteStampFiles();
@@ -119,7 +117,6 @@ private:
   class EventWriter;
   friend class EventWriter;
 
-  cmVS7FlagTable const* ExtraFlagTable;
   std::string ModuleDefinitionFile;
   bool FortranProject;
   bool WindowsCEProject;

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list