Selaa lähdekoodia

VS: Delay getting platform name in local generator

Ask the global generator during generation instead of trying
to store it up front.  Later the global generator may not know
the platform name when it is creating the local generator.
Brad King 11 vuotta sitten
vanhempi
sitoutus
7a526c35f6

+ 0 - 1
Source/cmGlobalVisualStudio10Generator.cxx

@@ -168,7 +168,6 @@ cmLocalGenerator *cmGlobalVisualStudio10Generator::CreateLocalGenerator()
 {
 {
   cmLocalVisualStudio10Generator* lg =
   cmLocalVisualStudio10Generator* lg =
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS10);
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS10);
-  lg->SetPlatformName(this->GetPlatformName());
   lg->SetGlobalGenerator(this);
   lg->SetGlobalGenerator(this);
   return lg;
   return lg;
 }
 }

+ 0 - 1
Source/cmGlobalVisualStudio11Generator.cxx

@@ -147,7 +147,6 @@ cmLocalGenerator *cmGlobalVisualStudio11Generator::CreateLocalGenerator()
 {
 {
   cmLocalVisualStudio10Generator* lg =
   cmLocalVisualStudio10Generator* lg =
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS11);
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS11);
-  lg->SetPlatformName(this->GetPlatformName());
   lg->SetGlobalGenerator(this);
   lg->SetGlobalGenerator(this);
   return lg;
   return lg;
 }
 }

+ 0 - 1
Source/cmGlobalVisualStudio12Generator.cxx

@@ -127,7 +127,6 @@ cmLocalGenerator *cmGlobalVisualStudio12Generator::CreateLocalGenerator()
 {
 {
   cmLocalVisualStudio10Generator* lg =
   cmLocalVisualStudio10Generator* lg =
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS12);
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS12);
-  lg->SetPlatformName(this->GetPlatformName());
   lg->SetGlobalGenerator(this);
   lg->SetGlobalGenerator(this);
   return lg;
   return lg;
 }
 }

+ 0 - 1
Source/cmGlobalVisualStudio14Generator.cxx

@@ -108,7 +108,6 @@ cmLocalGenerator *cmGlobalVisualStudio14Generator::CreateLocalGenerator()
 {
 {
   cmLocalVisualStudio10Generator* lg =
   cmLocalVisualStudio10Generator* lg =
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS14);
     new cmLocalVisualStudio10Generator(cmLocalVisualStudioGenerator::VS14);
-  lg->SetPlatformName(this->GetPlatformName());
   lg->SetGlobalGenerator(this);
   lg->SetGlobalGenerator(this);
   return lg;
   return lg;
 }
 }

+ 0 - 1
Source/cmGlobalVisualStudio8Generator.cxx

@@ -126,7 +126,6 @@ cmLocalGenerator *cmGlobalVisualStudio8Generator::CreateLocalGenerator()
 {
 {
   cmLocalVisualStudio7Generator *lg =
   cmLocalVisualStudio7Generator *lg =
     new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS8);
     new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS8);
-  lg->SetPlatformName(this->GetPlatformName());
   lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
   lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
   lg->SetGlobalGenerator(this);
   lg->SetGlobalGenerator(this);
   return lg;
   return lg;

+ 0 - 1
Source/cmGlobalVisualStudio9Generator.cxx

@@ -115,7 +115,6 @@ cmLocalGenerator *cmGlobalVisualStudio9Generator::CreateLocalGenerator()
 {
 {
   cmLocalVisualStudio7Generator *lg
   cmLocalVisualStudio7Generator *lg
     = new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS9);
     = new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS9);
-  lg->SetPlatformName(this->GetPlatformName());
   lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
   lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
   lg->SetGlobalGenerator(this);
   lg->SetGlobalGenerator(this);
   return lg;
   return lg;

+ 16 - 8
Source/cmLocalVisualStudio7Generator.cxx

