CREATE_PROJECT: Add support for Visual Studio 2012 project creation
This commit is contained in:
parent
4e0f6d346f
commit
d86c0a44f8
6 changed files with 122 additions and 10 deletions
|
@ -46,7 +46,13 @@ const char *MSBuildProvider::getPropertiesExtension() {
|
|||
}
|
||||
|
||||
int MSBuildProvider::getVisualStudioVersion() {
|
||||
return 2010;
|
||||
if (_version == 10)
|
||||
return 2010;
|
||||
|
||||
if (_version == 11)
|
||||
return 2012;
|
||||
|
||||
error("Unsupported version passed to getVisualStudioVersion");
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
@ -58,9 +64,10 @@ inline void outputConfiguration(std::ostream &project, const std::string &config
|
|||
"\t\t</ProjectConfiguration>\n";
|
||||
}
|
||||
|
||||
inline void outputConfigurationType(const BuildSetup &setup, std::ostream &project, const std::string &name, const std::string &config) {
|
||||
inline void outputConfigurationType(const BuildSetup &setup, std::ostream &project, const std::string &name, const std::string &config, int version) {
|
||||
project << "\t<PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='" << config << "'\" Label=\"Configuration\">\n"
|
||||
"\t\t<ConfigurationType>" << ((name == setup.projectName || setup.devTools) ? "Application" : "StaticLibrary") << "</ConfigurationType>\n"
|
||||
"\t\t<PlatformToolset>v" << version << "0</PlatformToolset>"
|
||||
"\t</PropertyGroup>\n";
|
||||
}
|
||||
|
||||
|
@ -98,17 +105,18 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri
|
|||
"\t\t<ProjectGuid>{" << uuid << "}</ProjectGuid>\n"
|
||||
"\t\t<RootNamespace>" << name << "</RootNamespace>\n"
|
||||
"\t\t<Keyword>Win32Proj</Keyword>\n"
|
||||
"\t\t<VCTargetsPath Condition=\"'$(VCTargetsPath11)' != '' and '$(VSVersion)' == '' and $(VisualStudioVersion) == ''\">$(VCTargetsPath11)</VCTargetsPath>\n"
|
||||
"\t</PropertyGroup>\n";
|
||||
|
||||
// Shared configuration
|
||||
project << "\t<Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n";
|
||||
|
||||
outputConfigurationType(setup, project, name, "Release|Win32");
|
||||
outputConfigurationType(setup, project, name, "Analysis|Win32");
|
||||
outputConfigurationType(setup, project, name, "Debug|Win32");
|
||||
outputConfigurationType(setup, project, name, "Release|x64");
|
||||
outputConfigurationType(setup, project, name, "Analysis|x64");
|
||||
outputConfigurationType(setup, project, name, "Debug|x64");
|
||||
outputConfigurationType(setup, project, name, "Release|Win32", _version);
|
||||
outputConfigurationType(setup, project, name, "Analysis|Win32", _version);
|
||||
outputConfigurationType(setup, project, name, "Debug|Win32", _version);
|
||||
outputConfigurationType(setup, project, name, "Release|x64", _version);
|
||||
outputConfigurationType(setup, project, name, "Analysis|x64", _version);
|
||||
outputConfigurationType(setup, project, name, "Debug|x64", _version);
|
||||
|
||||
project << "\t<Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\n"
|
||||
"\t<ImportGroup Label=\"ExtensionSettings\">\n"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue