From 6ab9f77800027dfa2aae8ba4094b60f0255254bb Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Sat, 14 Nov 2015 22:16:01 +0000 Subject: Adding support for Visual Studio 2015 projects and solutions. Does not add the VisualStudioVersion and MinimumVisualStudioVersion in solution files, but VS2015 opens those fine regardless and picks them up first even when VS2010, 2012 and 2013 are installed as well. Added corresponding tests and verified that all is as expected. --HG-- branch : vs2015_support --- src/_manifest.lua | 1 + src/actions/vstudio/vs2010_vcxproj.lua | 2 +- src/actions/vstudio/vs2015.lua | 57 ++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/actions/vstudio/vs2015.lua (limited to 'src') diff --git a/src/_manifest.lua b/src/_manifest.lua index ee07f81..19f497a 100644 --- a/src/_manifest.lua +++ b/src/_manifest.lua @@ -65,6 +65,7 @@ "actions/vstudio/vs2010_vcxproj_filters.lua", "actions/vstudio/vs2012.lua", "actions/vstudio/vs2013.lua", + "actions/vstudio/vs2015.lua", -- Xcode action "actions/xcode/_xcode.lua", diff --git a/src/actions/vstudio/vs2010_vcxproj.lua b/src/actions/vstudio/vs2010_vcxproj.lua index 4adef79..dcff220 100644 --- a/src/actions/vstudio/vs2010_vcxproj.lua +++ b/src/actions/vstudio/vs2010_vcxproj.lua @@ -79,7 +79,7 @@ _p(2,'%s', iif(optimisation(cfg) == "Disabled","true","false")) _p(2,'%s',iif(cfg.flags.Unicode,"Unicode","MultiByte")) - local toolsets = { vs2012 = "v110", vs2013 = "v120" } + local toolsets = { vs2012 = "v110", vs2013 = "v120", vs2015 = "v140" } local toolset = toolsets[_ACTION] if toolset then _p(2,'%s', toolset) diff --git a/src/actions/vstudio/vs2015.lua b/src/actions/vstudio/vs2015.lua new file mode 100644 index 0000000..8fa0ca9 --- /dev/null +++ b/src/actions/vstudio/vs2015.lua @@ -0,0 +1,57 @@ +-- +-- vs2015.lua +-- Baseline support for Visual Studio 2015. +-- Copyright (c) 2013 Jason Perkins and the Premake project +-- + + premake.vstudio.vc2015 = {} + local vc2015 = premake.vstudio.vc2015 + local vstudio = premake.vstudio + + +--- +-- Register a command-line action for Visual Studio 2015. +--- + + newaction + { + trigger = "vs2015", + shortname = "Visual Studio 2015", + description = "Generate Microsoft Visual Studio 2015 project files", + os = "windows", + + valid_kinds = { "ConsoleApp", "WindowedApp", "StaticLib", "SharedLib" }, + + valid_languages = { "C", "C++", "C#"}, + + valid_tools = { + cc = { "msc" }, + dotnet = { "msnet" }, + }, + + onsolution = function(sln) + premake.generate(sln, "%%.sln", vstudio.sln2005.generate) + end, + + onproject = function(prj) + if premake.isdotnetproject(prj) then + premake.generate(prj, "%%.csproj", vstudio.cs2005.generate) + premake.generate(prj, "%%.csproj.user", vstudio.cs2005.generate_user) + else + premake.generate(prj, "%%.vcxproj", premake.vs2010_vcxproj) + premake.generate(prj, "%%.vcxproj.user", premake.vs2010_vcxproj_user) + premake.generate(prj, "%%.vcxproj.filters", vstudio.vc2010.generate_filters) + end + end, + + + oncleansolution = premake.vstudio.cleansolution, + oncleanproject = premake.vstudio.cleanproject, + oncleantarget = premake.vstudio.cleantarget, + + vstudio = { + solutionVersion = "12", + targetFramework = "4.5.2", + toolsVersion = "14.0", + } + } -- cgit v1.2.3