@@ -48,7 +48,6 @@ extern cmVS7FlagTable cmLocalVisualStudio7GeneratorFlagTable[];
 cmLocalVisualStudio7Generator::cmLocalVisualStudio7Generator(VSVersion v):
 cmLocalVisualStudio7Generator::cmLocalVisualStudio7Generator(VSVersion v):
   cmLocalVisualStudioGenerator(v)
   cmLocalVisualStudioGenerator(v)
 {
 {
-  this->PlatformName = "Win32";
   this->ExtraFlagTable = 0;
   this->ExtraFlagTable = 0;
   this->Internal = new cmLocalVisualStudio7GeneratorInternals(this);
   this->Internal = new cmLocalVisualStudio7GeneratorInternals(this);
 }
 }
@@ -647,8 +646,11 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
     {
     {
     mfcFlag = "0";
     mfcFlag = "0";
     }
     }
+  cmGlobalVisualStudio7Generator* gg =
+    static_cast<cmGlobalVisualStudio7Generator*>(this->GlobalGenerator);
   fout << "\t\t<Configuration\n"
   fout << "\t\t<Configuration\n"
-       << "\t\t\tName=\"" << configName << "|" << this->PlatformName << "\"\n"
+       << "\t\t\tName=\"" << configName
+       << "|" << gg->GetPlatformName() << "\"\n"
        << "\t\t\tOutputDirectory=\"" << configName << "\"\n";
        << "\t\t\tOutputDirectory=\"" << configName << "\"\n";
   // This is an internal type to Visual Studio, it seems that:
   // This is an internal type to Visual Studio, it seems that:
   // 4 == static library
   // 4 == static library
@@ -896,11 +898,11 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
     }
     }
   fout << "\"\n";
   fout << "\"\n";
   fout << "\t\t\t\tMkTypLibCompatible=\"false\"\n";
   fout << "\t\t\t\tMkTypLibCompatible=\"false\"\n";
-  if( this->PlatformName == "x64" )
+  if( gg->GetPlatformName() == "x64" )
     {
     {
     fout << "\t\t\t\tTargetEnvironment=\"3\"\n";
     fout << "\t\t\t\tTargetEnvironment=\"3\"\n";
     }
     }
-  else if( this->PlatformName == "ia64" )
+  else if( gg->GetPlatformName() == "ia64" )
     {
     {
     fout << "\t\t\t\tTargetEnvironment=\"2\"\n";
     fout << "\t\t\t\tTargetEnvironment=\"2\"\n";
     }
     }
