| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*=========================================================================
- Program: CMake - Cross-Platform Makefile Generator
- Module: $RCSfile$
- Language: C++
- Date: $Date$
- Version: $Revision$
- Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices 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();
- enum MacroName {MacroReload, MacroStop};
- /**
- * Call the ReloadProjects macro if necessary based on
- * GetFilesReplacedDuringGenerate results.
- */
- virtual void CallVisualStudioMacro(MacroName m,
- const char* vsSolutionFile = 0);
- protected:
- virtual void CreateGUID(const char*) {}
- void FixUtilityDepends();
- const char* GetUtilityForTarget(cmTarget& target, const char*);
- // 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; }
- private:
- void FixUtilityDependsForTarget(cmTarget& target);
- void CreateUtilityDependTarget(cmTarget& target);
- bool CheckTargetLinks(cmTarget& target, const char* name);
- };
- #endif
|