diff options
author | Oliver Schneider <oliver@assarbad.net> | 2017-03-16 01:46:31 +0300 |
---|---|---|
committer | Oliver Schneider <oliver@assarbad.net> | 2017-03-16 01:46:31 +0300 |
commit | 2e250ada6b2952f8ebc36d5f5c6c47c2ca75d028 (patch) | |
tree | f385cc050d65f26321157369a90b7af86c6a2e59 | |
parent | ecfa9ae6ef07f42ad6c732e4b141ddcc52f58c4c (diff) | |
parent | 254f662b5f6713ec9d757deac116e7ccc8a422d8 (diff) |
Merge with vs2017_support
--HG--
branch : WDS-build
-rw-r--r-- | src/_manifest.lua | 1 | ||||
-rw-r--r-- | src/actions/vstudio/vs2005_solution.lua | 6 | ||||
-rw-r--r-- | src/actions/vstudio/vs2010_vcxproj.lua | 2 | ||||
-rw-r--r-- | src/actions/vstudio/vs2015.lua | 1 | ||||
-rw-r--r-- | src/actions/vstudio/vs2017.lua | 58 | ||||
-rw-r--r-- | tests/actions/vstudio/cs2005/buildevents.lua | 53 | ||||
-rwxr-xr-x | tests/actions/vstudio/sln2005/header.lua | 29 | ||||
-rw-r--r-- | tests/actions/vstudio/vc2010/test_config_props.lua | 13 | ||||
-rw-r--r-- | tests/premake4.lua | 1 | ||||
-rw-r--r-- | tests/testfx.lua | 2 |
10 files changed, 107 insertions, 59 deletions
diff --git a/src/_manifest.lua b/src/_manifest.lua index 19f497a..e8a6619 100644 --- a/src/_manifest.lua +++ b/src/_manifest.lua @@ -66,6 +66,7 @@ "actions/vstudio/vs2012.lua", "actions/vstudio/vs2013.lua", "actions/vstudio/vs2015.lua", + "actions/vstudio/vs2017.lua", -- Xcode action "actions/xcode/_xcode.lua", diff --git a/src/actions/vstudio/vs2005_solution.lua b/src/actions/vstudio/vs2005_solution.lua index b0942db..7e10ff0 100644 --- a/src/actions/vstudio/vs2005_solution.lua +++ b/src/actions/vstudio/vs2005_solution.lua @@ -40,7 +40,11 @@ function sln2005.header(sln) local action = premake.action.current() _p('Microsoft Visual Studio Solution File, Format Version %d.00', action.vstudio.solutionVersion) - _p('# Visual Studio %s', _ACTION:sub(3)) + if action.vstudio.shortSlnVersion ~= nil then + _p('# Visual Studio %s', action.vstudio.shortSlnVersion) + else + _p('# Visual Studio %s', _ACTION:sub(3)) + end end diff --git a/src/actions/vstudio/vs2010_vcxproj.lua b/src/actions/vstudio/vs2010_vcxproj.lua index dcff220..d6f9b7b 100644 --- a/src/actions/vstudio/vs2010_vcxproj.lua +++ b/src/actions/vstudio/vs2010_vcxproj.lua @@ -79,7 +79,7 @@ _p(2,'<UseDebugLibraries>%s</UseDebugLibraries>', iif(optimisation(cfg) == "Disabled","true","false")) _p(2,'<CharacterSet>%s</CharacterSet>',iif(cfg.flags.Unicode,"Unicode","MultiByte")) - local toolsets = { vs2012 = "v110", vs2013 = "v120", vs2015 = "v140" } + local toolsets = { vs2012 = "v110", vs2013 = "v120", vs2015 = "v140", vs2017 = "v141" } local toolset = toolsets[_ACTION] if toolset then _p(2,'<PlatformToolset>%s</PlatformToolset>', toolset) diff --git a/src/actions/vstudio/vs2015.lua b/src/actions/vstudio/vs2015.lua index 8fa0ca9..9a8ba02 100644 --- a/src/actions/vstudio/vs2015.lua +++ b/src/actions/vstudio/vs2015.lua @@ -53,5 +53,6 @@ solutionVersion = "12", targetFramework = "4.5.2", toolsVersion = "14.0", + shortSlnVersion = "14", } } diff --git a/src/actions/vstudio/vs2017.lua b/src/actions/vstudio/vs2017.lua new file mode 100644 index 0000000..0bc0a02 --- /dev/null +++ b/src/actions/vstudio/vs2017.lua @@ -0,0 +1,58 @@ +-- +-- vs2017.lua +-- Baseline support for Visual Studio 2017. +-- Copyright (c) 2013 Jason Perkins and the Premake project +-- + + premake.vstudio.vc2017 = {} + local vc2017 = premake.vstudio.vc2017 + local vstudio = premake.vstudio + + +--- +-- Register a command-line action for Visual Studio 2017. +--- + + newaction + { + trigger = "vs2017", + shortname = "Visual Studio 2017", + description = "Generate Microsoft Visual Studio 2017 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 = "15.0", + shortSlnVersion = "15", + } + } diff --git a/tests/actions/vstudio/cs2005/buildevents.lua b/tests/actions/vstudio/cs2005/buildevents.lua deleted file mode 100644 index 213de1b..0000000 --- a/tests/actions/vstudio/cs2005/buildevents.lua +++ /dev/null @@ -1,53 +0,0 @@ ---
--- tests/actions/vstudio/cs2005/buildevents.lua
--- Validate the build events in Visual Studio 2005+ .csproj
--- Copyright (c) 2009-2014 Jason Perkins and the Premake project
---
-
- T.vstudio_cs2005_buildevents = { }
- local suite = T.vstudio_cs2005_buildevents
- local cs2005 = premake.vstudio.cs2005
-
---
--- Setup
---
-
- local sln, prj
-
- function suite.setup()
- sln = test.createsolution()
- end
-
- local function prepare()
- premake.bake.buildconfigs()
- prj = premake.solution.getproject(sln, 1)
- cs2005.buildevents(prj)
- end
-
---
--- Prebuild events
---
-
- function suite.prebuildEvents()
- prebuildcommands { "pre" }
- prepare()
- test.capture [[
- <PropertyGroup>
- <PreBuildEvent>pre</PreBuildEvent>
- </PropertyGroup>
- ]]
- end
-
---
--- Postbuild events
---
-
- function suite.postbuildEvents()
- postbuildcommands { "post" }
- prepare()
- test.capture [[
- <PropertyGroup>
- <PostBuildEvent>post</PostBuildEvent>
- </PropertyGroup>
- ]]
- end
diff --git a/tests/actions/vstudio/sln2005/header.lua b/tests/actions/vstudio/sln2005/header.lua index a959677..2208b42 100755 --- a/tests/actions/vstudio/sln2005/header.lua +++ b/tests/actions/vstudio/sln2005/header.lua @@ -76,6 +76,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 ]] +--[[ +VS 2013 seems to add: + +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 + +which don't seem to be mandatory, though. +]] end function suite.On2015() @@ -83,10 +91,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00 prepare() test.capture [[ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2015 +# Visual Studio 14 ]] --[[ -VS2015 seems to add: +VS 2015 seems to add: VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 @@ -94,3 +102,20 @@ MinimumVisualStudioVersion = 10.0.40219.1 which don't seem to be mandatory, though. ]] end + + function suite.On2017() + _ACTION = "vs2017" + prepare() + test.capture [[ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 + ]] +--[[ +VS 2017 seems to add: + +VisualStudioVersion = 15.0.26228.4 +MinimumVisualStudioVersion = 10.0.40219.1 + +which don't seem to be mandatory, though. +]] + end diff --git a/tests/actions/vstudio/vc2010/test_config_props.lua b/tests/actions/vstudio/vc2010/test_config_props.lua index 2970ad4..d2f18dd 100644 --- a/tests/actions/vstudio/vc2010/test_config_props.lua +++ b/tests/actions/vstudio/vc2010/test_config_props.lua @@ -89,3 +89,16 @@ </PropertyGroup> ]] end + + function suite.structureIsCorrect_onDefaultValues_on2017() + _ACTION = "vs2017" + prepare() + test.capture [[ + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v141</PlatformToolset> + </PropertyGroup> + ]] + end diff --git a/tests/premake4.lua b/tests/premake4.lua index 6c149e3..b0ebde9 100644 --- a/tests/premake4.lua +++ b/tests/premake4.lua @@ -86,7 +86,6 @@ dofile("actions/vstudio/cs2005/projectelement.lua") dofile("actions/vstudio/cs2005/projectsettings.lua") dofile("actions/vstudio/cs2005/propertygroup.lua") - dofile("actions/vstudio/cs2005/buildevents.lua") -- Visual Studio 2005-2010 solutions dofile("actions/vstudio/sln2005/dependencies.lua") diff --git a/tests/testfx.lua b/tests/testfx.lua index 8342086..5a0f33b 100644 --- a/tests/testfx.lua +++ b/tests/testfx.lua @@ -23,7 +23,7 @@ function test.string_does_not_contain(buffer, expected) if string.find(buffer,expected) then - test.fail("\n==Fail==: Did not expected to find :\n%s\nyet it was found in buffer:\n%s\n", expected,buffer) + test.fail("\n==Fail==: Did not expect to find :\n%s\nyet it was found in buffer:\n%s\n", expected,buffer) end end |