@@ -1640,6 +1642,8 @@ bool cmLocalVisualStudio7Generator
              std::ostream &fout, const std::string& libName,
              std::ostream &fout, const std::string& libName,
              std::vector<std::string> *configs)
              std::vector<std::string> *configs)
 {
 {
+  cmGlobalVisualStudio7Generator* gg =
+    static_cast<cmGlobalVisualStudio7Generator *>(this->GlobalGenerator);
   const std::vector<const cmSourceFile *> &sourceFiles =
   const std::vector<const cmSourceFile *> &sourceFiles =
     sg->GetSourceFiles();
     sg->GetSourceFiles();
   std::vector<cmSourceGroup> const& children  = sg->GetGroupChildren();
   std::vector<cmSourceGroup> const& children  = sg->GetGroupChildren();
@@ -1730,7 +1734,7 @@ bool cmLocalVisualStudio7Generator
           cmLVS7GFileConfig const& fc = fci->second;
           cmLVS7GFileConfig const& fc = fci->second;
           fout << "\t\t\t\t<FileConfiguration\n"
           fout << "\t\t\t\t<FileConfiguration\n"
                << "\t\t\t\t\tName=\""  << fci->first
                << "\t\t\t\t\tName=\""  << fci->first
-               << "|" << this->PlatformName << "\"";
+               << "|" << gg->GetPlatformName() << "\"";
           if(fc.ExcludedFromBuild)
           if(fc.ExcludedFromBuild)
             {
             {
             fout << " ExcludedFromBuild=\"true\"";
             fout << " ExcludedFromBuild=\"true\"";
@@ -1800,6 +1804,9 @@ WriteCustomRule(std::ostream& fout,
                 const cmCustomCommand& command,
                 const cmCustomCommand& command,
                 FCInfo& fcinfo)
                 FCInfo& fcinfo)
 {
 {
+  cmGlobalVisualStudio7Generator* gg =
+    static_cast<cmGlobalVisualStudio7Generator *>(this->GlobalGenerator);
+
   // Write the rule for each configuration.
   // Write the rule for each configuration.
   std::vector<std::string>::iterator i;
   std::vector<std::string>::iterator i;
   std::vector<std::string> *configs =
   std::vector<std::string> *configs =
@@ -1820,7 +1827,8 @@ WriteCustomRule(std::ostream& fout,
     cmCustomCommandGenerator ccg(command, *i, this->Makefile);
     cmCustomCommandGenerator ccg(command, *i, this->Makefile);
     cmLVS7GFileConfig const& fc = fcinfo.FileConfigMap[*i];
     cmLVS7GFileConfig const& fc = fcinfo.FileConfigMap[*i];
     fout << "\t\t\t\t<FileConfiguration\n";
     fout << "\t\t\t\t<FileConfiguration\n";
-    fout << "\t\t\t\t\tName=\"" << *i << "|" << this->PlatformName << "\">\n";
+    fout << "\t\t\t\t\tName=\"" << *i << "|"
+         << gg->GetPlatformName() << "\">\n";
     if(!fc.CompileFlags.empty())
     if(!fc.CompileFlags.empty())
       {
       {
       fout << "\t\t\t\t\t<Tool\n"
       fout << "\t\t\t\t\t<Tool\n"
@@ -2030,7 +2038,7 @@ cmLocalVisualStudio7Generator
   fout<< "\tKeyword=\"" << keyword << "\">\n"
   fout<< "\tKeyword=\"" << keyword << "\">\n"
        << "\tProjectGUID=\"{" << gg->GetGUID(libName.c_str()) << "}\">\n"
        << "\tProjectGUID=\"{" << gg->GetGUID(libName.c_str()) << "}\">\n"
        << "\t<Platforms>\n"
        << "\t<Platforms>\n"
-       << "\t\t<Platform\n\t\t\tName=\"" << this->PlatformName << "\"/>\n"
+       << "\t\t<Platform\n\t\t\tName=\"" << gg->GetPlatformName() << "\"/>\n"
        << "\t</Platforms>\n";
        << "\t</Platforms>\n";
 }
 }
 
 
@@ -2085,7 +2093,7 @@ cmLocalVisualStudio7Generator::WriteProjectStart(std::ostream& fout,
     }
     }
   fout << "\tKeyword=\"" << keyword << "\">\n"
   fout << "\tKeyword=\"" << keyword << "\">\n"
        << "\t<Platforms>\n"
        << "\t<Platforms>\n"
-       << "\t\t<Platform\n\t\t\tName=\"" << this->PlatformName << "\"/>\n"
+       << "\t\t<Platform\n\t\t\tName=\"" << gg->GetPlatformName() << "\"/>\n"
        << "\t</Platforms>\n";
        << "\t</Platforms>\n";
 }
 }
 
 

+ 0 - 3
Source/cmLocalVisualStudio7Generator.h

@@ -53,8 +53,6 @@ public:
    */
    */
   void SetBuildType(BuildType,const std::string& name);
   void SetBuildType(BuildType,const std::string& name);
 
 
-  void SetPlatformName(const std::string& n) { this->PlatformName = n;}
-
   void SetExtraFlagTable(cmVS7FlagTable const* table)
   void SetExtraFlagTable(cmVS7FlagTable const* table)
     { this->ExtraFlagTable = table; }
     { this->ExtraFlagTable = table; }
   virtual std::string GetTargetDirectory(cmTarget const&) const;
   virtual std::string GetTargetDirectory(cmTarget const&) const;
@@ -124,7 +122,6 @@ private:
   std::string ModuleDefinitionFile;
   std::string ModuleDefinitionFile;
   bool FortranProject;
   bool FortranProject;
   bool WindowsCEProject;
   bool WindowsCEProject;
-  std::string PlatformName; // Win32 or x64
   cmLocalVisualStudio7GeneratorInternals* Internal;
   cmLocalVisualStudio7GeneratorInternals* Internal;
 };
 };