117 lines
2.6 KiB
Lua
117 lines
2.6 KiB
Lua
--
|
|
-- tests/actions/vstudio/vc2010/test_nmake_props.lua
|
|
-- Check makefile project generation.
|
|
-- Copyright (c) 2013 Jason Perkins and the Premake project
|
|
--
|
|
|
|
local suite = test.declare("vs2010_nmake_props")
|
|
local vc2010 = premake.vstudio.vc2010
|
|
|
|
|
|
--
|
|
-- Setup
|
|
--
|
|
|
|
local sln, prj
|
|
|
|
function suite.setup()
|
|
_ACTION = "vs2010"
|
|
sln, prj = test.createsolution()
|
|
kind "Makefile"
|
|
end
|
|
|
|
local function prepare()
|
|
local cfg = test.getconfig(prj, "Debug")
|
|
vc2010.nmakeProperties(cfg)
|
|
end
|
|
|
|
|
|
--
|
|
-- Check the structure with the default project values.
|
|
--
|
|
|
|
function suite.structureIsCorrect_onDefaultValues()
|
|
prepare()
|
|
test.capture [[
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
<NMakeOutput>$(OutDir)MyProject</NMakeOutput>
|
|
</PropertyGroup>
|
|
]]
|
|
end
|
|
|
|
|
|
--
|
|
-- Element should be skipped for non-Makefile projects.
|
|
--
|
|
|
|
function suite.skips_onNonMakefile()
|
|
kind "ConsoleApp"
|
|
prepare()
|
|
test.isemptycapture()
|
|
end
|
|
|
|
|
|
--
|
|
-- Make sure the target file extension is included.
|
|
--
|
|
|
|
function suite.usesTargetExtension()
|
|
targetextension ".exe"
|
|
prepare()
|
|
test.capture [[
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
<NMakeOutput>$(OutDir)MyProject.exe</NMakeOutput>
|
|
</PropertyGroup>
|
|
]]
|
|
end
|
|
|
|
|
|
--
|
|
-- Verify generation of the build commands.
|
|
--
|
|
|
|
function suite.buildCommandLine_onSingleCommand()
|
|
buildcommands { "command 1" }
|
|
prepare()
|
|
test.capture [[
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
<NMakeOutput>$(OutDir)MyProject</NMakeOutput>
|
|
<NMakeBuildCommandLine>command 1</NMakeBuildCommandLine>
|
|
</PropertyGroup>
|
|
]]
|
|
end
|
|
|
|
function suite.buildCommandLine_onMultipleCommands()
|
|
buildcommands { "command 1", "command 2" }
|
|
prepare()
|
|
test.capture [[
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
<NMakeOutput>$(OutDir)MyProject</NMakeOutput>
|
|
<NMakeBuildCommandLine>command 1
|
|
command 2</NMakeBuildCommandLine>
|
|
</PropertyGroup>
|
|
]]
|
|
end
|
|
|
|
function suite.rebuildCommandLine()
|
|
rebuildcommands { "command 1" }
|
|
prepare()
|
|
test.capture [[
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
<NMakeOutput>$(OutDir)MyProject</NMakeOutput>
|
|
<NMakeReBuildCommandLine>command 1</NMakeReBuildCommandLine>
|
|
</PropertyGroup>
|
|
]]
|
|
end
|
|
|
|
function suite.cleanCommandLine()
|
|
cleancommands { "command 1" }
|
|
prepare()
|
|
test.capture [[
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
<NMakeOutput>$(OutDir)MyProject</NMakeOutput>
|
|
<NMakeCleanCommandLine>command 1</NMakeCleanCommandLine>
|
|
</PropertyGroup>
|
|
]]
|
|
end
|