Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/premake-4.x-stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Perkins <starkos@industriousone.com>2013-08-17 22:41:00 +0400
committerJason Perkins <starkos@industriousone.com>2013-08-17 22:41:00 +0400
commit05cf05922c7d52c797a512308f757677c802ae9b (patch)
tree0501d469a42c891578f0c04410a422eaaac6ebee
parent29945bd494b831398d569143fb082bd9c651b541 (diff)
Initial support for Visual Studio 2013 (Igor Karatayev)
-rw-r--r--CHANGES.txt1
-rw-r--r--src/_manifest.lua1
-rw-r--r--src/actions/vstudio/vs2010_vcxproj.lua6
-rw-r--r--src/actions/vstudio/vs2013.lua53
-rwxr-xr-xtests/actions/vstudio/cs2005/projectelement.lua9
-rwxr-xr-xtests/actions/vstudio/sln2005/header.lua10
-rw-r--r--tests/actions/vstudio/vc2010/test_config_props.lua13
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