| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | 
							- /*============================================================================
 
-   CMake - Cross Platform Makefile Generator
 
-   Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
 
-   Distributed under the OSI-approved BSD License (the "License");
 
-   see accompanying file Copyright.txt for details.
 
-   This software is distributed WITHOUT ANY WARRANTY; without even the
 
-   implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-   See the License for more information.
 
- ============================================================================*/
 
- #ifndef cmGlobalVisualStudioGenerator_h
 
- #define cmGlobalVisualStudioGenerator_h
 
- #include "cmGlobalGenerator.h"
 
- /** \class cmGlobalVisualStudioGenerator
 
-  * \brief Base class for global Visual Studio generators.
 
-  *
 
-  * cmGlobalVisualStudioGenerator provides functionality common to all
 
-  * global Visual Studio generators.
 
-  */
 
- class cmGlobalVisualStudioGenerator : public cmGlobalGenerator
 
- {
 
- public:
 
-   cmGlobalVisualStudioGenerator();
 
-   virtual ~cmGlobalVisualStudioGenerator();
 
-   /**
 
-    * Basic generate implementation for all VS generators.
 
-    */
 
-   virtual void Generate();
 
-   /**
 
-    * Configure CMake's Visual Studio macros file into the user's Visual
 
-    * Studio macros directory.
 
-    */
 
-   virtual void ConfigureCMakeVisualStudioMacros();
 
-   /**
 
-    * Where does this version of Visual Studio look for macros for the
 
-    * current user? Returns the empty string if this version of Visual
 
-    * Studio does not implement support for VB macros.
 
-    */
 
-   virtual std::string GetUserMacrosDirectory();
 
-   /**
 
-    * What is the reg key path to "vsmacros" for this version of Visual
 
-    * Studio?
 
-    */
 
-   virtual std::string GetUserMacrosRegKeyBase();
 
-   enum MacroName {MacroReload, MacroStop};
 
-   /**
 
-    * Call the ReloadProjects macro if necessary based on
 
-    * GetFilesReplacedDuringGenerate results.
 
-    */
 
-   virtual void CallVisualStudioMacro(MacroName m,
 
-                                      const char* vsSolutionFile = 0);
 
-   // return true if target is fortran only
 
-   bool TargetIsFortranOnly(cmTarget& t);
 
-   /** Get the top-level registry key for this VS version.  */
 
-   std::string GetRegistryBase();
 
-   /** Get the top-level registry key for the given VS version.  */
 
-   static std::string GetRegistryBase(const char* version);
 
-   /** Return true if the generated build tree may contain multiple builds.
 
-       i.e. "Can I build Debug and Release in the same tree?" */
 
-   virtual bool IsMultiConfig() { return true; }
 
-   class TargetSet: public std::set<cmTarget*> {};
 
-   struct TargetCompare
 
-   {
 
-     bool operator()(cmTarget const* l, cmTarget const* r) const;
 
-   };
 
-   class OrderedTargetDependSet;
 
- protected:
 
-   // Does this VS version link targets to each other if there are
 
-   // dependencies in the SLN file?  This was done for VS versions
 
-   // below 8.
 
-   virtual bool VSLinksDependencies() const { return true; }
 
-   virtual const char* GetIDEVersion() = 0;
 
-   virtual void AddPlatformDefinitions(cmMakefile* mf);
 
-   virtual bool ComputeTargetDepends();
 
-   class VSDependSet: public std::set<cmStdString> {};
 
-   class VSDependMap: public std::map<cmTarget*, VSDependSet> {};
 
-   VSDependMap VSTargetDepends;
 
-   void ComputeVSTargetDepends(cmTarget&);
 
-   bool CheckTargetLinks(cmTarget& target, const char* name);
 
-   std::string GetUtilityForTarget(cmTarget& target, const char*);
 
-   virtual std::string WriteUtilityDepend(cmTarget*) = 0;
 
-   std::string GetUtilityDepend(cmTarget* target);
 
-   typedef std::map<cmTarget*, cmStdString> UtilityDependsMap;
 
-   UtilityDependsMap UtilityDepends;
 
-   std::string ArchitectureId;
 
-   const char* AdditionalPlatformDefinition;
 
- private:
 
-   void ComputeTargetObjects(cmGeneratorTarget* gt) const;
 
-   void FollowLinkDepends(cmTarget* target, std::set<cmTarget*>& linked);
 
-   class TargetSetMap: public std::map<cmTarget*, TargetSet> {};
 
-   TargetSetMap TargetLinkClosure;
 
-   void FillLinkClosure(cmTarget* target, TargetSet& linked);
 
-   TargetSet const& GetTargetLinkClosure(cmTarget* target);
 
- };
 
- class cmGlobalVisualStudioGenerator::OrderedTargetDependSet:
 
-   public std::multiset<cmTargetDepend,
 
-                        cmGlobalVisualStudioGenerator::TargetCompare>
 
- {
 
- public:
 
-   typedef cmGlobalGenerator::TargetDependSet TargetDependSet;
 
-   typedef cmGlobalVisualStudioGenerator::TargetSet TargetSet;
 
-   OrderedTargetDependSet(TargetDependSet const&);
 
-   OrderedTargetDependSet(TargetSet const&);
 
- };
 
- #endif
 
 
  |