VS: Generate ToolsVersion matching each VS version
The MSBuild version for each Visual Studio generator isn't 4.0. With Visual Studo 2013 the ToolsVersion moved from being tied to the .NET framework and now has its own version number.
This commit is contained in:
parent
d7c9d60d9f
commit
3064f80d25
|
@ -81,6 +81,9 @@ public:
|
|||
|
||||
void PathTooLong(cmTarget* target, cmSourceFile* sf,
|
||||
std::string const& sfRel);
|
||||
|
||||
virtual const char* GetToolsVersion() { return "4.0"; }
|
||||
|
||||
protected:
|
||||
virtual const char* GetIDEVersion() { return "10.0"; }
|
||||
|
||||
|
|
|
@ -31,6 +31,11 @@ public:
|
|||
|
||||
/** TODO: VS 12 user macro support. */
|
||||
virtual std::string GetUserMacrosDirectory() { return ""; }
|
||||
|
||||
//in Visual Studio 2013 they detached the MSBuild tools version
|
||||
//from the .Net Framework version and instead made it have it's own
|
||||
//version number
|
||||
virtual const char* GetToolsVersion() { return "12.0"; }
|
||||
protected:
|
||||
virtual const char* GetIDEVersion() { return "12.0"; }
|
||||
private:
|
||||
|
|
|
@ -216,12 +216,16 @@ void cmVisualStudio10TargetGenerator::Generate()
|
|||
// Write the encoding header into the file
|
||||
char magic[] = {0xEF,0xBB, 0xBF};
|
||||
this->BuildFileStream->write(magic, 3);
|
||||
this->WriteString("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",0);
|
||||
this->WriteString("<Project DefaultTargets=\"Build\" "
|
||||
"ToolsVersion=\"4.0\" "
|
||||
"xmlns=\"http://schemas.microsoft.com/"
|
||||
"developer/msbuild/2003\">\n",
|
||||
0);
|
||||
|
||||
//get the tools version to use
|
||||
const std::string toolsVer(this->GlobalGenerator->GetToolsVersion());
|
||||
std::string project_defaults="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
|
||||
project_defaults.append("<Project DefaultTargets=\"Build\" ToolsVersion=\"");
|
||||
project_defaults.append(toolsVer +"\" ");
|
||||
project_defaults.append(
|
||||
"xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n");
|
||||
this->WriteString(project_defaults.c_str(),0);
|
||||
|
||||
this->WriteProjectConfigurations();
|
||||
this->WriteString("<PropertyGroup Label=\"Globals\">\n", 1);
|
||||
this->WriteString("<ProjectGUID>", 2);
|
||||
|
@ -716,12 +720,16 @@ void cmVisualStudio10TargetGenerator::WriteGroups()
|
|||
fout.write(magic, 3);
|
||||
cmGeneratedFileStream* save = this->BuildFileStream;
|
||||
this->BuildFileStream = & fout;
|
||||
this->WriteString("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
|
||||
"<Project "
|
||||
"ToolsVersion=\"4.0\" "
|
||||
"xmlns=\"http://schemas.microsoft.com/"
|
||||
"developer/msbuild/2003\">\n",
|
||||
0);
|
||||
|
||||
//get the tools version to use
|
||||
const std::string toolsVer(this->GlobalGenerator->GetToolsVersion());
|
||||
std::string project_defaults="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
|
||||
project_defaults.append("<Project ToolsVersion=\"");
|
||||
project_defaults.append(toolsVer +"\" ");
|
||||
project_defaults.append(
|
||||
"xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n");
|
||||
this->WriteString(project_defaults.c_str(),0);
|
||||
|
||||
for(ToolSourceMap::const_iterator ti = this->Tools.begin();
|
||||
ti != this->Tools.end(); ++ti)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue