Explorar el Código

VS: Ignore USE_FOLDER property on VS versions that do not support it

Solution folders are supported on VS 8 and above in the full versions
and on VS 11 and above in the express versions.
Brad King hace 9 años
padre
commit
571bedec29

+ 0 - 6
Source/cmGlobalVisualStudio10Generator.cxx

@@ -608,12 +608,6 @@ void cmGlobalVisualStudio10Generator::PathTooLong(
     }
 }
 
-//----------------------------------------------------------------------------
-bool cmGlobalVisualStudio10Generator::UseFolderProperty()
-{
-  return IsExpressEdition() ? false : cmGlobalGenerator::UseFolderProperty();
-}
-
 //----------------------------------------------------------------------------
 bool cmGlobalVisualStudio10Generator::IsNsightTegra() const
 {

+ 0 - 2
Source/cmGlobalVisualStudio10Generator.h

@@ -127,8 +127,6 @@ protected:
   bool SystemIsWindowsPhone;
   bool SystemIsWindowsStore;
 
-  bool UseFolderProperty();
-
 private:
   class Factory;
   struct LongestSourcePath

+ 4 - 4
Source/cmGlobalVisualStudio11Generator.cxx

@@ -239,10 +239,10 @@ void cmGlobalVisualStudio11Generator::WriteSLNHeader(std::ostream& fout)
 //----------------------------------------------------------------------------
 bool cmGlobalVisualStudio11Generator::UseFolderProperty()
 {
-  // Intentionally skip over the parent class implementation and call the
-  // grand-parent class's implementation. Folders are not supported by the
-  // Express editions in VS10 and earlier, but they are in VS11 Express.
-  return cmGlobalVisualStudio8Generator::UseFolderProperty();
+  // Intentionally skip up to the top-level class implementation.
+  // Folders are not supported by the Express editions in VS10 and earlier,
+  // but they are in VS11 Express and above.
+  return cmGlobalGenerator::UseFolderProperty();
 }
 
 //----------------------------------------------------------------------------

+ 3 - 0
Source/cmGlobalVisualStudio71Generator.h

@@ -75,6 +75,9 @@ protected:
                                     const std::set<std::string>& depends);
   virtual void WriteSLNHeader(std::ostream& fout);
 
+  // Folders are not supported by VS 7.1.
+  virtual bool UseFolderProperty() { return false; }
+
   std::string ProjectConfigurationSectionName;
 };
 #endif

+ 6 - 0
Source/cmGlobalVisualStudio8Generator.cxx

@@ -193,6 +193,12 @@ void cmGlobalVisualStudio8Generator::Configure()
   this->cmGlobalVisualStudio7Generator::Configure();
 }
 
+//----------------------------------------------------------------------------
+bool cmGlobalVisualStudio8Generator::UseFolderProperty()
+{
+  return IsExpressEdition() ? false : cmGlobalGenerator::UseFolderProperty();
+}
+
 //----------------------------------------------------------------------------
 std::string cmGlobalVisualStudio8Generator::GetUserMacrosDirectory()
 {

+ 2 - 0
Source/cmGlobalVisualStudio8Generator.h

@@ -97,6 +97,8 @@ protected:
                                    const char* path,
                                    const cmGeneratorTarget *t);
 
+  bool UseFolderProperty();
+
   std::string Name;
   std::string WindowsCEVersion;
   bool ExpressEdition;

+ 1 - 1
Source/cmGlobalVisualStudioGenerator.cxx

@@ -92,7 +92,7 @@ void cmGlobalVisualStudioGenerator::AddExtraIDETargets()
       //
       // Organize in the "predefined targets" folder:
       //
-      if (this->UseFolderProperty() && this->GetVersion() > VS71)
+      if (this->UseFolderProperty())
         {
         allBuild->SetProperty("FOLDER", this->GetPredefinedTargetsFolder());
         }