Merge topic 'vs11-generator'
3b5256e Teach our tests about special cases for VS 11 3d5632e Add Visual Studio 11 generator for x86 and x64 tools
This commit is contained in:
commit
449aef3efb
54
Modules/CMakeVS11FindMake.cmake
Normal file
54
Modules/CMakeVS11FindMake.cmake
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Copyright 2007-2011 Kitware, Inc.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#=============================================================================
|
||||||
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
|
# License text for the above reference.)
|
||||||
|
|
||||||
|
# Look for devenv as a build program. We need to use this to support
|
||||||
|
# Intel Fortran integration into VS. MSBuild can not be used for that case
|
||||||
|
# since Intel Fortran uses the older devenv file format.
|
||||||
|
FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||||
|
NAMES devenv
|
||||||
|
HINTS
|
||||||
|
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup\\VS;EnvironmentDirectory]
|
||||||
|
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup;Dbghelp_path]
|
||||||
|
"$ENV{ProgramFiles}/Microsoft Visual Studio 11.0/Common7/IDE"
|
||||||
|
"$ENV{ProgramFiles}/Microsoft Visual Studio11.0/Common7/IDE"
|
||||||
|
"$ENV{ProgramFiles}/Microsoft Visual Studio 11/Common7/IDE"
|
||||||
|
"$ENV{ProgramFiles}/Microsoft Visual Studio11/Common7/IDE"
|
||||||
|
"$ENV{ProgramFiles} (x86)/Microsoft Visual Studio 11.0/Common7/IDE"
|
||||||
|
"$ENV{ProgramFiles} (x86)/Microsoft Visual Studio11.0/Common7/IDE"
|
||||||
|
"$ENV{ProgramFiles} (x86)/Microsoft Visual Studio 11/Common7/IDE"
|
||||||
|
"$ENV{ProgramFiles} (x86)/Microsoft Visual Studio11/Common7/IDE"
|
||||||
|
"/Program Files/Microsoft Visual Studio 11.0/Common7/IDE/"
|
||||||
|
"/Program Files/Microsoft Visual Studio 11/Common7/IDE/"
|
||||||
|
)
|
||||||
|
|
||||||
|
# if devenv is not found, then use MSBuild.
|
||||||
|
# it is expected that if devenv is not found, then we are
|
||||||
|
# dealing with Visual Studio Express. VCExpress has random
|
||||||
|
# failures when being run as a command line build tool which
|
||||||
|
# causes the compiler checks and try-compile stuff to fail. MSbuild
|
||||||
|
# is a better choice for this. However, VCExpress does not support
|
||||||
|
# cross compiling needed for Win CE.
|
||||||
|
IF(NOT CMAKE_CROSSCOMPILING)
|
||||||
|
FIND_PROGRAM(CMAKE_MAKE_PROGRAM
|
||||||
|
NAMES MSBuild
|
||||||
|
HINTS
|
||||||
|
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup\\VS;ProductDir]
|
||||||
|
"$ENV{SYSTEMROOT}/Microsoft.NET/Framework/[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0;CLR Version]/"
|
||||||
|
"c:/WINDOWS/Microsoft.NET/Framework/[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0;CLR Version]/"
|
||||||
|
"$ENV{SYSTEMROOT}/Microsoft.NET/Framework/[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\11.0;CLR Version]/")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)
|
||||||
|
SET(MSVC11 1)
|
||||||
|
SET(MSVC_VERSION 1700)
|
@ -324,6 +324,10 @@ IF (WIN32)
|
|||||||
cmGlobalVisualStudio10Win64Generator.cxx
|
cmGlobalVisualStudio10Win64Generator.cxx
|
||||||
cmGlobalVisualStudio10IA64Generator.h
|
cmGlobalVisualStudio10IA64Generator.h
|
||||||
cmGlobalVisualStudio10IA64Generator.cxx
|
cmGlobalVisualStudio10IA64Generator.cxx
|
||||||
|
cmGlobalVisualStudio11Generator.h
|
||||||
|
cmGlobalVisualStudio11Generator.cxx
|
||||||
|
cmGlobalVisualStudio11Win64Generator.h
|
||||||
|
cmGlobalVisualStudio11Win64Generator.cxx
|
||||||
cmGlobalVisualStudioGenerator.cxx
|
cmGlobalVisualStudioGenerator.cxx
|
||||||
cmGlobalVisualStudioGenerator.h
|
cmGlobalVisualStudioGenerator.h
|
||||||
cmGlobalWatcomWMakeGenerator.cxx
|
cmGlobalWatcomWMakeGenerator.cxx
|
||||||
|
@ -79,7 +79,6 @@ protected:
|
|||||||
virtual const char* GetIDEVersion() { return "10.0"; }
|
virtual const char* GetIDEVersion() { return "10.0"; }
|
||||||
|
|
||||||
std::string PlatformToolset;
|
std::string PlatformToolset;
|
||||||
private:
|
|
||||||
bool ExpressEdition;
|
bool ExpressEdition;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
45
Source/cmGlobalVisualStudio11Generator.cxx
Normal file
45
Source/cmGlobalVisualStudio11Generator.cxx
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2011 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.
|
||||||
|
============================================================================*/
|
||||||
|
#include "cmGlobalVisualStudio11Generator.h"
|
||||||
|
#include "cmMakefile.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator()
|
||||||
|
{
|
||||||
|
this->FindMakeProgramFile = "CMakeVS11FindMake.cmake";
|
||||||
|
this->ExpressEdition = false; // TODO: VS 11 Express support
|
||||||
|
this->PlatformToolset = "v110";
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmGlobalVisualStudio11Generator::AddPlatformDefinitions(cmMakefile* mf)
|
||||||
|
{
|
||||||
|
mf->AddDefinition("MSVC11", "1");
|
||||||
|
mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "X86");
|
||||||
|
mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "X86");
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmGlobalVisualStudio11Generator::WriteSLNHeader(std::ostream& fout)
|
||||||
|
{
|
||||||
|
fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n";
|
||||||
|
fout << "# Visual Studio 2011\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmGlobalVisualStudio11Generator
|
||||||
|
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||||
|
{
|
||||||
|
entry.Name = this->GetName();
|
||||||
|
entry.Brief = "Generates Visual Studio 11 project files.";
|
||||||
|
entry.Full = "";
|
||||||
|
}
|
43
Source/cmGlobalVisualStudio11Generator.h
Normal file
43
Source/cmGlobalVisualStudio11Generator.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2011 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 cmGlobalVisualStudio11Generator_h
|
||||||
|
#define cmGlobalVisualStudio11Generator_h
|
||||||
|
|
||||||
|
#include "cmGlobalVisualStudio10Generator.h"
|
||||||
|
|
||||||
|
|
||||||
|
/** \class cmGlobalVisualStudio11Generator */
|
||||||
|
class cmGlobalVisualStudio11Generator:
|
||||||
|
public cmGlobalVisualStudio10Generator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
cmGlobalVisualStudio11Generator();
|
||||||
|
static cmGlobalGenerator* New() {
|
||||||
|
return new cmGlobalVisualStudio11Generator; }
|
||||||
|
|
||||||
|
///! Get the name for the generator.
|
||||||
|
virtual const char* GetName() const {
|
||||||
|
return cmGlobalVisualStudio11Generator::GetActualName();}
|
||||||
|
static const char* GetActualName() {return "Visual Studio 11";}
|
||||||
|
virtual void AddPlatformDefinitions(cmMakefile* mf);
|
||||||
|
|
||||||
|
virtual void WriteSLNHeader(std::ostream& fout);
|
||||||
|
|
||||||
|
/** Get the documentation entry for this generator. */
|
||||||
|
virtual void GetDocumentation(cmDocumentationEntry& entry) const;
|
||||||
|
|
||||||
|
/** TODO: VS 11 user macro support. */
|
||||||
|
virtual std::string GetUserMacrosDirectory() { return ""; }
|
||||||
|
protected:
|
||||||
|
virtual const char* GetIDEVersion() { return "11.0"; }
|
||||||
|
};
|
||||||
|
#endif
|
33
Source/cmGlobalVisualStudio11Win64Generator.cxx
Normal file
33
Source/cmGlobalVisualStudio11Win64Generator.cxx
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2011 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.
|
||||||
|
============================================================================*/
|
||||||
|
#include "cmGlobalVisualStudio11Win64Generator.h"
|
||||||
|
#include "cmMakefile.h"
|
||||||
|
#include "cmake.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmGlobalVisualStudio11Win64Generator
|
||||||
|
::GetDocumentation(cmDocumentationEntry& entry) const
|
||||||
|
{
|
||||||
|
entry.Name = this->GetName();
|
||||||
|
entry.Brief = "Generates Visual Studio 11 Win64 project files.";
|
||||||
|
entry.Full = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmGlobalVisualStudio11Win64Generator
|
||||||
|
::AddPlatformDefinitions(cmMakefile* mf)
|
||||||
|
{
|
||||||
|
this->cmGlobalVisualStudio11Generator::AddPlatformDefinitions(mf);
|
||||||
|
mf->AddDefinition("CMAKE_FORCE_WIN64", "TRUE");
|
||||||
|
mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "x64");
|
||||||
|
mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "x64");
|
||||||
|
}
|
37
Source/cmGlobalVisualStudio11Win64Generator.h
Normal file
37
Source/cmGlobalVisualStudio11Win64Generator.h
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*============================================================================
|
||||||
|
CMake - Cross Platform Makefile Generator
|
||||||
|
Copyright 2000-2011 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 cmGlobalVisualStudio11Win64Generator_h
|
||||||
|
#define cmGlobalVisualStudio11Win64Generator_h
|
||||||
|
|
||||||
|
#include "cmGlobalVisualStudio11Generator.h"
|
||||||
|
|
||||||
|
class cmGlobalVisualStudio11Win64Generator :
|
||||||
|
public cmGlobalVisualStudio11Generator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
cmGlobalVisualStudio11Win64Generator() {}
|
||||||
|
static cmGlobalGenerator* New() {
|
||||||
|
return new cmGlobalVisualStudio11Win64Generator; }
|
||||||
|
|
||||||
|
///! Get the name for the generator.
|
||||||
|
virtual const char* GetName() const {
|
||||||
|
return cmGlobalVisualStudio11Win64Generator::GetActualName();}
|
||||||
|
static const char* GetActualName() {return "Visual Studio 11 Win64";}
|
||||||
|
|
||||||
|
virtual const char* GetPlatformName() const {return "x64";}
|
||||||
|
|
||||||
|
/** Get the documentation entry for this generator. */
|
||||||
|
virtual void GetDocumentation(cmDocumentationEntry& entry) const;
|
||||||
|
|
||||||
|
virtual void AddPlatformDefinitions(cmMakefile* mf);
|
||||||
|
};
|
||||||
|
#endif
|
@ -68,6 +68,8 @@
|
|||||||
# include "cmGlobalVisualStudio10Generator.h"
|
# include "cmGlobalVisualStudio10Generator.h"
|
||||||
# include "cmGlobalVisualStudio10IA64Generator.h"
|
# include "cmGlobalVisualStudio10IA64Generator.h"
|
||||||
# include "cmGlobalVisualStudio10Win64Generator.h"
|
# include "cmGlobalVisualStudio10Win64Generator.h"
|
||||||
|
# include "cmGlobalVisualStudio11Generator.h"
|
||||||
|
# include "cmGlobalVisualStudio11Win64Generator.h"
|
||||||
# include "cmGlobalVisualStudio8Win64Generator.h"
|
# include "cmGlobalVisualStudio8Win64Generator.h"
|
||||||
# include "cmGlobalBorlandMakefileGenerator.h"
|
# include "cmGlobalBorlandMakefileGenerator.h"
|
||||||
# include "cmGlobalNMakeMakefileGenerator.h"
|
# include "cmGlobalNMakeMakefileGenerator.h"
|
||||||
@ -2580,6 +2582,10 @@ void cmake::AddDefaultGenerators()
|
|||||||
&cmGlobalVisualStudio10IA64Generator::New;
|
&cmGlobalVisualStudio10IA64Generator::New;
|
||||||
this->Generators[cmGlobalVisualStudio10Win64Generator::GetActualName()] =
|
this->Generators[cmGlobalVisualStudio10Win64Generator::GetActualName()] =
|
||||||
&cmGlobalVisualStudio10Win64Generator::New;
|
&cmGlobalVisualStudio10Win64Generator::New;
|
||||||
|
this->Generators[cmGlobalVisualStudio11Generator::GetActualName()] =
|
||||||
|
&cmGlobalVisualStudio11Generator::New;
|
||||||
|
this->Generators[cmGlobalVisualStudio11Win64Generator::GetActualName()] =
|
||||||
|
&cmGlobalVisualStudio11Win64Generator::New;
|
||||||
this->Generators[cmGlobalVisualStudio71Generator::GetActualName()] =
|
this->Generators[cmGlobalVisualStudio71Generator::GetActualName()] =
|
||||||
&cmGlobalVisualStudio71Generator::New;
|
&cmGlobalVisualStudio71Generator::New;
|
||||||
this->Generators[cmGlobalVisualStudio8Generator::GetActualName()] =
|
this->Generators[cmGlobalVisualStudio8Generator::GetActualName()] =
|
||||||
|
@ -34,6 +34,9 @@ endif()
|
|||||||
if(DEFINED MSVC10)
|
if(DEFINED MSVC10)
|
||||||
math(EXPR msvc_total "${msvc_total} + 1")
|
math(EXPR msvc_total "${msvc_total} + 1")
|
||||||
endif()
|
endif()
|
||||||
|
if(DEFINED MSVC11)
|
||||||
|
math(EXPR msvc_total "${msvc_total} + 1")
|
||||||
|
endif()
|
||||||
|
|
||||||
echo_var(MSVC)
|
echo_var(MSVC)
|
||||||
echo_var(MSVC60)
|
echo_var(MSVC60)
|
||||||
@ -42,6 +45,7 @@ echo_var(MSVC71)
|
|||||||
echo_var(MSVC80)
|
echo_var(MSVC80)
|
||||||
echo_var(MSVC90)
|
echo_var(MSVC90)
|
||||||
echo_var(MSVC10)
|
echo_var(MSVC10)
|
||||||
|
echo_var(MSVC11)
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
#
|
#
|
||||||
|
@ -37,6 +37,9 @@ endif("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
|
|||||||
if("${CMAKE_GENERATOR}" MATCHES "Visual Studio 10")
|
if("${CMAKE_GENERATOR}" MATCHES "Visual Studio 10")
|
||||||
set(PP_VS100 1)
|
set(PP_VS100 1)
|
||||||
endif("${CMAKE_GENERATOR}" MATCHES "Visual Studio 10")
|
endif("${CMAKE_GENERATOR}" MATCHES "Visual Studio 10")
|
||||||
|
if("${CMAKE_GENERATOR}" MATCHES "Visual Studio 11")
|
||||||
|
set(PP_VS110 1)
|
||||||
|
endif("${CMAKE_GENERATOR}" MATCHES "Visual Studio 11")
|
||||||
|
|
||||||
# Some tests below check the PP_* variables set above. They are meant
|
# Some tests below check the PP_* variables set above. They are meant
|
||||||
# to test the case that the build tool is at fault. Other tests below
|
# to test the case that the build tool is at fault. Other tests below
|
||||||
@ -52,7 +55,7 @@ endif("${CMAKE_GENERATOR}" MATCHES "Visual Studio 10")
|
|||||||
# must not have it escaped inside the configured header.
|
# must not have it escaped inside the configured header.
|
||||||
set(STRING_EXTRA "")
|
set(STRING_EXTRA "")
|
||||||
|
|
||||||
if(NOT BORLAND AND NOT PP_VS70 AND NOT PP_VS100)
|
if(NOT BORLAND AND NOT PP_VS70 AND NOT PP_VS100 AND NOT PP_VS110)
|
||||||
# Borland, VS70 IDE: ;
|
# Borland, VS70 IDE: ;
|
||||||
# The Borland compiler will simply not accept a non-escaped semicolon
|
# The Borland compiler will simply not accept a non-escaped semicolon
|
||||||
# on the command line. If it is escaped \; then the escape character
|
# on the command line. If it is escaped \; then the escape character
|
||||||
|
@ -6,7 +6,7 @@ IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
|
|||||||
ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
|
ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
|
||||||
SET(PROJECT_EXT vcproj)
|
SET(PROJECT_EXT vcproj)
|
||||||
ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
|
ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
|
||||||
IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 10")
|
IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 1[01]")
|
||||||
SET(PROJECT_EXT vcxproj)
|
SET(PROJECT_EXT vcxproj)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ ADD_DEPENDENCIES(VSExternalInclude lib2)
|
|||||||
# and the sln file can no longer be the only source
|
# and the sln file can no longer be the only source
|
||||||
# of that depend. So, for VS 10 make the executable
|
# of that depend. So, for VS 10 make the executable
|
||||||
# depend on lib1 and lib2
|
# depend on lib1 and lib2
|
||||||
IF(MSVC10)
|
IF(MSVC10 OR MSVC11)
|
||||||
ADD_DEPENDENCIES(VSExternalInclude lib1)
|
ADD_DEPENDENCIES(VSExternalInclude lib1)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user