65624c39e3
Call the generator "Visual Studio 14" without any year because this version of VS does not provide a year in the product name. Copy cmGlobalVisualStudio12Generator to cmGlobalVisualStudio14Generator and update version numbers accordingly. Add the VS14 enumeration value. Teach the platform module Windows-MSVC to set MSVC14 and document the variable. Teach module InstallRequiredSystemLibraries to look for the VS 14 runtime libraries. Teach tests CheckCompilerRelatedVariables, VSExternalInclude, and RunCMake.GeneratorToolset to treat VS 14 as they do VS 10, 11, and 12. Co-Author: Pawel Stopinski <diokhan@go2.pl>
83 lines
2.4 KiB
C++
83 lines
2.4 KiB
C++
/*============================================================================
|
|
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 cmLocalVisualStudioGenerator_h
|
|
#define cmLocalVisualStudioGenerator_h
|
|
|
|
#include "cmLocalGenerator.h"
|
|
|
|
#include <cmsys/auto_ptr.hxx>
|
|
|
|
class cmSourceFile;
|
|
class cmSourceGroup;
|
|
class cmCustomCommand;
|
|
class cmCustomCommandGenerator;
|
|
|
|
/** \class cmLocalVisualStudioGenerator
|
|
* \brief Base class for Visual Studio generators.
|
|
*
|
|
* cmLocalVisualStudioGenerator provides functionality common to all
|
|
* Visual Studio generators.
|
|
*/
|
|
class cmLocalVisualStudioGenerator : public cmLocalGenerator
|
|
{
|
|
public:
|
|
/** Known versions of Visual Studio. */
|
|
enum VSVersion
|
|
{
|
|
VS6 = 60,
|
|
VS7 = 70,
|
|
VS71 = 71,
|
|
VS8 = 80,
|
|
VS9 = 90,
|
|
VS10 = 100,
|
|
VS11 = 110,
|
|
VS12 = 120,
|
|
/* VS13 = 130 was skipped */
|
|
VS14 = 140
|
|
};
|
|
|
|
cmLocalVisualStudioGenerator(VSVersion v);
|
|
virtual ~cmLocalVisualStudioGenerator();
|
|
|
|
/** Construct a script from the given list of command lines. */
|
|
std::string ConstructScript(cmCustomCommandGenerator const& ccg,
|
|
const std::string& newline = "\n");
|
|
|
|
/** Label to which to jump in a batch file after a failed step in a
|
|
sequence of custom commands. */
|
|
const char* GetReportErrorLabel() const;
|
|
|
|
/** Version of Visual Studio. */
|
|
VSVersion GetVersion() const { return this->Version; }
|
|
|
|
virtual std::string ComputeLongestObjectDirectory(cmTarget&) const = 0;
|
|
|
|
virtual void AddCMakeListsRules() = 0;
|
|
|
|
virtual void ComputeObjectFilenames(
|
|
std::map<cmSourceFile const*, std::string>& mapping,
|
|
cmGeneratorTarget const* = 0);
|
|
|
|
protected:
|
|
virtual const char* ReportErrorLabel() const;
|
|
virtual bool CustomCommandUseLocal() const { return false; }
|
|
|
|
/** Construct a custom command to make exe import lib dir. */
|
|
cmsys::auto_ptr<cmCustomCommand>
|
|
MaybeCreateImplibDir(cmTarget& target, const std::string& config,
|
|
bool isFortran);
|
|
|
|
VSVersion Version;
|
|
};
|
|
|
|
#endif
|