/*========================================================================= Program: CMake - Cross-Platform Makefile Generator Module: $RCSfile: cmLocalVisualStudioGenerator.h,v $ Language: C++ Date: $Date: 2007-08-27 21:05:43 $ Version: $Revision: 1.8 $ 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 cmLocalVisualStudioGenerator_h #define cmLocalVisualStudioGenerator_h #include "cmLocalGenerator.h" class cmSourceFile; class cmSourceGroup; /** \class cmLocalVisualStudioGenerator * \brief Base class for Visual Studio generators. * * cmLocalVisualStudioGenerator provides functionality common to all * Visual Studio generators. */ class cmLocalVisualStudioGenerator : public cmLocalGenerator { public: cmLocalVisualStudioGenerator(); virtual ~cmLocalVisualStudioGenerator(); protected: /** Construct a script from the given list of command lines. */ std::string ConstructScript(const cmCustomCommandLines& commandLines, const char* workingDirectory, const char* configName, bool escapeOldStyle, bool escapeAllowMakeVars, const char* newline = "\n"); // Safe object file name generation. void ComputeObjectNameRequirements(std::vector const&); bool SourceFileCompiles(const cmSourceFile* sf); void CountObjectNames(const std::vector& groups, std::map& count); void InsertNeedObjectNames(const std::vector& groups, std::map& count); std::set NeedObjectName; }; #endif