diff options
author | Jason Perkins <starkos@industriousone.com> | 2013-08-17 22:41:00 +0400 |
---|---|---|
committer | Jason Perkins <starkos@industriousone.com> | 2013-08-17 22:41:00 +0400 |
commit | 05cf05922c7d52c797a512308f757677c802ae9b (patch) | |
tree | 0501d469a42c891578f0c04410a422eaaac6ebee | |
parent | 29945bd494b831398d569143fb082bd9c651b541 (diff) |
Initial support for Visual Studio 2013 (Igor Karatayev)
-rw-r--r-- | CHANGES.txt | 1 | ||||
-rw-r--r-- | src/_manifest.lua | 1 | ||||
-rw-r--r-- | src/actions/vstudio/vs2010_vcxproj.lua | 6 | ||||
-rw-r--r-- | src/actions/vstudio/vs2013.lua | 53 | ||||
-rwxr-xr-x | tests/actions/vstudio/cs2005/projectelement.lua | 9 | ||||
-rwxr-xr-x | tests/actions/vstudio/sln2005/header.lua | 10 | ||||
-rw-r--r-- | tests/actions/vstudio/vc2010/test_config_props.lua | 13 |
7 files changed, 91 insertions, 2 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 77e3bc1..2bb1fd1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -75,6 +75,7 @@ * Bug 171: ImpLib used incorrectly in dependency paths * Bug 176: Target prefix breaks GCC linking * Improved handling of precompiled headers across toolsets +* Initial support for Visual Studio 2013 (Igor Karatayev) ------- diff --git a/src/_manifest.lua b/src/_manifest.lua index a9ed645..ee07f81 100644 --- a/src/_manifest.lua +++ b/src/_manifest.lua @@ -64,6 +64,7 @@ "actions/vstudio/vs2010_vcxproj.lua", "actions/vstudio/vs2010_vcxproj_filters.lua", "actions/vstudio/vs2012.lua", + "actions/vstudio/vs2013.lua", -- Xcode action "actions/xcode/_xcode.lua", diff --git a/src/actions/vstudio/vs2010_vcxproj.lua b/src/actions/vstudio/vs2010_vcxproj.lua index 2c9a14a..b6b44e7 100644 --- a/src/actions/vstudio/vs2010_vcxproj.lua +++ b/src/actions/vstudio/vs2010_vcxproj.lua @@ -79,8 +79,10 @@ _p(2,'<UseDebugLibraries>%s</UseDebugLibraries>', iif(optimisation(cfg) == "Disabled","true","false")) _p(2,'<CharacterSet>%s</CharacterSet>',iif(cfg.flags.Unicode,"Unicode","MultiByte")) - if _ACTION > "vs2010" then - _p(2,'<PlatformToolset>%s</PlatformToolset>', "v110") + local toolsets = { vs2012 = "v110", vs2013 = "v120" } + local toolset = toolsets[_ACTION] + if toolset then + _p(2,'<PlatformToolset>%s</PlatformToolset>', toolset) end if cfg.flags.MFC then diff --git a/src/actions/vstudio/vs2013.lua b/src/actions/vstudio/vs2013.lua new file mode 100644 index 0000000..8654f21 --- /dev/null +++ b/src/actions/vstudio/vs2013.lua @@ -0,0 +1,53 @@ +-- +-- vs2013.lua +-- Baseline support for Visual Studio 2013. +-- Copyright (c) 2013 Jason Perkins and the Premake project +-- + + +--- +-- Register a command-line action for Visual Studio 2012. +--- + + newaction + { + trigger = "vs2013", + shortname = "Visual Studio 2013", + description = "Generate Microsoft Visual Studio 2013 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", + toolsVersion = "12.0", + } + } diff --git a/tests/actions/vstudio/cs2005/projectelement.lua b/tests/actions/vstudio/cs2005/projectelement.lua index 1d2a61f..5825abc 100755 --- a/tests/actions/vstudio/cs2005/projectelement.lua +++ b/tests/actions/vstudio/cs2005/projectelement.lua @@ -63,3 +63,12 @@ <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ]] end + + function suite.On2013() + _ACTION = "vs2013" + prepare() + test.capture [[ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + ]] + end diff --git a/tests/actions/vstudio/sln2005/header.lua b/tests/actions/vstudio/sln2005/header.lua index 5eb02e3..71e32f5 100755 --- a/tests/actions/vstudio/sln2005/header.lua +++ b/tests/actions/vstudio/sln2005/header.lua @@ -67,3 +67,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 ]] end + + + function suite.On2013() + _ACTION = "vs2013" + prepare() + test.capture [[ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 + ]] + end diff --git a/tests/actions/vstudio/vc2010/test_config_props.lua b/tests/actions/vstudio/vc2010/test_config_props.lua index 3aef357..50d78ae 100644 --- a/tests/actions/vstudio/vc2010/test_config_props.lua +++ b/tests/actions/vstudio/vc2010/test_config_props.lua @@ -63,3 +63,16 @@ </PropertyGroup> ]] end + + function suite.structureIsCorrect_onDefaultValues_on2013() + _ACTION = "vs2013" + prepare() + test.capture [[ + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v120</PlatformToolset> + </PropertyGroup> + ]] + end |